使用 Xarray 将 ERA5 数据从 0.25° 降采样到 0.5°

本文将介绍如何使用 Xarray 库将 ERA5 数据集从 0.25° 的经纬度分辨率降采样到 0.5°。

步骤:

  1. 导入库:
import xarray as xr
import numpy as np
  1. 读取数据:
path = '/home/yaodianwen/tp_era5_3hrsum_mekong_mm_defined_invalid_pr.nc'
data = xr.open_dataset(path)
  1. 获取经纬度变量名:
lon_var, lat_var = list(data.coords.keys())[:2]
  1. 确定新的经纬度范围和间隔:
new_lon = np.arange(data[lon_var].min().data, data[lon_var].max().data, 0.5)
new_lat = np.arange(data[lat_var].max().data, data[lat_var].min().data, -0.5)
  1. 插值:
data_resampled = data.interp(coords={lon_var: new_lon, lat_var: new_lat}, method='linear')
  1. 保存结果:
new_path = '/home/yaodianwen/tp_era5_3hrsum_mekong_mm_defined_invalid_pr_interp.nc'
data_resampled.to_netcdf(new_path)

代码示例:

import xarray as xr
import numpy as np

# 读取数据
path = '/home/yaodianwen/tp_era5_3hrsum_mekong_mm_defined_invalid_pr.nc'
data = xr.open_dataset(path)

# 获取经纬度变量名
lon_var, lat_var = list(data.coords.keys())[:2]

# 确定新的经纬度范围和间隔
new_lon = np.arange(data[lon_var].min().data, data[lon_var].max().data, 0.5)
new_lat = np.arange(data[lat_var].max().data, data[lat_var].min().data, -0.5)

# 插值
data_resampled = data.interp(coords={lon_var: new_lon, lat_var: new_lat}, method='linear')

# 保存结果
new_path = '/home/yaodianwen/tp_era5_3hrsum_mekong_mm_defined_invalid_pr_interp.nc'
data_resampled.to_netcdf(new_path)

注意:

  • 请确保您已安装 xarraynumpy 库。
  • 确保文件路径和文件名正确。
  • 此代码使用线性插值法进行重采样。您可以根据需要更改插值方法。
  • 重采样后的数据将以 0.5° 的经纬度分辨率保存到新的 NetCDF 文件中。

原文地址: https://www.cveoy.top/t/topic/bpWk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录