之前我用arcgis的模型构建器方法提取了spei数据,但是发现在这个过程中数据的值会发生变化,具体原因未知,建议不再使用ARCGIS去提取,R语言代码运行比较快,且结果准确,推荐大家去使用。对于这个使用模型构建器提取值会变这一问题,大家如果有什么新的思考或者讨论我们可以再深入研究一下,有不同的见解可以评论~

用R语言提取的结果
library(raster) library(ncdf4) library(lattice) ##读取单变量长时间序列nc数据 ncfile<-nc_open("G:/SPEIbase v.2.7 [Dataset]/spei01.nc") names(ncfile$var) input_nc = 'G:/SPEIbase v.2.7 [Dataset]/spei01.nc' varname = 'spei' raster1 = stack(input_nc, varname = varname) #设置输出路径名 outpath<-"G:/SPEIbase v.2.7 [Dataset]/result" ##为文件名设置做准备 x1<-c(1:1440) x2<-paste("spei_",x1,sep = "") out_filename<-sapply(x2, function(x)paste(x,".tif",sep = "")) #输出tif格式 out_path<-sapply(out_filename, function(x){ paste(outpath,x,sep = "/")}) #输出路径名 #批量输出 for(i in 1:1440){ writeRaster(raster1[[i]],out_path[i], format = 'GTiff', overwrite = T) }
本文作者建议弃用ArcGIS模型构建器提取SPEI数据,因为存在数据值变化问题。相比之下,R语言的ncdf4和lattice库能快速且准确地处理,通过lattice包实现批量输出GTiff格式。鼓励读者分享关于此问题的新观点和讨论。

1041





