提取具有不同分辨率和范围的两个栅格中的土地覆盖数据

Extraction of land cover data in two rasters with different resolution and extent

我有三个光栅。 Raster1 是土地覆盖类型的土地覆盖文件。 Raster2 和 raster3 是显示变量 'NPP' 的栅格。如您所见,每个栅格都有不同的范围和分辨率。我想知道根据光栅 1 的土地覆盖率,光栅 2 和光栅 3 中的 NPP 是多少。然而,为了使所有栅格具有相同的范围和分辨率,并根据 raster1 中的土地覆盖 class 在 raster2 和 raster3 中找到 NPP,可以做些什么?

(我怎么知道应该为所有栅格选择哪种分辨率?)

> raster1
    class      : RasterLayer 
    dimensions : 2803, 5303, 14864309  (nrow, ncol, ncell)
    resolution : 0.008333333, 0.008333333  (x, y)
    extent     : 60.85, 105.0417, 15.95833, 39.31667  (xmin, xmax, ymin, ymax)
    crs        : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
    source     :XXXXX
    names      : landusemaskedme 
    values     : 1, 12  (min, max)

    raster2
    class      : RasterLayer 
    dimensions : 2336, 4419, 10322784  (nrow, ncol, ncell)
    resolution : 0.01, 0.01  (x, y)
    extent     : 60.85, 105.04, 15.96, 39.32  (xmin, xmax, ymin, ymax)
    crs        : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
    source     : memory
    names      : NPP
    values     : 0, 31.78096  (min, max)

    > raster3
    class      : RasterLayer 
    dimensions : 47, 89, 4183  (nrow, ncol, ncell)
    resolution : 0.5, 0.5  (x, y)
    extent     : 60.75, 105.25, 15.75, 39.25  (xmin, xmax, ymin, ymax)
    crs        : NA 
    source     : memory
    names      : NPP 
    values     : 0, 21.141  (min, max)

我可以看到您的栅格具有几乎相同的范围和坐标系,除了 raster3 没有任何参考系统 (crs: NA)。首先,您需要具有相同范围和坐标参考系的栅格,然后您可以使用 raster 包中的 resample 函数,例如

library(raster)

#To have the same projection for raster3 as that of your base landcover class in raster1
newproj <- projection(raster1)
praster3 <- projectRaster(raster3, crs=newproj)
  
#Conversion of rasters into same extent
raster2_resampled <- resample(raster2, raster1, method='bilinear')
raster3_resampled <- resample(praster3, raster1, method='bilinear')

将更精细的分辨率栅格重新采样到更粗糙的分辨率总是更好,反之亦然,尽管可以按照您在问题中提出的要求完成。在您的情况下,raster1 具有更精细的分辨率 (0.008333333 x 0.008333333),其次是 raster2 (0.01 x 0.01)。 raster3 具有最粗糙的分辨率 (0.5 x 0.5)。所以,最好将所有栅格转换为raster3的分辨率和范围。希望对你有所帮助。