如果您想在现有的time维度上生成新的datetime64[ns]格式,而不是添加一个名为dim_0的维度,您可以使用以下代码:

import xarray as xr
import pandas as pd

# 打开数据集
data = xr.open_dataset('/home/yaodianwen/tp_era5_3hrsum_mekong_mm_defined_invalid_pr_new2.nc')

# 获取时间的起始值和时间步长
start_time = pd.to_datetime('1970-01-01')
time_step = pd.to_timedelta('3H')

# 生成新的时间坐标
times = start_time + data['time'].values * time_step

# 更新数据集的时间坐标
data['time'] = xr.DataArray(times, dims='time')

# 打印更新后的时间坐标
print(data['time'])

在上述代码中,我们首先导入了必要的库。然后,我们使用pd.to_datetime()函数将起始时间和时间步长转换为datetime64[ns]格式。接下来,我们根据起始时间和时间步长计算出新的时间坐标times。最后,我们使用xr.DataArray()将新的时间坐标赋值给数据集的time维度。

请注意,这将使用起始时间和时间步长来计算新的时间坐标,而不是直接从现有的time维度中提取。这样做是因为根据您提供的信息,新的时间坐标与原始的int64类型的时间坐标存在差异。

希望这次能满足您的要求。如果还有其他问题,请随时提问。

如何直接在Xarray数据集的`time`维度上生成新的`datetime64[ns]`时间坐标

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

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