替换 xarray (Python) 中的数据集坐标



>我有一个以NetCDF4格式存储的数据集,该数据集由具有3个维度的Intensity值组成:LoopDelayWavelength。我命名的坐标与尺寸相同(我不知道它是好是坏......

我在 Python 中使用 xarray(以前称为 xray)来加载数据集:

import xarray as xr
ds = xr.open_dataset('test_data.netcdf4')

现在我想在跟踪原始数据的同时操作数据。例如,我会:

  1. Delay坐标应用偏移量,并保持原始Delay数据数组不变。这似乎是通过以下方式完成的:

    ds_ = ds.assign_coords(Delay_corr=ds_.Delay.copy(deep=True) + 25)

  2. 将数据集中所有相关数据数组的坐标Delay替换为Delay_corr。但是,我不知道该怎么做,并且在文档中没有找到任何内容。

有人知道如何执行项目#2吗?

要下载包含测试数据的 NetCDF4 文件,请执行以下操作:http://1drv.ms/1QHQTRy

您要查找的方法xr.swap_dims()

ds.coords['Delay_corr'] = ds.Delay + 25  # could also use assign_coords
ds2 = ds.swap_dims({'Delay': 'Delay_corr'})

有关完整示例,请参阅 xarray 文档的这一部分。

我认为它比这简单得多。

如果不想更改现有数据,请创建副本。 请注意,更改ds不会更改 netcdf4 文件,但假设您仍然不想更改ds

ds_ = ds.copy(deep=True)

然后只需将Delay坐标设置为旧坐标的修改版本

ds_.coords['Delay'] = ds_['Delay'] + 25

最新更新