我想用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)]