【问题标题】:Summary Statistics of Raster By Latitudinal Intervals按纬度区间的栅格汇总统计
【发布时间】:2018-10-12 03:59:39
【问题描述】:

在 R 中是否有一种快速方法可以根据纬度间隔或 bin 对栅格进行汇总统计。不是整个栅格图层的摘要,而是空间子部分。例如,获取纬度每两度的栅格像元值的平均值和标准差。

以下是带有经纬度坐标的投影栅格的一些示例数据。

set.seed(2013)
library(raster)

r <- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, ncols=40, nrows=40)
r <- setValues(r, rnorm(1600)) #add values to raster
r[r > -0.2 & r < 0.2] <- NA #add some NA's to resemble real dataset
plot(r)

> r
class       : RasterLayer 
dimensions  : 40, 40, 1600  (nrow, ncol, ncell)
resolution  : 0.5, 0.5  (x, y)
extent      : -110, -90, 40, 60  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : in memory
names       : layer 
values      : -3.23261, 2.861592  (min, max)

【问题讨论】:

    标签: r subset geospatial raster r-raster


    【解决方案1】:

    由于您的栅格分辨率为 0.5 并且您有 40 行,因此您需要每 4 行使用 mean / sd:

    set.seed(2013)
    library(raster)
    
    r <- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, ncols=40, nrows=40)
    r <- setValues(r, rnorm(1600)) #add values to raster
    r[r > -0.2 & r < 0.2] <- NA #add some NA's to resemble real dataset
    
    rmean <- sapply(seq(1,nrow(r),4),function(rix) mean(r[rix:rix+3,],na.rm=T))
    
    rsd <- sapply(seq(1,nrow(r),4),function(rix) sd(r[rix:rix+3,],na.rm=T))
    
    
    # > rmean
    # [1] -0.033134373 -0.180689704  0.176575934 -0.003422832 -0.049113312  0.234891614  0.188559162 -0.026514169  0.106970362
    # [10]  0.096033677
    

    因此,您基本上将栅格索引为矩阵,仅使用mean / sd 所需的切片。对于迭代,您还可以使用lapply,它将所有内容都放在一个整洁的列表中。

    【讨论】:

      【解决方案2】:

      您可以聚合您的行(在这种情况下为 4 组)和列(到一列中)

      a <- aggregate(r, c(ncol(r), 4), fun=mean)
      b <- aggregate(r, c(ncol(r), 4), fun=sd)
      
      lat <- yFromRow(a, 1:nrow(a))
      plot(lat, values(a))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-19
        • 2017-07-31
        • 1970-01-01
        • 2020-05-05
        • 2020-11-12
        • 2014-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多