У меня есть сложные данные (numpy dtype complex128) в наборе данных xarray, которые я хочу сохранить с помощью 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, который не поддерживается. Я также нашел https://unidata.github.io/netcdf4-python/ на составном типы данных с помощью netcdf4. Но, к сожалению, я не вижу, как я могу применить это к своей проблеме, так как я не работаю напрямую с библиотекой 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')