news 2026/4/18 12:45:46

探索Python融合地学:一文教会你下载ERA5-Land数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
探索Python融合地学:一文教会你下载ERA5-Land数据

下载ERA5-Land数据的准备工作

注册并获取CDS API密钥:访问Copernicus Climate Data Store (CDS) 官网(https://cds.climate.copernicus.eu/),完成账号注册。在用户页面找到API密钥,保存为$HOME/.cdsapirc文件,内容格式如下:

url: https://cds.climate.copernicus.eu/api/v2 key: UID:API-key

安装必要Python库:

pip install cdsapi xarray numpy

通过CDS API下载数据

使用cdsapi库直接请求数据,示例代码下载2020年1月的日均2米气温数据:

import cdsapi c = cdsapi.Client() c.retrieve( 'reanalysis-era5-land', { 'variable': '2m_temperature', 'year': '2020', 'month': '01', 'day': list(range(1, 32)), 'time': ['00:00', '12:00'], 'format': 'netcdf', }, 'era5_land_temp.nc' )

https://www.zhihu.com/zvideo/1994564245371756984/
https://www.zhihu.com/zvideo/1994564243933128684/
https://www.zhihu.com/zvideo/1994564244046378913/
https://www.zhihu.com/zvideo/1994564243635327027/
https://www.zhihu.com/zvideo/1994564242402191321/
https://www.zhihu.com/zvideo/1994564241835988775/
https://www.zhihu.com/zvideo/1994564240472831811/
https://www.zhihu.com/zvideo/1994564239864644278/
https://www.zhihu.com/zvideo/1994564238644115391/
https://www.zhihu.com/zvideo/1994564237973021265/
https://www.zhihu.com/zvideo/1994564237306139680/
https://www.zhihu.com/zvideo/1994564236173668797/
https://www.zhihu.com/zvideo/1994564236026872280/
https://www.zhihu.com/zvideo/1994564235682935847/
https://www.zhihu.com/zvideo/1994564235234129467/
https://www.zhihu.com/zvideo/1994564235129287151/
https://www.zhihu.com/zvideo/1994564234152002275/

批量下载多时间范围数据

对于跨年/月的大批量下载,建议分时段请求以避免超时:

years = ['2019', '2020'] months = [f'{m:02d}' for m in range(1,13)] for year in years: for month in months: c.retrieve( 'reanalysis-era5-land', { 'variable': 'soil_temperature_level_1', 'year': year, 'month': month, 'time': '00:00', 'format': 'grib' }, f'era5_land_soil_{year}{month}.grib' )

数据处理与可视化

使用xarray处理下载的NetCDF文件:

import xarray as xr ds = xr.open_dataset('era5_land_temp.nc') # 转换为摄氏温度并计算月平均 ds['t2m'] = ds['t2m'] - 273.15 monthly_mean = ds.groupby('time.month').mean()

绘制空间分布图:

import matplotlib.pyplot as plt monthly_mean['t2m'].isel(month=0).plot() plt.title('January Average Temperature') plt.savefig('temp_map.png')

注意事项

ERA5-Land数据延迟约3个月,实时数据需选择ERA5T临时产品。不同变量可能存储在独立的数据集(如reanalysis-era5-land-monthly-means提供月度统计量)。GRIB格式文件建议用cfgrib引擎读取:

ds = xr.open_dataset('era5_land.grib', engine='cfgrib')
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:55:58

项目应用中c++ spidev0.0 read值为255的解决方案

当/dev/spidev0.0读出全是255?一文搞懂SPI通信中的“假高电平”陷阱在做嵌入式Linux项目时,你有没有遇到过这种情况:明明代码写得清清楚楚,打开/dev/spidev0.0、调用read()函数去拿传感器数据,结果返回的每一个字节都是…

作者头像 李华
网站建设 2026/4/17 22:16:17

了解Java 数据结构【1】

Java 提供了丰富的数据结构来处理和组织数据。 Java 的 java.util 包中提供了许多这些数据结构的实现,可以根据需要选择合适的类。 以下是一些常见的 Java 数据结构: 数组(Arrays) 数组(Arrays)是一种基…

作者头像 李华
网站建设 2026/4/18 10:04:40

基于实际项目的PCB布局布线思路:初级应用示范

从一块电机驱动板看懂PCB布局的底层逻辑最近带一个新人做项目,他画完第一版直流电机驱动板后兴奋地拿给我看:“功能都连上了!”可一上电问题就来了:MCU时不时复位、RS485通信在电机启动时直接中断、编码器计数跳变严重……最后还是…

作者头像 李华
网站建设 2026/4/18 8:51:10

Makefile中打印变量

在Makefile中打印变量有多种方法,以下是常用的几种方式:1. 使用 $(info) 函数makefile # 示例1:直接打印 VAR hello world $(info VAR $(VAR))# 示例2:带说明的打印 $(info [DEBUG] VAR $(VAR))# 示例3:在规则外部打…

作者头像 李华
网站建设 2026/4/17 12:55:43

Figma中文界面终极解决方案:5分钟完成专业设计工具全面汉化

Figma中文界面终极解决方案:5分钟完成专业设计工具全面汉化 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma英文操作界面而困扰?想要快速掌握这款国际…

作者头像 李华