gpt4 book ai didi

r - 使用 R 中的栅格取消大型 ArcGIS 网格文件

转载 作者:行者123 更新时间:2023-12-04 12:30:30 27 4
gpt4 key购买 nike

我正在尝试提取类似于 this forestry map 的大型 ArcGIS 网格文件的各种属性。

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

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

使用上述文件的裁剪版本可以提取单个属性图层,但是当裁剪后的 ArcGIS 格网文件目录只有 ~160MB 时,这仍然需要一个多 GB 的临时文件。在函数中指定文件名似乎并没有改善所使用的硬盘空间量。
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

最佳答案

我对流温度数据进行计算,这通常是数百万条记录。每当我遇到内存问题时,我都会将 gc() 和 rm() 函数合并到我正在处理数据的循环中。您可能会考虑在循环中使用这些函数来处理裁剪的文件,以便 rm() 从 R 环境中删除您不需要的对象,而 gc() 将内存返回给您的系统。

如果您有一个多核系统,您可以将其放入一个循环中以批处理所有裁剪的文件,并在每个节点完成循环的 deratify() 调用后进行清理。如果没有更多的代码,很难建议您将如何实现。

关于r - 使用 R 中的栅格取消大型 ArcGIS 网格文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36633604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com