小编Rya*_*ery的帖子

如何沿xarray.DataArray的时间维度对每个图像使用带有numpy.digitize的apply_ufunc?

为了清楚起见,我已经基本上重新表述了我之前的问题。根据 Ryan 在单独频道上的建议, numpy.digitize 看起来是实现我目标的正确工具。

我有一个形状为 x、y 和时间的 xarray.DataArray。我试图弄清楚应该为apply_ufunc函数的“input_core_dims”和“output_core_dims”参数提供哪些值,以便应用于numpy.digitize时间序列中的每个图像。

直观地说,我希望输出维度为 ['time', 'x', 'y']。我认为输入核心维度应该是xy因为我想numpy.digitize沿着时间维度广播函数。然而这行不通。通过将 numpy.digitize 应用于我的时间序列中的第一个 numpy 数组,我得到了正确的结果:

[84]

blues
<xarray.DataArray 'reflectance' (time: 44, y: 1082, x: 1084)>
dask.array<shape=(44, 1082, 1084), dtype=uint16, chunksize=(44, 1082, 1084)>
Coordinates:
    band     int64 1
  * y        (y) float64 9.705e+05 9.705e+05 9.705e+05 ... 9.673e+05 9.672e+05
  * x        (x) float64 4.889e+05 4.889e+05 4.889e+05 ... 4.922e+05 4.922e+05
  * time     (time) datetime64[ns] 2018-10-12 2018-10-16 ... 2019-05-26
Attributes:
    transform:   (3.0, 0.0, …
Run Code Online (Sandbox Code Playgroud)

time-series image-processing python-xarray

7
推荐指数
1
解决办法
833
查看次数