微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在聚合/裁剪后我的光栅文件大小会增加?

如何解决为什么在聚合/裁剪后我的光栅文件大小会增加?

我正在处理有关空气污染的 NETcdf 文件。每月数据存储在 .nc 文件中,文件覆盖整个北美,分辨率为 0.01*0.01。但是,我只需要美国的数据,分辨率为 0.5。
所以我做了以下事情:

  1. 使用美国边界裁剪数据:raster::mask(raster::crop(PM25,raster::extent(USA)),USA)
  2. 聚合数据:aggregate(PM25,fact = 50)

然而,在这两个步骤中的每一步之后,我的光栅文件大小都大大增加。我还尝试先聚合然后裁剪栅格。但在这种情况下,文件大小先增加,然后在裁剪后略有减小。

任何想法为什么会发生这种情况?大文件一个大问题,因为我有 100 多个文件需要循环执行上述操作。

感谢任何帮助/建议。谢谢。

解决方法

提出问题时,请出示简明的脚本(最好是独立且可重复的)并提供证据。例如, show(PM25) 和(在您的问题中未命名)聚合输出相同。由于您的问题是关于文件大小,因此您当然应该包括 file.size("filename") 为输入和输出文件返回的内容;并报告输出文件格式。

但是,我想知道您所说的“文件大小”是否实际上是 R 对象的大小。是这样吗?在这种情况下,解释可能是 PM25 在磁盘上(在文件中)具有其值,而具有聚合值的 RasterBrick 在 RAM 内存中具有其值。如果您担心内存不足,您可以使用 filename 这样的参数将值写入文件

aggregate(PM25,fact = 50,filename="agg1.tif")

写入磁盘会导致(可能很小)性能损失。

另外,我认为你应该先使用aggregate,然后使用mask来避免边缘效应。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。