欢迎光临散文网 会员登陆 & 注册

科研笔记——利用Python批量下载GLDAS数据

2023-03-01 14:19 作者:herbking  | 我要投稿

记录一下此次下载GLDAS的过程:

首先进入NASA网站,以GLDAS NOAH 2.1为例(https://disc.gsfc.nasa.gov/datasets/GLDAS_NOAH10_M_2.1/summary?keywords=GLDAS_NOAH10_M_2.1)。选择Subset/Get Data,根据出来的小窗口选择你要的variable,然后会出来一个Download Link List,直接下载会获得一个txt文档(我这里是subset_GLDAS_NOAH10_M_2.1_20230228_041941_.txt)。

下载链接列表

在编写Python代码之前,需要创建一个密匙文档(.netrc)。可以按照官网的指导进行,这里需要注意的是machine urs.earthdata.nasa.gov login <uid> password <password>,填写账号和密码时没有<>符号,另外,次密匙文档需要放在C:\Users\user这个文件夹里(以Windows为例)。

创建密匙文档

之后就可以Python 步骤了,如果没有Requests库,要先安装一下。安装之后就可以编写程序了,程序如下:

import re

import requests

GLDAS_urls_txt = 'H:/GLDAS/NOAH/subset_GLDAS_NOAH10_M_2.1_20230228_041941_.txt'#这里注意把第一行的说明文件下降链接删了,我这里是保存在H盘,这里可以任意选择

with open(GLDAS_urls_txt, 'r', encoding='utf-8') as infile:# 打开网址文本文档

    urls=infile.readlines()

    n_urls = len(urls)

for i, url in enumerate(urls):

    URL1=urls[i]

    print(URL1)

    FILENAME = re.findall(r'(?<=&LABEL=)\S{38}', URL1)#数字代表文件名的字符个数,选取下载网址lable后38位字符,例如第一个为GLDAS_NOAH10_M.A200001.021.nc4.SUB.nc4

    print(FILENAME)

    outpath = 'H:/GLDAS/NOAH/'+FILENAME[0]

    result = requests.get(URL1)

    try:

        result.raise_for_status()

        f = open(outpath, 'wb')

        f.write(result.content)

        f.close()

        print('contents of URL written to ' + FILENAME[0])

    except:

        print('requests.get() returned an error code ' + str(result.status_code)

把以上程序保存为py文件,然后直接运行,就可以下载文件了。

下载的数据


科研笔记——利用Python批量下载GLDAS数据的评论 (共 条)

分享到微博请遵守国家法律