如何在R中为SpatRaster设置varnames和longnames后写入NetCDF文件
问题原因
你使用的terra 1.4-15是较旧版本,该版本存在已知缺陷:writeCDF函数无法正确读取SpatRaster对象预先设置的varnames和longnames属性写入NetCDF文件。该问题在terra 1.5-21及之后的版本已被官方修复。
解决方案
有两种可行处理方式:
- 升级terra包(推荐)
直接升级到CRAN最新版的terra包,升级完成后你原有的代码无需修改即可正常生效,变量短名、长名都会正确写入NetCDF文件。 - 兼容旧版本的写法
如果暂时无法升级包,可以直接在writeCDF函数调用时显式传入varname和longname参数,无需提前给SpatRaster对象设置对应属性,修改后的写入代码如下:
writeCDF(x = r, filename = "reproducible_example.nc", varname = "pr", longname = "Precipitation", compression = 9, missval = 1e32, overwrite = TRUE)
验证方法
写入完成后重新读取NetCDF文件即可看到属性已正确生效,也可以通过Panoply工具查看变量信息确认设置生效。
内容的提问来源于stack exchange,提问作者ahmathelte
相关产品推荐
相关产品推荐

