我有一个二维的 xarray DataArray。一个维度是频率,另一个是时间。创建 DataArray 时,我指定坐标。
data = np.memmap(fname, np.float32, mode="c")
dx = xr.DataArray(data, coords=[dt,freqs], dims=["Time", "Frequency"])
我遇到的问题是,如果我将时间坐标 (dt) 定义为 pandas date_range 或 timedelta_range
times = pd.date_range("2020-10-13", periods=data.shape[0], freq='81.92U')
或者
times = pd.timedelta_range(start="0 millisecond", periods=data.shape[0], freq='81.92U')
数据着色器抛出错误
TypeError: Cannot cast ufunc less input from dtype('<m8[ns]') to dtype('<m8') with casting rule 'same_kind'
跑完之后
import datasahder as ds
cvs = ds.Canvas(plot_width=1000, plot_height=300)
agg = cvs.raster(dx.T, interpolate='linear')
img = tf.Images(tf.shade(agg, cmap=gray, name="linear interpolation (default)"))
但是,我可以将时间坐标指定为一个np.arange
对象,它具有int
类型并且工作正常。但是后来我从数组中丢失了日期时间信息。
有没有解决的办法?