gpt4 book ai didi

r - 如何从其最大值位于多边形内的栅格中提取 xy 坐标?

转载 作者:行者123 更新时间:2023-12-01 11:18:06 24 4
gpt4 key购买 nike

给定的是一个栅格以及一个 SpatialPolygonsDataframe。
为了检索多边形区域内栅格的最高值,可以使用 raster::extract 。它工作正常。

如何另外获取多边形区域内栅格的提取最大值的坐标?

# create raster
r <- raster(ncol=36, nrow=18)
r[] <- runif(ncell(r))
# create SpatialPolygons from GridTopology
grd <- GridTopology(c(-150, -50), c(40, 40), c(8, 3))
Spol <- as(grd, "SpatialPolygons")
# create SpatialPolygonsDataFrame
centroids <- coordinates(Spol)
x <- centroids[,1]
y <- centroids[,2]
SPDF <- SpatialPolygonsDataFrame(Spol, data=data.frame(x=x, y=y, row.names=row.names(Spol)))
# extract max value of raster for each SpatialPolygon
ext <- raster::extract(r, SPDF, fun=max)

*示例代码取自 R 文档

最佳答案

您可以使用 cellnumbers=TRUE参数在 extract ,然后是 sapply获取单元格编号:

ext <- raster::extract(r, SPDF, cellnumbers=TRUE)
v <- t(sapply(ext, function(i) i[which.max(i[,2]), ] ))

# cell value
# [1,] 185 0.9303460
# [2,] 188 0.9821190
# [3,] 154 0.9926290
# [4,] 232 0.8907819
# [5,] 234 0.9998510

获取坐标:
xyFromCell(r, v[,1])

# x y
# [1,] -135 35
# [2,] -105 35
# [3,] -85 45
# [4,] -25 25
# [5,] -5 25

关于r - 如何从其最大值位于多边形内的栅格中提取 xy 坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48021657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com