gpt4 book ai didi

python - 如何找到与特定选择的 xarray 等效的索引?

转载 作者:行者123 更新时间:2023-12-04 12:36:15 24 4
gpt4 key购买 nike

我有一个 xarray 数据集。

<xarray.Dataset>
Dimensions: (lat: 92, lon: 172, time: 183)
Coordinates:
* lat (lat) float32 4.125001 4.375 4.625 ... 26.624994 26.874996
* lon (lon) float32 nan nan nan ... 24.374996 24.624998 24.875
* time (time) datetime64[ns] 2003-09-01 2003-09-02 ... 2004-03-01
Data variables:
swnet (time, lat, lon) float32 dask.array<shape=(183, 92, 172), chunksize=(1, 92, 172)>

找到最近的经纬度
df.sel(time='2003-09-01', lon=6.374997, lat=16.375006, method='nearest')
需要找到

指数 这个特定的位置。基本上, row-column在网格中。最简单的方法是什么?

试过
nearestlat=df.sel(time='2003-09-01', lon=6.374997, lat=16.375006, method='nearest')['lat'].values 
nearestlon=df.sel(time='2003-09-01', lon=6.374997, lat=16.375006, method='nearest')['lon'].values
rowlat=np.where(df['lat'].values==nearestlat)[0][0]
collon=np.where(df['lon'].values==nearestlon)[0][0]

但我不确定这是否是正确的方法。我怎样才能“正确”地做到这一点?

最佳答案

我同意找到与 .sel 相关联的索引操作比人们想象的要复杂!
此代码有效:

import xarray as xr
ds = xr.tutorial.open_dataset('air_temperature')
ilon = list(ds.lon.values).index(ds.sel(lon=250.0, method='nearest').lon)
ilat = list(ds.lat.values).index(ds.sel(lat=45.0, method='nearest').lat)
print(' lon index=',ilon,'\n','lat index=', ilat)
生产:
 lon index= 20 
lat index= 12
以防万一有人想知道为什么要这样做,我们使用它来调查图像的时间堆栈,我们有兴趣立即选择图像 指定日期的图像:
import xarray as xr
ds = xr.tutorial.open_dataset('air_temperature')
ilon = list(ds.time.values).index(ds.sel(time='2013-06-01 00:00:00', method='nearest').time)
print(idx)
产生
848

关于python - 如何找到与特定选择的 xarray 等效的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61457310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com