社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

使用Python和ArcGIS掩膜提取NETCDF数据

happy科研 • 3 年前 • 936 次点击  

一直想做一下掩膜提取的事情(根据一个不规则的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还可以吗?感兴趣的同学可以测试一下


好吧,今天的学习就暂时到这里



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119825
 
936 次点击