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
我正在使用 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