R:如何在没有辅助文件的情况下将光栅写入磁盘?

R: how to write a raster to disk without auxiliary file?

我正在使用 R 中的 Raster 包以 ERMapper 格式 (.ers) 将数据集写入文件,但生成的 .aux.xml 辅助文件(我实际上是不感兴趣)。

简单示例:

rst <- raster(ncols=15000,nrows=10000)
rst[] <- 1.234
writeRaster(rst, filename='_test.ers', overwrite=TRUE)

writeRaster()行需要一些时间来执行,数据文件很大,磁盘上大约1.2GB。

在检查 writeRaster() 执行时发生的情况时,我发现 .ers 文件(头文件 + 相关数据文件)通常在大约 20 秒内生成。然后,又需要 writeRaster() 20 - 25 秒来生成 .aux.xml 文件,该文件仅包含最小值、最大值、平均值和 st 等统计信息。开发者(这可能解释了为什么计算需要这么长时间)。

因为我不关心 .aux.xml 文件,所以我希望 writeRaster() 完全不用理会它,并节省 20 - 25 秒的执行时间(我'我将大量这些数据集写入磁盘,因此我的代码中 50% 的加速是相当可观的)。

任何人都知道如何告诉 writeRaster() 而不是 创建 .aux.xml 文件?我怀疑这是一个与 GDAL 相关的问题,但经过大量研究仍未找到答案...

欢迎任何帮助!

可以使用(不太容易找到)rgdal::setCPLConfigOption 函数设置与 GDAL 文件格式驱动程序相关的选项。

在你的情况下,

rgdal::setCPLConfigOption("GDAL_PAM_ENABLED", "FALSE")

应该禁用 xml 文件创建。

HTH