使用R重新投影MODIS数据(导致NA或无空间范围)



我使用这里存储的GLASS反照率数据用于2000年前的数据(AVHRR(,这里存储的是2000年后的数据(MODIS(。我的最终目标是创建一个每月的光栅堆栈,其中包含1982-2015年的白色天空反照率数据。我遇到的问题是,MODIS和AVHRR数据位于不同的空间参考系统中,我似乎无法将它们重新投影到同一系统中。

我使用这样的R从hdf转换为tif:

fileavhrr <- ".../GLASS02B05.V04.A1990161.2018062.hdf"
filemodis<-".../GLASS02B06.V04.A2013169.2017128.hdf"
gdal_translate(get_subdatasets(filemodis)[10], dst_dataset =
".../modis.tif") 
gdal_translate(get_subdatasets(fileavhrr)[8], projwin = c(-180,90,180,50), dst_dataset = ".../avhrr.tif") #ideally I'd only like data north of 50 degrees
avhrr<- raster(".../avhrr.tif")
#class       : RasterLayer 
#dimensions  : 800, 7200, 5760000  (nrow, ncol, ncell)
#resolution  : 0.05, 0.05  (x, y)
#extent      : -180, 180, 50, 90  (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +ellps=clrk66 +no_defs 
#values      : -32768, 32767  (min, max)
modis<- raster(".../modis.tif")
#class       : RasterLayer   
#dimensions  : 3600, 7200, 25920000  (nrow, ncol, ncell) 
#resolution  : 154.4376, 308.8751  (x, y)  
#extent   : -20015109, -18903159, 8895604, 10007555  (xmin, xmax, ymin, ymax)  
#coord. ref. : +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181
+b=6371007.181 +units=m +no_defs   
#values      : -32768, 32767  (min, max)

以下是我尝试过的东西:

1.(使用MODIS重投影工具。无论出于何种原因,该工具似乎认为MODIS.hdf文件的子数据集只有一个瓦片(最左上角的瓦片0,0(,而不是全局数据集。我的理解是,MODIS数据是全球性的(不是瓦片?(,所以我不知道MRT为什么这么做。

2.(在R.中使用光栅包

projectedMODIS <- projectRaster(modis,avhrr,method="bilinear")

这将返回一个值均为NA:的光栅

class       : RasterLayer  
dimensions  : 800, 7200, 5760000  (nrow,> ncol, ncell) 
resolution  : 0.05, 0.05  (x, y) 
extent      : -180, 180,> 50, 90  (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=longlat +ellps=clrk66 +no_defs  
values      : NA, NA  (min, max)

3.(在R:中使用gdalUtils包

gdalwarp(srcfile=get_subdatasets(filemodis)[10], dstfile= ".../gdalMODIS_avhrr.tif", s_srs = crs(modis), t_srs =crs(avhrr) )

这将返回一个基本上没有空间范围的光栅。

gdalMODISavhrr<-raster(".../gdalMODIS_avhrr.tif")
#class       : RasterLayer 
#dimensions  : 357, 12850, 4587450  (nrow, ncol, ncell)
#resolution  : 0.02801551, 0.02801573  (x, y)
#extent      : -180, 179.9993, 79.99838, 90  (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +ellps=clrk66 +no_defs 
#values      : -32768, 32767  (min, max)

关于为什么重新投影MODIS数据如此困难,有什么想法吗?

我还没有尝试过,但从包gdalUtils来看,函数gdalwarp()可能满足您的需要?

最新更新