-1

我想从栅格中提取值到点。我正在使用 terra 和 extract() 函数。该脚本有效,但我注意到对于某些行(大约 100 行),提取函数的结果是值“nan”。没有点在栅格之外。我也有这个问题,添加了 na.rm=T 选项。如果我尝试使用示例 qgis 执行相同的操作,我没有这个问题。这怎么可能?有没有人遇到过这个问题?

4

1 回答 1

0

y首先在栅格 (SpatRaster ) 上绘制点 ( SpatVector x)

plot(x)
points(y)

如果这看起来不太好,您可能应该这样做

y <- project(y, crs(x))

(也许 QGIS 会为您做到这一点?)

否则,要找出发生这种情况的位置,您可以选择这些点,可能像这样:

e <- extract(x, y, xy=TRUE)
yna <- y[is.na(e[,names(x)[1]]), ]
plot(x)
points(yna) 

现在放大到这些点中的一个或多个

zoom(x) # click twice on the map
points(yna) 

您可以将这些点保存到磁盘,writeVector(yna, "points.shp")以便再次与 QGIS 进行比较。

而且,顺便说一句,extract没有论据na.rm(见?extract

于 2022-01-27T17:42:39.597 回答