编程语言
首页 > 编程语言> > 使用Python批量提取TRMM降水数据均值

使用Python批量提取TRMM降水数据均值

作者:互联网

今天给大家分享一个数据平均值的吧,好像从来没有分享过这个内容。

以问题为导向利用Python帮助我们解决在科研中遇到的问题。最近有同学在处理TRMM降水数据的时候,说是要提取每个月的均

值出来。数据格式是tif栅格,目的也是非常明确的:提取多个tif的降水栅格均值出来。

在这里插入图片描述

在这里插入图片描述

刚才看了一下TRMM的计划说是在2015年就退役了,我看了一下同学给我的数据,居然都到2019年了,这个我也不是很清楚,我

只知道把数据提取出来就行了。

在这里插入图片描述

Python学习交流Q群:906715085#####
首先,我先用ArcGIS打开数据看看大概是什么样子的。这里我打开了第一个时间和最近一个时间的数据,一看,哟呵,居然是全


球的,但是同学要提取的并不是全球的,而是中国某个区域的。So,我不得不对tif栅格数据进行掩膜提取。数据也看到了,是


1980-2019年的,月的,共计260多个文件,如果一个一个地去掩膜提取,那是很烦的,包括这个任务的主要目的:提取每一个tif


栅格的均值,一个一个地搞都是非常麻烦的。So,先mask出指定区域的tif出来,再对这些tif求均值提取。

 

在这里插入图片描述

关于批量掩膜提取的内容,可以看看之前的记录,这里就不仔细说了,这个是链接地址:

使用ArcPy进行矢量数据对栅格数据的批量裁剪

在这里插入图片描述

得到批量掩膜出来的tif就是指定区域的了,这就可以开始来提取均值了。当然,如果你想用ArcGIS一个一个地打开这260多个tif栅

格在属性里查看均值,然后复制出去也是没问题的,只是很麻烦

在这里插入图片描述

SO,用Python来执行这个任务,在colab中使用相关的脚本,因为有的包在我的电脑上老安装不上

掩膜提取的tif我已经上传到google drive了,因为我需要在colab写相关的脚本

在这里插入图片描述

具体的提取流程就是gdal来读取tif数据,转为numpy数组计算均值,so easy

。我先读取一个试试,如果可以的话,直接遍历所有tif来读取,一个的读取是没问题的。

在这里插入图片描述

既然一个的读取是没问题的,那就开始批量读取并计算并导出为DataFrame去。也看到了,我的目录是多层文件夹,so,用

os.walk处理

在这里插入图片描述

脚本如下,之前在提取全球的时候没什么问题,But,,当我提取指定研究区均值的时候输出结果就是-inf,我用了nanmean也没有

变化,负无穷,搜索了一下,原来的原因大概是提取出来之后边边就变成黑色的了,我画一个示意图就清除了

在这里插入图片描述

在这里插入图片描述

这些黑边框的影响导致计算出错,so,用了np.where去处理,因为是降水数据,就把小于0的全部赋值成0了,最后计算就没问题

了。where还可以用来进行逻辑判断,看看到底是那些数据是-inf的。

在这里插入图片描述

最后提取得到电子表格,月的数据,如果想计算四个季节的均值,那么一行命令也就搞定了,也是非常方便的。

在这里插入图片描述

在这里插入图片描述

最后
这一章到这里就结束了,今天分享的内容到这里就没有了,喜欢的小伙伴点赞收藏,有问题的小伙伴评论留言,看见都会回复噢。下一篇见。

在这里插入图片描述

标签:提取,掩膜,Python,数据,均值,tif,TRMM,读取
来源: https://www.cnblogs.com/123456feng/p/16129685.html