数据准备
国家地球系统科学数据中心下载的全国逐月最低气温数据集,每3年数据共36个月的最低气温数据保存在一个nc文件中,现在想要将数据导出为逐月栅格数据,以15-17年数据为例。
R包加载
主要用到ncdf4包读取nc文件,raster包将读入数据转栅格数据并输出.
library(raster)
library(ncdf4)
library(rasterVis)
library(lattice)
NC数据导入
##读取单变量长时间序列nc数据
ncfile<-nc_open("E:/1data/tmn_2015_2017.nc")
names(ncfile$var)
names函数获取变量名tmn
导入为栅格数据
input_nc = 'E:/1data/tmn_2015_2017.nc'
varname = 'tmn'
##压缩呈栅格栈
raster1 = stack(input_nc, varname = varname)
设置输出路径名
outpath<-"E:/1data/月最低气温"
##为文件名设置做准备
x1<-c(1:12)
x2<-paste("2015",x1,sep = "")
x3<-paste("2016",x1,sep = "")
x4<-paste("2017",x1,sep = "")
x5<-c(x2,x3,x4)
out_filename<-sapply(x5, function(x)paste(x,".tif",sep = "")) #输出tif格式
out_path<-sapply(out_filename, function(x){
paste(outpath,x,sep = "/")}) #输出路径名
批量输出
for(i in 1:36){
writeRaster(raster1[[i]],out_path[i], format = 'GTiff', overwrite = TRUE)
}
小结
学习R语言是一件激动人心的事情,在看了很多文章后终于可以站在巨人的肩膀上写一写自己的东西,自勉。
[文章参考](https://www.jianshu.com/p/1f327f0c48e9)