使用 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
)
我想从栅格中提取值到点。我正在使用 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
)