将环境栅格图层上传和堆叠到R

时间:2017-11-22 02:53:18

标签: r arcgis maxent

我正在尝试将一堆环境栅格图层上传到R中以用于SDM。它们都具有相同的范围,像素大小等,并且我的大多数图层都上传得很好,但我的BIOCLIM图层却没有。

我能够绘制每一层并且它看起来很好,但是当我将它们堆叠在一起时我得到了这个错误:

在.makeRasterList(rlist)中:没有数据被忽略的图层

当我看到我的堆栈时,我的19层中只有一层存在。我假设这个错误意味着我的一些像素没有数据,但我不知道如何解决这个问题 - 任何想法?

修改 我不确定它是否是arcmap或R中的问题(我相信它可能是前者,因为我的其他非气候层工作)。这是我的19层之一的代码:

ann_mean_temp <- 'ann_mean_temp3.tif'   
ann_mean_temp=brick(ann_mean_temp)   
plot(ann_mean_temp) 

ann_mean_temp  
class       : RasterBrick   
dimensions  : 785, 887, 696295, 1  (nrow, ncol, ncell, nlayers)  
resolution  : 1000, 1000  (x, y)  
extent      : 936315.5, 1823316, -341835.1, 443164.9  (xmin, xmax, ymin, 
ymax)  
coord. ref. : +proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 
+y_0=0 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0   
data source : C:\Users\Anna\Documents\ArcGIS\R\ann_mean_temp3.tif   
names       : ann_mean_temp3   
min values  :             57   
max values  :            155 

climate <- stack(ann_mean_temp, diurnal_range, Isothermality, 
             temp_seasonality, max_temp_warmest, min_temp_coldest,
             temp_range, temp_wettest, temp_driest,
             mean_temp_warmest, mean_temp_coldest, ann_precip,
             precip_wettest_m, precip_driest_m, precip_seasonality,
             precip_wettest_q, precip_driest_q, precip_warmest,
             precip_coldest)

我现在收到此错误: compareRaster(x)出错:不同的数字或列

我还要提一下,在arcmap中我所做的就是从BIOCLIM下载每一层,投影它,通过掩码提取以将每一层剪辑到我的研究区域,并将其导出为tif文件。

1 个答案:

答案 0 :(得分:0)

  

我所做的就是从BIOCLIM下载每一层,投影,提取   将每个图层剪辑到我的研究区域,然后将其导出为tif文件。

这应该没问题,但你必须确保ArcMap不会改变光栅原点和分辨率,这很难做到(检查环境设置)。

或者,在R。

中执行所有这些步骤
f <- list.files(pattern="bio")
s <- stack(f)

e <- extent(c(936315.5, 1823316, -341835.1, 443164.9))
r <- raster(nrow=758, ncol=887, ext=e, res=1000, crs="+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83")

y <- projectRaster(s, r) 

现在去喝点咖啡吧。你应该在回来时完成这个过程。