R 中是否有一种快速的方法可以根据纬度间隔或区间对栅格进行汇总统计。不是整个栅格层的摘要,而是空间子部分的摘要。例如,获取纬度每两度的栅格像元值的均值和标准差。
以下是具有纬度/经度坐标的投影栅格的一些示例数据。
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)
最佳答案
由于您的栅格分辨率为 0.5 并且您有 40 行,因此您需要 mean
/sd
每 4 行:
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
,这将所有内容都放在一个整洁的列表中。
关于r - 按纬度间隔划分的栅格汇总统计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52772053/