[英]How to extract xy-coordinates from raster where its highest value is located within a polygon?
給定的是柵格以及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-documentation
您可以在extract
使用cellnumbers=TRUE
參數,然后使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.