R 中的区域统计与 GIS 中的一样(对于点,而不是多边形)

Zonal statistics in R as in GIS (for a point, not polygon)

我在一个文件夹中有多个光栅。我需要在一个像素上提取每个栅格的平均值(我做点并记下多边形)。

它说提取也可以用于点、线和多边形。 但是对于功能(乐趣=平均值)。我想通过这种方法知道,如果我必须强制执行 fun='mean' ?因为我的 shapefile 中有点而不是多边形...? 这些点在我的光栅的每个像素上

你能帮帮我吗?谢谢

这是我想做的代码:

test <- list.files("my_path", pattern = "\.tif$", full=TRUE)
STACK <- stack(ff)

SHAPE <- shapefile("my_path/supplimentY.shp")

extr <- extract(STACK, SHAPE, *fun='mean'*, na.rm=TRUE, df=TRUE)

来自 extract 示例:

library(raster)
r <- raster(ncol=36, nrow=18, vals=1:(18*36))

###############################
# extract values with points
###############################
xy <- cbind(-50, seq(-80, 80, by=20))
sp <- SpatialPoints(xy)
raster::extract(r, sp)

并来自文档:

If y represents points, fun is only used when a buffer is used

所以你不应该为 fun 参数提供一个函数,因为没有值可以总结,因为点落在堆栈中每一层的一个像素中。

如果您想要点附近值的摘要,您可以使用 buffer 参数指定每个点周围缓冲区的半径,从中提取像元值。或者您可以将 method 参数更改为 'bilinear',这样返回的值是根据四个最近的栅格像元的值进行插值的。