我尝试上传从WorldClim下载的.tif文件用于SDM项目。我使用了raster
函数,但是,当我使用getValues
时,它会导致大量的NA,从而降低了SDM的可靠性。
我已经下载了历史环境值,res=10m WorldClim的***温度、降水量和海拔数据***到这些.tif文件中,然后我使用这些代码来设置研究区域。(getData
对我不起作用,这就是为什么我必须下载它。
temp<-raster("wc2.1_10m_bio_1.tif")
getValues (temp)
> [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[32] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[63] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[94] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[125] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[156] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[187] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[218] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[249] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[280] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[311] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[342] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[373] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[404] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[435] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[466] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[497] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[528] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[559] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[590] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[621] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[652] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[683] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[714] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[745] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[776] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[807] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[838] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[869] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[900] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[931] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[962] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[993] NA NA NA NA NA NA NA NA
[ reached getOption("max.print") -- omitted 2331800 entries ]
preci<- raster("wc2.1_10m_bio_12.tif") #getValues gives the same story as temp
elev<- raster("wc2.1_10m_elev.tif")#getValues gives the same story as temp
Asia<- ne_countries(scale="medium", type="map_units", returnclass="sf", country=c('Myanmar','Thailand','Laos','Cambodia','Vietnam'))
study_area<- select(Asia, geometry, name_long)
elev<- mask(elev,study_area) #getValues has not changed, still includes tons of NAs
temp<- mask(temp,study_area)
preci<- mask(preci,study_area)
envi_stack<-stack(elev, temp, preci)
names(envi_stack)<- c("elev", "temp", "preci")
ex<- extent(90, 112, 4, 30)
envi<- crop(envi_stack, ex)
names(envi)<- c("elev", "temp", "preci")
plot(envi)
我不知道应该采取什么不同的做法来从WorldClim获得完整的环境信息。我希望这3个变量的堆栈没有NA,这样我就可以运行我的SDM,没有有限的环境变量。这是我第一次发布问题,所以请让我知道,如果我可以提供更清楚的说明。非常感谢。
1条答案
按热度按时间6fe3ivhb1#
我只是想重现你的问题。我做了这个快速而肮脏的测试(文件是从worldclim下载的,是“bio 10m”数据):
图中显示了一幅白色的陆地和一种颜色的海洋Map。这表明大多数值只是
NA
,因为这些数据点位于海洋中,而数据库没有测量数据:这对我也很有效:
(我排除了您使用我尚未安装的附加R包的部分。)
如果有疑问,我通常会通过运行以下代码行来检查数据集是否包含“合理”的值:
这将打印出所有非
NA
值的索引。如果答案为空,则栅格中没有数据。这将表明您选择了一个不合适的区域,没有任何数据点,或者您的数据存在问题。或者,在使用栅格数据时,您只需打开QGIS、ArcGIS Pro、或类似的程序,然后将栅格拖放到其中以检查它所包含的内容。然而,正如我已经演示过的,您正在使用的数据库显然没有提供海洋表面的测量值,至少对于某些变量是如此。