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

问题描述

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

它说提取物也可以用于点、线和多边形。 但是对于函数(乐趣 = 平均)。我想通过这种方法知道,是否必须强制执行 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)

来自文档:

如果 y 表示点,则仅在使用缓冲区时才使用 fun

因此您不应为 fun 参数提供函数,因为没有要汇总的值,因为点落在堆栈中每一层的一个像素中。

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