前不久在完成期末作业的时候,发现需要用到气温、降水等数据,而这些气象数据大多是nc文件,所以这篇文章主要是记录一下当时怎么处理的。GIS小白,还望各位多多指正~
数据来源
/data/datadetails.html?dataguid=192891852410344&docId=3165
CRU发布的全球0.5°气候数据集(https://crudata.uea.ac.uk/cru/data/hrg/)以及WorldClim发布的高分辨率气候数据集(/)。
1.打开ArcGIS Pro,先创建一个新的project
2.创建栅格图层,在工具箱中找到Make NetCDF Raster Layer.
注意:nc文件保存路径放在桌面(路径太深了之后许多工具会“找不到”nc文件而报错)
Band Dimension选择time,因为一个波段代表一个月的数据
完成后,右击图层,查看Layer Properties中的source,可以发现没有定义坐标系,且在Band Metadata中有12个波段,即是12个月的数据
若要导出,右键图层,选择Export Data,选择一个文件夹保存即可(文件夹命名用字母)。如果要一个一个导出的话,会很麻烦,我们现在来创建一个模型,运行让其自己导出。
3.创建模型,在ArcGIS Pro页面最上面一栏找到Analysis,左下有一个ModelBuilder,点击
就会出现新得模型页面,然后再Toolboxes中找到Make NetCDF Raster Layer,就是重复我们一开始的那个步骤,创建栅格图层。
双击Make NetCDF Raster Layer(在这里,nc文件路径太“深”会报错)
完成之后,点击Iterators(迭代器),选择for循环,我们要从1月份循环到12月份
接下来双击Make NetCDF Raster Layer,注意在Dimension处,选择time,右框中的Value不在下拉框中选择,直接输入%Value%(如果是中文版的,输入%值%)
现在就变成这个样子啦
左键长按value,拉出一条线指到Make NetCDF Raster Layer,在此处进行循环。拉线后会弹出选择框,选择precondition(前提条件)
↓
在Data Management Tools中找到“复制栅格工具”,拖到Model中,从tmp_Layer1拉线到Copy Raster,选择Input Raster.
双击Input Raster,这里需要注意的是,我们要改变Output Raster Dataset 名字,如下图所示,在当中加上“%Value%”(与之前对应),文件后缀名为tif
完成
在第一部中,我们发现此时是没有定义坐标系的,所以将Define Projection拖到Model当中,从tmp%Value%.tif那拉一条线指到Define Projection处,弹出选项,选择Input Dataset or Feature Class
双击Define Projection,坐标系选择WGS1984
双击tmp%Value%.tif(2),就是下图这样的啦
点击绿色✔(Validate),验证一下有问题没有,再RUN运行,等待几分钟
运行结束,从右边的文件夹里就可以看到有12个文件,分别是12个月份的,这个模型也可以保存,以便下次使用。
如果要进行年平均气温的统计,可以使用Cell Statistics工具,这里不过多赘述。
这是我在做的过程中参考的一个视频和两篇比较好的文章,大家也可以去看一看
1.ArcGIS逐月气候栅格数据处理转年度数据处理
地址:/video/BV1X44y1k7K6?share_source=copy_web&vd_source=dbef35c5bd27b2cc04c06ef8e431820f
2.ArcGIS中提取多波段影像中的单个波段
网址:/caoyimingGIS/p/7559919.html
3.ArcGIS处理NetCDF(.nc)的多维科学数据
/p/343926071