【问题标题】:save Large RasterBrick to file for later use将大型 RasterBrick 保存到文件以供以后使用
【发布时间】:2019-08-30 00:43:18
【问题描述】:

我有一个大型 RasterBrick,它是通过编译大量 .nc 文件然后以几种方式(裁剪、折叠、命名图层)进行操作而创建的。我想把这块砖保存到我笔记本电脑上的一个文件中,这样我就可以访问它,而不必导入所有数据并重新操作。

我该怎么做?我认为它应该涉及 writeRaster,但我不确定如何指定选项。

我的 RasterBrick 是 18 x 25,有 14975 个图层,每个图层都以相关日期命名。

我从Save multi layer RasterBrick to harddisk尝试了这段代码:

outfile <- writeRaster(windstack_mn, filename='dailywindgrid.tif', format="GTiff", overwrite=TRUE,options=c("INTERLEAVE=BAND","COMPRESS=LZW"))

但是,此代码生成的 tif 文件包含一个 18 x 25 层。我认为它只保存了我的 RasterBrick 的第一层,因为如果我引入保存的 .tif 文件并绘制它,它看起来与绘制原始 RasterBrick 的第一层相同。

【问题讨论】:

    标签: r-raster


    【解决方案1】:

    你看过outfile吗?可以给我们看看吗?

    您应该展示您为“引入已保存的 .tif”所做的工作。我猜你是这样的

    raster('dailywindgrid.tif')
    

    而你应该这样做

    brick('dailywindgrid.tif')
    

    【讨论】:

    • 谢谢!你是对的,我使用的是 raster() 而当我使用brick('dailywindgrid.tif') 时,我确实引入了一个18 x 25 的brick w/ 14975 层。这与我尝试导出的内容相匹配,但我无法立即检查精确值,因为重新加载原始数据进行比较需要大约 10 个小时。但是,我可以立即看到图层名称未保存在 .tif 文件中。我不认为有任何方法可以保存图层名称以及网格数据的图层(假设后者确实是正确的)?
    • 要保存图层名称,您需要使用“.grd”格式
    • 谢谢,一旦我使用了光栅格式就可以了。我在下面的答案中提到了这一点,以便为未来的读者整理所有内容。还有一个问题,如果您要回答的话——指定的选项有什么作用? writeRaster 的帮助甚至没有提到选项 INTERLEAVE,也没有定义 COMPRESS 或 COMPRESS 的选项。
    【解决方案2】:

    comment/answer fr/ Robert 解决了我的问题,还需要指定光栅格式。所以我现在用这段代码保存文件:

    writeRaster(StackName, filename='FileNAme.grd', format="raster", overwrite=TRUE,options=c("INTERLEAVE=BAND","COMPRESS=LZW"))
    

    之后可以使用以下代码打开该 .grd 文件:

    ImportName <- brick("FileNAme.grd") 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多