【问题标题】:How to compute land cover values from another raster?如何从另一个栅格计算土地覆盖值?
【发布时间】:2020-05-06 10:46:44
【问题描述】:

我有两个栅格:

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     : memory
names      : npp 
values     : -0.345, 1.723  (min, max)

raster2
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     : C:/a/b/Documents/c/landuse.tif 
names      : landuse
values     : 1, 12  (min, max)
attributes :
       ID                          zn
 from:  1 evergreen needleleaf forest
  to : 12                   croplands

raster2 是特定区域的土地覆盖类型,raster1 是净初级生产力值。我想计算raster 2 中每个土地覆盖类别的净初级生产力。我如何在 R 中实现这一点?

【问题讨论】:

    标签: r raster tiff


    【解决方案1】:

    求 r2 中每个土地覆盖代码的 r1 中像元值的总和,输出以列表形式返回。可以改为使用 lapply。

    
    library(raster)
    
    #Generate example data
    raster1 <-  raster(matrix(c(1,1,1,2,3,4,5,6,7),ncol =3))
    
    raster2 <- raster(matrix(c(1,1,1,2,2,2,3,3,3),ncol =3))
    raster2 <- as.factor(raster2)
    
    rat <- levels(raster2 )[[1]]
    rat[["landcover"]] <- c("land","ocean/lake", "rivers")
    levels(raster2 ) <- rat
    
    #Extract sum of values of raster 1 for each level of raster 2
    Val <- list()
    for(lc in levels(raster2)[[1]]$ID){
      Values <- raster1[raster2[]==lc]
    
      Val[[lc]] <- sum(Values)
    }
    
    

    【讨论】:

    • 成功了!但是我想澄清一下,使用Val[[lc]] &lt;- mean(Values) 而不是Val[[lc]] &lt;- sum(Values) 是否明智?因为当取平均值时,这些值更有意义。
    • 恐怕这取决于你的问题。如果您想知道农田与林地中典型单元格中的 NPP,那么平均值更有意义。如果您想知道您的研究区域中农田产生了多少 npp,请使用 sum。
    猜你喜欢
    • 1970-01-01
    • 2018-09-17
    • 2017-09-23
    • 2021-08-14
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    相关资源
    最近更新 更多