使用R中的光栅对大型ArcGIS栅格文件进行降额

使用R中的光栅对大型ArcGIS栅格文件进行降额,r,raster,r-raster,R,Raster,R Raster,我试图提取大型ArcGIS网格文件的各种属性,类似于 即使使用较小的文件裁剪版本,操作也很慢,但更重要的是,需要一个很多GB的临时文件,最终会耗尽我的硬盘,导致操作失败。我在这个驱动器上有大约35 GB的可用空间 foo <- raster("grid/w001001.adf") allLayers <- deratify(foo) 我对河流温度数据进行计算,这些数据通常是数百万条记录。每当遇到内存问题时,我都会将gc()和rm()函数合并到处理数据的循环中。您可以考虑在循环中使用

我试图提取大型ArcGIS网格文件的各种属性,类似于

即使使用较小的文件裁剪版本,操作也很慢,但更重要的是,需要一个很多GB的临时文件,最终会耗尽我的硬盘,导致操作失败。我在这个驱动器上有大约35 GB的可用空间

foo <- raster("grid/w001001.adf")
allLayers <- deratify(foo)

我对河流温度数据进行计算,这些数据通常是数百万条记录。每当遇到内存问题时,我都会将gc()和rm()函数合并到处理数据的循环中。您可以考虑在循环中使用这些函数来处理裁剪文件,这样RM-()可以从R环境中移除不需要的对象,而GC.()将内存返回给您的系统。
如果您有一个多核系统,则可以将其放入一个循环中,以批处理所有裁剪的文件,并在每个节点完成一个循环的deratify()调用后进行清理。如果没有更多的代码,就很难建议如何实现。

如果有一个类似结构的较小文件,我们将不胜感激。这是900+MB,林服务的服务器速度很慢。我自己还没有测试过,但是这个文件的格式是相同的。大小显然是我遇到的问题的一部分,因此将此链接发布到上面的文件。deratify将为每个属性创建一个层。有多少属性?有180层;但是,我遇到了磁盘空间问题,试图对单个属性进行降额,这会在后台为每个属性创建一个层吗?我尝试使用Windows R上的重新设置。我将ProcMon附加到rsession.exe,但没有看到由rsession.exe创建的任何临时文件。临时文件是由R、光栅还是OSX创建的?谢谢你的回答,我现在没有使用任何循环。提供的示例实际上是我试图运行的所有代码。空间中没有
rm()
gc()
可以帮助的RAM,而是由
光栅
包生成的临时文件的大小
allLayers <- deratify(fooCropped, att="BA_GE_3")
> R.Version()
$platform
[1] "x86_64-apple-darwin15.3.0"
$arch
[1] "x86_64"
$os
[1] "darwin15.3.0"
$system
[1] "x86_64, darwin15.3.0"
...

‘raster’ version 2.5-2 
R version 3.2.4