将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

核心依赖项是xarraypydaprequests

任务和产品说明

热带降雨测量任务(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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java通过Spring MVC web应用程序向客户端发送文本文件   java是否可以在运行时动态实例化DAO类?   调用VB。来自Java的net函数   java在Android中通过单击打开特定文件夹   java如何使用maven pom。xml标识非标准项目结构中的testng测试用例?   java为什么FOP在大文件上崩溃?   Architecture python+flask和spring boot+java   java Kafka工具根本没有启动Ubuntu 19.10   如何使用Eclipse运行Java USB API for Windows   java如何在Eclipse中查看J2EE预览服务器/容器的日志/控制台?   网页抓取是否可以使用Java crawler crawler4j暂停和恢复抓取?   java当我第二次按下按钮时,应用程序停止工作   带有偏移量和限制的java SQLite分页问题   java如何在OSX mavericks中将端口80转发到8080   java从泛型方法调用非泛型方法   java My代码未按预期工作。十进制输出不是它应该的样子   节点。java中的js加密(jasypt)和nodejs中的解密   java乘法表不工作数组索引超出范围   java将JDBC与Firebirdsql连接起来