我正在尝试提取像素质心的坐标,我的点落在该像素内。这是一个可重现的示例
library(terra)
filename <- system.file("ex/elev.tif", package="terra")
r <- rast(filename)
#Create random points in raster
points<-spatSample(r, 10, as.points=TRUE)
crds<-crds(points)
#Extract the coordinates of the random points
crds
x y
[1,] 5.904167 49.97083
[2,] 6.262500 50.12917
[3,] 6.512500 49.63750
[4,] 6.462500 50.03750
[5,] 6.137500 49.90417
[6,] 6.520833 49.96250
[7,] 5.904167 49.52083
[8,] 6.187500 49.68750
[9,] 6.212500 49.68750
[10,] 5.962500 49.86250
#Extract pixel values and centroids of pixels
values<-extract(r, points, xy=TRUE)
values
ID elevation x y
1 373.000000 6.462500 49.52083
2 5.904167 50.037500 367.00000
3 49.970833 368.000000 6.18750
4 NaN 6.137500 49.68750
5 6.262500 49.904167 392.00000
6 50.129167 NaN 6.21250
7 NaN 6.520833 49.68750
8 6.512500 49.962500 431.00000
9 49.637500 305.000000 5.96250
10 NaN 5.904167 49.86250
我希望提取的 xy 坐标仅与原始坐标稍有偏差,但这些值似乎都混在一起了。我在我的代码中犯了错误还是有另一种获取这些值的方法?