社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何使用Python批量下载ERA5-LAND逐日数据

走天涯徐小洋地理数据科学 • 1 周前 • 18 次点击  

目标:批量下载ERA5-LAND逐日气象数据

获取ERA5-LAND数据权限

先在Climate Data Store注册一个账号,登录下面的网址:

  • https://cds.climate.copernicus.eu/datasets/derived-era5-land-daily-statistics?tab=download

注册登录后,先选好你要下载的数据参数,然后滚动网页到下面,有个Terms of use,一定要把这个点上同意!

非常重要,一定要做!不然下载不了

在右上角点击Your Profile,进入Your Profile界面,获取API Token:

先注册,获取API TOKEN
点击Your Profile,复制API Token

在下图的位置,创建一个txt文件,把后面的代码输进去之后,改名,注意,不要名字,只要后缀名,就叫这个.cdsapirc,创建一个权限文件:

在C盘,用户,你的用户名,我的是超级管理员账户,就叫Administrator

把下面代码输入到.cdsapirc文件里面,用文本编辑器编辑即可,保存,注意要换成你自己在上面获取的API TOKEN

url: https://cds.climate.copernicus.eu/api
key: 你的API TOKEN

Python批量下载数据

安装CDSAPI

使用pip安装cdsapi,如果pip直接按不行,可以看参考文献1,里面有更多安装介绍

pip install cdsapi
在这里,安装cdsapi

批量下载

环境安好后,就可以批量下载了,打开Spyder或者Juptyer Notebook,把下面的代码复制进去,改一下参数,即可下载。

在Spyder里面把下面的代码复制进去,按自己情况修改一下参数,运行即可
import cdsapi

# 指定要下载的数据集
dataset = "derived-era5-land-daily-statistics"

# 初始化 CDS API client
client = cdsapi.Client()

# 指定下载位置,可以自己改
output_dir = 'I:/ERA5-LAND/'

# 年份循环,从1995到2024,左闭右开区间
for year in range(1995, 2025):  # 从1995到2024,左闭右开区间,可以自行调整
    # 月份循环,从01到12
    for month in range(1, 13):  # month from 1 to 12
        # Format the month to two digits (e.g., 01, 02, ..., 12)
        month_str = f'{month:02d}'

        request = {
            "daily_statistic""daily_mean",  # 每日均值
            "time_zone""utc+00:00",         # 格林尼治时间
            "variable""2m_temperature",     # 2m temperature 下载参数,可以自己按需要修改
            "year": [str(year)],              # 年份
            "month": [month_str],             # 月份,两位数组成
            "day": ["01"],                    # 每月的1号,在这可以自己改日子
            "format""netcdf",               # 数据格式
        }

        # Specify the output filename
        output_file = output_dir + f'era5_land_temperature_{year}_{month_str}_01.nc'

        # Make the request to the CDS API and download the file
        client.retrieve(dataset, request, output_file)

        print(f"下载已完成 {year}-{month_str}. 数据保存到 {output_file}")

参考文献

  1. https://confluence.ecmwf.int/display/CKB/How+to+install+and+use+CDS+API+on+Windows

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/180215
 
18 次点击