查看原文
其他

R-地理数据处理基础-NC格式数据读取,可视化及导出为GeoTiff文件

申泽西 TheWhoOPs 2021-09-19

目录

  • 0.问题导入

  • 1.示例数据

  • 2.将NC文件中的FSDS变量导入为raster

  • 3.数据可视化检查(图2)

  • 4.结果写入GeoTiff文件

  • 5.总结

  • 6.解决本示例问题所采用的R-packages

  • 7.致谢

0. 问题导入

目前,很多地理数据均存储为NetCDF格式(下简称NC格式),而往往内含多变量,不方便处理。其中,一种解决思路就是将NC格式文件中的多个变量数据转格式为单变量的GeoTiff文件(图1),进而进一步处理。图1 技术路线

1. 示例数据

本示例数据格式为NC格式数据,内含7个变量。

ncfile = ncdf4::nc_open('L:\\JianShu\\2019-12-4\\data\\clmforc.Qian.c2006.T62.Solr.1972-01.nc')
names(ncfile$var)
[1] "EDGEE" "EDGEN" "EDGES" "EDGEW" "FSDS" "LATIXY" "LONGXY"

2. 将NC文件中的FSDS变量导入为raster

input_nc = 'L:\\JianShu\\2019-12-4\\data\\clmforc.Qian.c2006.T62.Solr.1972-01.nc'
varname = 'FSDS'
nc2raster = raster(input_nc, varname = varname)

3. 数据可视化检查(图2)

png("L:\\JianShu\\2019-12-4\\plot1.png",
height = 15,
width = 20,
units = "cm",
res = 1000)
print(levelplot(nc2raster))
dev.off()

图2 结果可视化检查

4. 结果写入GeoTiff文件

重点来啦,最重要的是要保证writeRaster 函数中的 overwrite 选项设置为 TRUE ,否则二次读取再存储系统会报错!

Error in .getGDALtransient(x, filename = filename, options = options, :
filename exists; use overwrite=TRUEError in .getGDALtransient(x, filename = filename, options = options, :
filename exists; use overwrite=TRUE

因此

output = 'L:\\JianShu\\2019-12-4\\FSDS.tif'
writeRaster(nc2raster, output, format = 'GTiff', overwrite = TRUE)

5. 总结

本篇主要解决了以下几个问题:

  1. 如何读取并导入NC文件?

  2. 如何将NC文件中的变量进行空间可视化?

  3. 如何将NC文件导出为GeoTiff格式?

6. 解决本示例问题所采用的R-packages

library(raster)
library(ncdf4)
library(rasterVis)
library(lattice)

7. 致谢

首先,感谢大家的持续关注,小编会继续努力,持续更新下去的!

大家如果觉得有帮助啊,还麻烦大家关注点赞,也可以扩散到朋友圈,多多引导朋友加入咱们这个简书技术平台, 代码共享推动科研进程, 多谢大家啦~

大家如果在使用本代码的过程有遇到问题的,可以留言评论,也可以私信我哈~~

▼    ▼    ▼   ▼  ▼    ▼



视频 小程序 ,轻点两下取消赞 在看 ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存