一直想做一下掩膜提取的事情(根据一个不规则的shp矢量数据掩膜格点数据)。Python可以,ArcGIS也可以,而且经过使用下来,ArcGIS可能还要更加方便,特别是针对批处理的内容。除此之外据说还有cdo也可以掩膜提取,但是我一直没有去尝试。
今天就先测试一下Python和ArcGIS掩膜提取NETCDF数据。需要说明的是,在这个测试中,NETCDF中只存储有一个数据变量。
首先是Python的,需要使用到salem这个包,总感觉不是那么容易安装,但是在ubuntu的虚拟机里一下就好了。这里我就用官网的例子做一下测试。


最后通过roi方法得到裁剪出来的区域

通过官方的例子数据,加载到ArcGIS中可以发现提取的shp是谁,这样的话看起来似乎直观多了。但是在提取的时候,想选择China的,结果并没有完全显示出来,然后在ArcGIS打开那个nc数据才知道原来覆盖范围没有包括整个中国区域,所以猜测一下:salem的掩膜,如果需要获取到完整区域的数据,前提是nc要覆盖齐全。

于是我用ArcGIS打开这个nc看看到底是什么样子的,如下图,这里我已经用上了NCL的一个颜色了,自己配的一个

果然,这个nc数据没有完全覆盖中国区域,因此salem的掩膜出来的结果可能就是猜想的那样了
既然如此,那么我就顺便用ArcGIS来掩膜提取一下青藏高原区域的数据试试。找到工具箱中空间分析下的按掩膜提取

得到结果,没记错的话,这个格点数据的空间分辨率是0.75°x0.75°的,所以看起来有些粗糙了

既然数据没有覆盖中国全部,按掩膜提取能提取出来吗?测试一下

############################
答案是:当然可以

这时候就有一个问题了,nc中一般存储有多个数据变量,还能一次性掩膜出来吗,除了使用cdo程序。arcpy能实现吗?批量提取之前也做过一次提取NDVI的,那个tif数据不像nc,可以遍历文件下的.tif文件使用arcpy实现,但是针对存储有多个数据变量的nc还可以吗?感兴趣的同学可以测试一下
好吧,今天的学习就暂时到这里