在地理上聚合 worldclim 的单元格,以使用 30s 分辨率来估计 10min 分辨率的标准偏差

Aggregate cells of worldclim geographically to estimate standard deviation of 10min resolution by using 30s resolution

我必须估计某些区域的地形信息。这里想用到worldclim的数据。我需要估计在 10 分钟单元格内发生的每个 30 秒单元格的海拔标准差。但是,我真的不知道该怎么做。我必须以某种方式在地理上聚合单元格...

我首先提取了worldclim所需的数据,海拔10分钟和30秒(这里我只是为lon和lat选择了一个随机数)。我还提供了我使用的坐标之一。

alt <- getData("worldclim",var="alt",res=10)

alt05_1 <- getData('worldclim', var='alt', res=0.5, lon=5, lat=45)

lats <- c(46.06667, 46.60134)

lons <- c(7.600000, 9.965973)

coords <- data.frame(x=lons,y=lats)

points_alt <- SpatialPoints(coords, proj4string = alt@crs)

values_alt <- extract(alt,points_alt)

altitude <- cbind.data.frame(coordinates(points_alt),values_alt)

因此,有了这个,我当然能够提取两个分辨率的高程,但是,我如何能够从 e 的 10 分钟单元格中出现的每 30 秒单元格中提取所有平均高程。 G。第一个坐标?

您获得的数据是 Raster 格式。所以,你应该使用library(raster)的函数。可以直接通过aggregate函数计算标准差。参数fact是聚合的大小,这里从0.5到10,fact=10/0.5:

alt05_1 <- getData('worldclim', var='alt', res=0.5, lon=5, lat=45)
sd_alt05 <- aggregate(alt05_1, fact = 10/0.5, fun = sd)

要获取平均值,您可以使用相同的函数。顺便说一下,mean 是默认值:

mean_alt05 <- aggregate(alt05_1, fact = 10/0.5, fun = mean)