【发布时间】:2021-05-03 22:15:45
【问题描述】:
我正在尝试计算从空间点到特定值/类型的栅格单元的距离。在我的数据中,每个点代表一棵树,我想知道该点与不同类别的栅格单元(草、森林、不透水表面等)的距离。我尝试了 distanceFromPoints ,但它返回了一个距离栅格,我感兴趣的是一个数据框,其中包含从每个点到每种土地覆盖类型的最近栅格单元的距离。
#example raster
library(raster)
r <- raster(nrow=100, ncol=100)
r[] <- round(runif(ncell(r),1,4),0)
plot(r)
#example points
x <- c(-110, -50, 25, 150)
y <- c(50, -25, 70, 2)
df <- data.frame(cbind(x,y))
df$n <- c("pt1","pt2","pt3","pt4")
library(sp)
sp <- SpatialPoints(c, proj4string = CRS("+proj=longlat +datum=WGS84 +no_defs"))
plot(sp, add=TRUE)
我想要的输出是这样的:
x y n dist.cat1 dist.cat2 dist.cat3 dist.cat4
1 -110 50 pt1 12 3 5 9
2 -50 -25 pt2 1 2 1 27
3 25 70 pt3 4 14 29 5
4 150 2 pt4 23 2 15 2
其中 dist.cat1 表示从点 (n) 到最近的具有类别 1 值的栅格像元的距离。
【问题讨论】: