我正在研究 R 中的物种分布模型,并试图在此过程的早期解决代码中的一些问题。我使用 WorldClim 的气候数据栅格创建了一个掩模。然后我根据物种观察数据创建空间点。当我尝试将空间点绘制到我的蒙版上时,它没有对齐:
当我使用 QGIS 只是为了查看我的空间点是否与栅格图层对齐时,它会按预期对齐:
稍后在我的代码中,我需要创建伪缺席,但这不起作用,因为它不会从掩码中提取任何内容,因为没有掩码,它不排队。
我尝试检查掩码和数据是否在同一个 CRS 中,我尝试在 QGIS 中仔细检查它,一切似乎都工作正常并对齐。我还确保了纬度和经度不会意外颠倒。
我错过了什么吗?
下面是出现问题的代码部分。我正在使用 R 版本 4.3.2 并在 VS Code 中进行编码(如果有帮助的话)。
library(raster)
# Read in occurence data
obs_data <- read.csv("data.csv")
# Read the raster files
raster_bio1 <- raster("wc2.1_30s_bio_1.tif")
raster_bio4 <- raster("wc2.1_30s_bio_4.tif")
# create stack of climatic data
clim_SA <- stack(raster_bio1, raster_bio4)
names(clim_SA) <- c("AnnMeanTemp", "TempSeasonality")
# create mask which is kind of like a base map
#select any variable at the SA scale
mask_SA <- clim_SA$AnnMeanTemp > -500
# create spatial points of species observation data
pt <- SpatialPoints(obs_data[, c("decimalLongitude", "decimalLatitude")], proj4string = CRS("+proj=longlat +datum=WGS84"))
plot(mask_SA)
plot(pt, pch = 16, col = "red", add = T)
代码看起来不错。也许阴谋本身就出了差错。这看起来像什么?
library(terra)
obs_data <- read.csv("data.csv")
r <- rast("wc2.1_30s_bio_1.tif")
plot(r)
points(obs_data[, c("decimalLongitude", "decimalLatitude")], pch=20, col="red")