ERA5 hourly data on pressure levels数据处理/Python(三)

一、需求分析

ERA5的pressure levels数据提供小时和月两种尺度,在实际应用中会需要日尺度的数据,需要我们自行通过小时数据计算。

二、数据准备

ERA5数据下载地址:

Copernicus Climate Data Store | Copernicus Climate Data Store

下载2022年逐月的多层多要素的小时数据,依次存为202201.nc...

备注:

1.每次最多可以下载60000个数据,所以分月下载。

2.下载时注意每个月是否下全所有天数,如选择1月31天,到2月自动调整为28/29天,再选3月就只选择28/29天,需要手动添加剩下的天数。

三、程序设计

最初设想的是逐层逐要素计算日平均,套嵌了多个循环,最中参考AI的结果,直接一行代码搞定。再把每个月的日均值append,输出即可。

# -*- coding: utf-8 -*-
"""
Created on Thu Aug  1 09:08:50 2024

@author: DR
"""

import xarray as xr
import os

# 文件前缀
data_folder = r'D:\test\ERA5_hour'  # 替换为你的数据目录
months = range(1, 13)  # 月份范围

# 存储所有月份的逐日均值
daily_means_all_months = []

# 遍历每个月的文件
for month in months:
    file_name = os.path.join(data_folder, f'2022{str(month).zfill(2)}.nc')
    ds = xr.open_dataset(file_name)

    # 计算逐日均值
    daily_means = ds.resample(time='D').mean()

    # 添加到列表中
    daily_means_all_months.append(daily_means)

# 合并所有月份的逐日均值数据
ds_daily_combined = xr.concat(daily_means_all_months, dim='time')

# 输出合并后的NC文件,保留原始的经纬度和层级信息
output_file_name = '2022_daily_mean.nc'    
ds_daily_combined.to_netcdf(os.path.join(data_folder, output_file_name))

四、运行结果

我这里就是自3月起只下载了28天的数据,所以最终只有339天的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值