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

Substitute dataset coordinates in 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

我觉得比那简单多了。

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

ds_ = ds.copy(deep=True)

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

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

您要找的方法是xr.swap_dims()方法:

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

有关完整示例,请参阅 xarray 文档的 this section