如何在将RasterBrick导出为TIFF时保留原始图层名称
保留RasterBrick图层名称导出GTiff的解决方法
当将带日期命名图层的RasterBrick导出为GTiff格式后,重新读取会发现图层名称变为默认的layer.1、layer.2等,这是因为GTiff格式本身不支持存储自定义图层名称。以下是两种解决思路:
方法1:改用支持图层名称的格式导出
选择ENVI或NetCDF这类原生支持保留图层名称的格式,导出后重新读取即可保留原始命名:
导出为ENVI格式
# 导出ENVI格式(自动保留图层名) outfile <- writeRaster(input_raster, filename = paste0("G:\\My Drive\\DATA\\", fname), format = "ENVI", overwrite = TRUE) # 重新读取 l <- brick(outfile)
导出为NetCDF格式
# 导出NetCDF格式 outfile <- writeRaster(input_raster, filename = paste0("G:\\My Drive\\DATA\\", fname), format = "CDF", overwrite = TRUE, varname = "data") # 重新读取 l <- brick(outfile)
方法2:手动保存并恢复图层名称(必须用GTiff时)
如果业务需求限定必须使用GTiff格式,可通过手动保存原始图层名称,读取后重新赋值的方式恢复:
# 1. 将原始图层名称写入文本文件保存 writeLines(names(input_raster), con = "G:\\My Drive\\DATA\\layer_names.txt") # 2. 导出GTiff文件 outfile <- writeRaster(input_raster, filename = paste0("G:\\My Drive\\DATA\\", fname), format = "GTiff", overwrite = TRUE) # 3. 读取导出的GTiff文件 l <- brick("K:\\try\\2017-10.tif") # 4. 读取保存的名称并赋值给新的RasterBrick original_names <- readLines("G:\\My Drive\\DATA\\layer_names.txt") names(l) <- original_names
执行以上步骤后,l的图层名称会恢复为原始的X01.10.17、X02.10.17等命名。
内容的提问来源于stack exchange,提问作者CovetTachi
相关产品推荐
相关产品推荐

