近日在搞数据的时候发现ERA5 Land新更新的数据中有一个‘expver’的变量,导致数据并不连续。官方解释如下:
ERA5 每小时和每月数据延迟 3 个月提供。这意味着一个月后,另一个月的 ERA5 数据将写入数据集。
ERA5T(近实时)初步数据用于填补ERA5数据结束与当前日期前5天之间的空白。当新的 ERA5 数据可用时,其中最早的月份每月都会被覆盖。
例如,假设我们的当前日期为 2020 年 2 月 15 日:
- ERA5 数据目前为 1/1/1979 - 30/11/2019(瞬时变量)和 1/1/1979 - 1/12/2019(00-06 UTC,累积变量)
- ERA5T 数据(延迟 5 天)为 2019 年 1 月 12 日至 2020 年 10 月 2 日(瞬时变量)和 2019 年 1 月 12 日(07-23 UTC,累积变量)- 2020 年 10 月 2 日
对于返回 ERA5 和 ERA5T 混合数据的请求(例如当月 1 日的数据),瞬时变量(例如温度)来自 ERA5T(其“实验版本”为 5),而累积变量(通量、降水)来自具有以下结构的两个数据集:
- 00-06 UTC 从 ERA5 开始的每月 1 天(expver 1)
- 07-23 UTC 每月 1 天(以及从现在起最多 5 天的以下日期)来自 ERA5T(expver 5)
当这些数据转换为 netCDF 时,将创建一个称为 expver 的新维度,其中包含 1 和 5。此外,使用覆盖整个请求期间的单个时间坐标。
评论区Jian Tang提供了一个解决思路:
import xarray as xr ERA5 = xr.open_mfdataset('era5.tp.20200801.nc',combine='by_coords') ERA5_combine =ERA5.sel(expver=1).combine_first(ERA5.sel(expver=5)) ERA5_combine.load() ERA5_combine.to_netcdf("era5.tp.20200801.copy.nc")
from https://unseen-open.readthedocs.io/_/downloads/en/latest/pdf/
需要用到dask包,解决方法:
运行
pip install tornado==4.5.1 distributed==1.21 dask-ml[complete]
from 无法为Dask安装tlz模块Python - 问答 - Python中文网 (cnpython.com)
关于使用yaml包时报错 TypeError: load() missing 1 required positional argument: ‘Loader‘:
安装指定版本的yaml包
pip install pyyaml==5.1
from TypeError: load() missing 1 required positional argument: ‘Loader‘?_pan_mlpan的博客-CSDN博客
标签:Land,变量,expver,ERA5,ERA5T,combine,数据 From: https://www.cnblogs.com/lawfbcn/p/17775188.html