【发布时间】:2018-04-20 03:40:21
【问题描述】:
我在 xarray 数据集中有一些复杂数据(numpy dtype complex128),我想用 to_netcdf 保存。我收到以下错误:
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')
【问题讨论】: