使用 terra::extract 的问题结果呈现 nan 值

Problem using terra::extract results present nan value

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

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

plot(x)
points(y)

如果这看起来不太好,您或许应该这样做

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

(也许 QGIS 会为您做这些?)

否则,要找出发生这种情况的位置,您可以 select 这些点,也许是这样的:

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