GPM数据批量下载教程
2022年11月12日更新
1. GPM数据产品简介
此部分摘录自 气象周刊 公众号
2014年2月27日,NASA的全球降水测量实验利用卫星观测可以提供比TRMM卫星数据空间分辨率更高,并且覆盖全球的降水观测资料。例如,GPM卫星上加上了一个新的ka波段的降水雷达以及一个高频微波仪,可以提高对小雨以及降雪的观测。除此以外,GPM的综合多卫星反演可以显著提高其时空分辨率、空间覆盖等。
GPM的数据产品主要分为三: Level-1, Level-2和Level-3。Level-1就是卫星上各观测仪器的基数据。
Level-1还分为Level-1A,Level-1B和Level-1C。Level-1A是指探测仪器直接接收的信号,例如雷达接收到的波能量。Level-1B是将Level-1A收集的信号转化成各类探测变量的单位,例如雷达反射率。Level-1C是针对微波仪的亮温观测,去除掉各个传感器以及多卫星降水反演算法之间的系统误差。Level-1中的基数据包含了各个观测仪器的原始分辨率,可以用来进行特定的算法计算以及其他用途。也就是说,只要有方法,想干什么干什么,但是很难。
Level-2中的数据是以Level-1的基数据为基础,在相同的分辨率和位置上导出的地球物理变量,例如ku波长的雷达反演的降水以及雷达与微波成像仪合成的降水等。Level-2的降水资料可以用来进行个例分析,地面降水验证以及模式验证等。大家可以赶紧开始对比验证啊!仿佛看到文章雨正在倾盆而下。
Level-3中的数据则是又在Level-2的基础上插值到固定时间、空间分辨率的格点上,比较完整并且具有较高的一致性。主要提供半小时降水、日降水以及月平均降水的格点资料。半小时降水利用多卫星降水反演获得,日降水是综合了微波成像仪以及多频率降水雷达,月平均降水则包含了以上所有。使用最广泛的数据是多卫星、多传感器以及多算法的GPM综合反演产品(IMERG),包括Early,Late和Final Run产品。这三者的区别在于发布时间。Early Run表示获得观测数据后6h发布,Late和Final Run分别在18小时以及4个月后发布。Early和Late Run的IMERG产品主要是几乎实时的观测,并且用气候站进行检验校准。Final Run则是利用全球降水气候中心的月平均站点资料进行误差订正。他们的空间分辨率是0.1°,时间分辨率是半小时,都比TRMM降水观测有大大的提高。高时空分辨率的降水观测资料对于降水时间以及业务预报都具有相当重大的意义。月平均资料则可以用来加深对全球降水观测不确定性的理解。
2 查找数据
可以在GES DISC查找下载数据:https://disc.gsfc.nasa.gov/datasets?keywords=GPM&page=1
现在GPM官网上线了许多数据。为了快速定位,我们可以使用分辨率进行筛选,快速定位数据。
选择需要的时间和空间分辨率数据集,点击Subset/Get Data
选择想要的时间范围、空间范围(西,南,东,北)、变量、输出文件的格式等,并点击右下角的Get Data
获取数据
在弹出的界面,点击Download links list
下载包含影像的 url 文件。
3. 下载
注意:
本文使用的是Python脚本,来批量下载文件。如果使用本文的下载方式,请先下载Python3.6以上的版本,并使用pip安装data_downloader
包:
pip install data_downloader
如果之前安装过此包,需要更新到最新版:
pip install --upgrade data-downloader
3.1. 授权
下载GPM数据需要NASA的账户与密码,如果没有请先在NASA官网注册一个。
注意:
GPM使用NASA账号需要授权, 请按照官方教程进行授权:https://disc.gsfc.nasa.gov/earthdata-login
3.1.1 通过 .netrc
文件授权
.netrc
文件可以保存网站的帐号密码信息,当程序下载时,会自动读取对应网站的帐号密码,无须用户反复输入。
.netrc
文件中的账号密码信息可以通过如下方式写入:
将下面代码中的your_username
与your_password
,改为自己在NASA注册的用户名与密码,并复制到Python编辑器中执行。
from data_downloader import downloader
netrc = downloader.Netrc()
netrc.add('urs.earthdata.nasa.gov','your_username','your_password')
执行后会在用户目录创建一个.netrc
文件,当下载需要帐号密码的时候,会读取此文件。
如果账号或密码输入错误,执行以下代码进行更新:
netrc.add('urs.earthdata.nasa.gov','your_username','your_password',overwrite=True)
3.1.2 *通过浏览器授权(通过 .netrc
文件授权现在已经可以正常工作,不建议使用此方法)
打开下载的包含所有url的文件,随便复制一条(从第三条开始,第一,二条是说明文档),粘贴在浏览器中,回车后输入用户名和密码进行登陆授权。在下载代码中将参数 authorize_from_browser
设置为 True
,程序即可加载浏览器中的cookies,得到网站授权,从而可以正常下载。
目前支持的浏览器有:Chrome,Firefox, Opera, Edge, Chromium。请使用此中的某一个浏览器进行登陆。
注意:
在浏览器登陆后,最好不要关闭浏览器。关闭后有可能清除浏览器cookies,导致无法授权。
3.2. 批量下载
创建一个Python文件,复制下面代码,并根据自己情况改变folder_out
与url_file
路径,执行即可批量下载。
- 可以通过改变
folder_out
与url_file
路径,来改变文件下载目录与包含url的文件路径- 本脚本会自动跳过已下载的文件,并且支持断点续传(仅全球范围,即下载方式1支持此功能)。如果下载中断,个别文件下载不完整,重新执行本脚本即可。如果脚本提示无法从网站获取到文件大小信息(opendap,下载方式2会有这种情况),则需要自行判断文件是否下载完整,并手动删除下载不完整的文件。
#!/usr/bin/env python3
"""
Created on Thu Feb 27 13:49:03 2020
@author: Chengyan Fan
"""
from data_downloader import downloader, parse_urls
####################################################################################################
# 在此修改输入输出文件路径
#########################
# 文件输出目录
folder_out = r'/media/fanchy/新加卷/dem_temp/test'
# 包含url的文件路径
url_file = r"/media/fanchy/新加卷/dem_temp/test/subset_GPM_3IMERGM_06_20200513_134318.txt"
####################################################################################################
urls = parse_urls.from_urls_file(url_file)
downloader.download_datas(urls, folder_out)
# 通过浏览器方法
# downloader.download_datas(urls, folder_out, authorize_from_browser=True)