>我有一个以NetCDF4格式存储的数据集,该数据集由具有3个维度的Intensity
值组成:Loop
,Delay
和Wavelength
。我命名的坐标与尺寸相同(我不知道它是好是坏......
我在 Python 中使用 xarray(以前称为 xray)来加载数据集:
import xarray as xr
ds = xr.open_dataset('test_data.netcdf4')
现在我想在跟踪原始数据的同时操作数据。例如,我会:
对
Delay
坐标应用偏移量,并保持原始Delay
数据数组不变。这似乎是通过以下方式完成的:ds_ = ds.assign_coords(Delay_corr=ds_.Delay.copy(deep=True) + 25)
将数据集中所有相关数据数组的坐标
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