如何在SpatRaster地图上绘制经纬度点?points函数无输出排查
问题解决:SpatRaster地图上无法显示tibble中的物种出现点
以下是几个针对性的排查和解决方法:
明确指定经纬度参数:
points()直接传入tibble时,可能无法自动识别列名。手动指定x(经度)和y(纬度)即可:points(x = presence$decimalLongitude, y = presence$decimalLatitude, pch="+", col="red")转换为普通数据框:base R绘图函数对tibble的兼容性偶尔有偏差,转成普通数据框再传入:
points(as.data.frame(presence), pch="+", col="red")注意确保数据框的第一列是经度、第二列是纬度,顺序错了也会导致点不显示。
验证坐标范围与顺序:再次确认坐标没搞反(比如把纬度当经度传),可以用代码检查:
# 查看栅格的经纬度范围 terra::ext(region) # 查看点数据的坐标范围 range(presence$decimalLongitude) range(presence$decimalLatitude)使用terra包的points方法:因为
region是terra的SpatRaster对象,用terra自带的points()函数对tibble支持更友好:library(terra) points(presence, pch="+", col="red")
内容的提问来源于stack exchange,提问作者c roc
相关产品推荐
相关产品推荐

