使用xarray合并2010-2021年NetCDF文件后时间起点异常如何修复
问题原因
NetCDF格式的时间维度默认存储为相对于基准时间的数值偏移量,每个单文件的时间变量属性中会标注类似units: hours since 2010-01-01 00:00:00的基准时间规则。你遇到的问题是多文件合并时xarray未正确识别统一的时间基准,默认采用了1900-01-01作为偏移起点导致的。
解决方案
修改读取逻辑,强制开启时间自动解码,必要时手动校准时间即可,修改后代码如下:
import netCDF4 import numpy import xarray ds = xarray.open_mfdataset( 'e.*.nc', combine = 'by_coords', concat_dim="time", # 强制开启时间解码 decode_times=True, # 如果是非常规历法数据集(如360天、无闰年历法的气象数据)需添加该参数 use_cftime=True ) # 若自动解码后时间仍不符合预期,可手动重置时间,按需修改起始时间和频率即可 # 逐小时数据freq设为"H",日数据设为"D",月数据设为"M" # ds['time'] = xarray.date_range(start="2010-01-01 00:00:00", periods=len(ds.time), freq="H") # 导出前可先打印前5个时间节点验证正确性 # print(ds.time[:5]) ds.to_netcdf('eras_bir.nc')
内容的提问来源于stack exchange,提问作者Gzm_93
相关产品推荐
相关产品推荐

