将nasa数据下载到xarray的类和函数
nasadap的Python项目详细描述
nasadap包包含一个类和相关的方法/函数,用于下载nasa卫星数据产品并将其转换为xarray数据集。它使用python包pydap访问nasa Hyraxopendap服务器。
目前,nasadap只能从gpm任务下载卫星降水数据。
降水产品的官方列表可以找到here。 通过nasadap提供的产品如下所述。
新用户必须向Earthdata注册一个帐户,才能获得访问任何nasa数据的用户名和密码。然后register“应用程序”一旦登录。这些“应用程序”是:nasa ges disc data archive、ges disc和pydap。有关常规数据访问的更多详细信息,请参见Eathdata wiki。
安装
nasadap可以通过pip或conda安装:
pip install nasadap
或:
conda install -c mullenkamp nasadap
任务和产品说明
热带降雨测量任务(trmm)
trmm的完整描述和文档可以在NASA TRMM site[1]上找到。 “这个数据集是TMPA(TRMM多卫星降水)算法的输出,在trmm区域提供降水量估计,该区域具有“trmm组合仪器”降水量估计的(几乎为零)偏差和高质量微波数据的密集采样,并使用微波校准红外估计进行填充。颗粒大小为3小时。”
update由于nasa已使用gpm算法处理trmm数据,这意味着gpm数据可以追溯到2000年,因此该数据集已被弃用。
[1] | Tropical Rainfall Measuring Mission (TRMM) (2011), TRMM (TMPA) Rainfall Estimate L3 3 hour 0.25 degree x 0.25 degree V7, Greenbelt, MD, Goddard Earth Sciences Data and Information Services Center (GES DISC), Accessed: 2018-12-28, 10.5067/TRMM/TMPA/3H/7 |
全球降水任务(gpm)
gpm的完整描述和文档可以在NASA GPM site[2]上找到。 “GPM多卫星综合反演(IMERG)是美国统一的算法,为美国GPM团队提供第一天多卫星降水产品。
使用2014版Goddard剖面算法(GPROF1044)计算由GPM星座组成的各种与降水相关的卫星无源微波(PMW)传感器的降水量估计值,然后进行网格化,并与GPM组合仪器产品进行校准,合并成每半小时10×10公里的区域。”
这个数据集有三个可下载的产品。 核心产品集的时间分辨率为30分钟,有三种不同的“运行”:早期(3imerghhe)、晚期(3imerghhl)和最终(3imerghh)。早的比实时晚了4个小时,晚的比实时晚了12个小时,晚的已经过雨量计校准,而且已经晚了几个月。可以在上面的链接中找到更详细的描述。 日产品已被弃用,因为最好下载更精细的时间分辨率产品,并根据需要进行聚合,因为仅使用日产品时可能会出现时区问题。
大多数人想要的数据集称为“沉淀”。
注:根据b-9下的{a13},nasa将使用gpm imerg v05算法重新处理trmm数据,直到2000年,以确保两个任务产品的一致性。一旦启动,就会整合到nasadap中。 update他们已经完成了!2000年的gpm数据已经集成到nasadap中。目前已经为3IMerghh产品进行了处理,并获得了新的版本号(6)。
[2] | George Huffman (2017), GPM IMERG Final Precipitation L3 Half Hourly 0.1 degree x 0.1 degree V05, Greenbelt, MD, Goddard Earth Sciences Data and Information Services Center (GES DISC), Accessed: 2018-12-28, 10.5067/GPM/IMERG/3B-HH/05 |
用法示例
目前,只有一个称为nasa的类提供数据访问。强烈建议使用缓存目录,因为nasa的hyrax服务器有点慢。
fromnasadapimportNasa,parse_nasa_catalog################################## Parametersusername=''# Need to change!password=''# Need to change!mission='gpm'product='3IMERGHH'version=6from_date='2019-03-28'to_date='2019-03-29'dataset_type='precipitationCal'min_lat=-49max_lat=-33min_lon=165max_lon=180cache_dir='nasa/cache/nz'################################## Examplesmin_max1=parse_nasa_catalog(mission,product,version,min_max=True)# Will give you the min and max available dates for productsge1=Nasa(username,password,mission,cache_dir)products=ge1.get_products()datasets=ge1.get_dataset_types(products[0])ds1=ge1.get_data(product,version,dataset_type,from_date,to_date,min_lat,max_lat,min_lon,max_lon)ge1.close()
一旦获得了缓存的数据,您可能希望按年或月聚合netcdf文件,以使其在nasadap之外更易于访问。agg模块pr下的time_combine函数提供了一种将所有netcdf文件聚合在一起的方法,并将在新数据添加到nasa服务器时更新这些文件。它还将把时间移到适当的时区(因为nasa的数据是utc+00)。
fromnasadapimportagg################################## Parameterscache_dir='nasa/cache/nz'save_dir='nasa/precip'username=''# Need to change!password=''# Need to change!mission='gpm'freq='M'product='3IMERGHH'version=6datasets=['precipitationCal']min_lat=-49max_lat=-33min_lon=165max_lon=180dl_sim_count=50tz_hour_gmt=12agg.time_combine(mission,product,version,datasets,save_dir,username,password,cache_dir,tz_hour_gmt,freq,min_lat,max_lat,min_lon,max_lon,dl_sim_count)