【发布时间】:2021-05-22 18:21:12
【问题描述】:
我有一个数据数组,其中包含纬度和经度 (y,x) 的多维坐标。 Xarray 原生地处理这些数据非常棒,它允许我做类似da.max() 的事情并接收一个值。但是,似乎找到与该最大值相关的坐标可能不是那么简单(或者我可能会遗漏一些东西)。
这是我的数据数组的结构:
xarray.DataArray 'Power' (y:1500, x:2500)
array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan]], dtype=float32)
Coordinates:
lon
(y, x)
float64
-113.1 -113.0 ... -52.98 -52.95
lat
(y, x)
float64
15.12 15.12 15.12 ... 51.36 51.36
现在,执行da.max() 之类的操作会返回值array(3335.06591797)。尝试da.argmax() 也有效并返回array(2365177)。我认为有一种方法可以利用此值来查找数组中的位置,即坐标,但我不知道该怎么做。
第三种选择是尝试使用da.idxmax(),但这需要数据数组具有共同的维度和坐标,而我在这种情况下没有。
也许也有某种 numpy 方法可以做到这一点,但我不清楚这样做的过程。关于在这里做什么的任何想法?使用da.argmax() 似乎是可行的方法,但我被卡住了。
【问题讨论】:
标签: arrays python-3.x python-xarray