如何替换xarray.Variable中的time维度值为新时间序列
替换xarray变量time维度的实现方法
首先注意xarray.Variable本身仅存储数据值、维度名、属性信息,不绑定维度坐标,你需要根据使用场景选择对应方法:
场景1:x为独立的xarray.Variable对象
你需要先将其转为xarray.DataArray,再绑定新的时间坐标:
import xarray as xr import pandas as pd # 建议先将object类型的时间索引转为datetime格式,方便后续时间筛选、插值等专属操作 newtime = pd.to_datetime(newtime) # 构造DataArray并指定坐标 x_with_newtime = xr.DataArray( data=x, dims=["time", "depth_t"], coords={"time": newtime} )
提示:如果你不需要绑定坐标仅用纯Variable结构,无需做任何修改,因为Variable本身不存储维度坐标信息,坐标仅在DataArray/Dataset层维护。
场景2:x是某xarray.Dataset中的变量(假设所属Dataset名为ds)
直接对Dataset的time坐标赋值即可,变量x会自动关联新的time坐标:
import pandas as pd ds["time"] = pd.to_datetime(newtime)
注意:你提供的newtime长度为8256,和原time维度长度完全匹配,无需做维度对齐处理,赋值不会报错。
内容的提问来源于stack exchange,提问作者user17352233
相关产品推荐
相关产品推荐

