我想用 to_netcdf 保存的 xarray 数据集中有一些复杂数据(numpy dtype complex128)。我收到以下错误:
TypeError: illegal primitive data type, must be one of dict_keys(['S1', 'i1', 'u1', 'i2', 'u2', 'i4', 'u4', 'i8', 'u8', 'f4', 'f8']), got complex128
我知道我正在将数据类型传递给不受支持的底层 netCDF4。我还在使用 netcdf4 的复合数据类型上找到了https://unidata.github.io/netcdf4-python/ 。但不幸的是,我不知道如何将其应用于我的问题,因为我没有直接使用 netcdf4 库。
我可以在保留数据类型的同时将数据类型 complex128 的数据保存到 netcdf(使用xarray.DataArray.to_netcdf
)吗?
MWE:
import numpy as np
import xarray as xr
complex = [np.complex(1.0, 1.0), np.complex(2.0, 1.0), np.complex(3.0, 1.0), np.complex(4.0, 1.0)]
data = xr.DataArray(complex)
data.to_netcdf(r'test.nc')