使用xr.从哪里获取索引:(lat,lon)



我想用xr。从哪里获取索引(lat,lon),其中包含这个xarray数据集的y<1:

import xarray as xr
y = xr.DataArray(
0.1 * np.arange(12).reshape(3, 4),
dims=["lat", "lon"],
coords={"lat": np.arange(3), "lon": 10 + np.arange(4)},
name="sst",
)

当我尝试

xr.where(y<1,y.lat,y.lon)

输出是:

array([[ 0,  0,  0,  0],
[ 1,  1,  1,  1],
[ 2,  2, 12, 13]])

那对我来说很难解释。

有什么建议吗?

多谢

在Xarray中有许多方法可以做到这一点。假设您想要一个(lat, lon)对的列表,这里有一个简单的解决方案,它使用Xarray和Numpy的组合:

lat_i, lon_i = np.nonzero(xr.where(y<1, 1, 0).data)
lats = y.lat.isel(lat=lat_i).data
lons = y.lon.isel(lon=lon_i).data
pairs = list(zip(lats, lons))
pairs

输出:

[(0, 10),
(0, 11),
(0, 12),
(0, 13),
(1, 10),
(1, 11),
(1, 12),
(1, 13),
(2, 10),
(2, 11)]

最新更新