【问题标题】:issue with uploading and stacking environmental raster layers into R将环境栅格图层上传和堆叠到 R 中的问题
【发布时间】:2018-05-05 16:21:44
【问题描述】:

我正在尝试将一堆环境栅格图层上传到 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 文件。

【问题讨论】:

  • 该消息表明您正在使用没有关联值的 RasterLayers 创建 RasterStack。你能举个例子吗,可能有两层?
  • 嗨罗伯特。感谢您的回复。我有 19 个 BIOCLIM 层,我试图将它们导入 R 以堆叠在一起。例如,有几层是年降水量和年平均温度。我能够单独导入每个图层并绘制它,但是当我将它们堆叠在一起时,我会收到此消息。
  • 是的,但您似乎做错了什么。如果您不显示任何代码,我们无法指出它是什么。尽量简化问题。您似乎正在添加一个空(无关联值)RasterLayer。
  • 请看上面的编辑

标签: r arcgis maxent


【解决方案1】:

我所做的只是从 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) 

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2018-07-08
    • 2014-11-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多