2D XArray cfgrib 引擎索引

2D XArray cfgrib engine indexing

我想从 lat/long 的 window 内的 grib2 文件中提取数据。

def get_data(temp_filename):
    ds = xr.open_dataset(temp_filename, engine="cfgrib")
    ds = ds[{'latitude': ds.latitude > 1, 'longitude': ds.longitude > -100}]
    radar_values = ds.to_array()
    print(radar_values)

给予

IndexError: too many indices for array

原来这个错误与用xarray做二维索引有关

d = ds[{'latitude': ds.latitude > 1, 'longitude': ds.longitude > -100}]

应该使用 where() 方法完成

ds=ds.where(ds.latitude > 1)
ds=ds.where(ds.longitude > -100)

或者通过使用 numpy 提取底层数组并进行适当的索引。

http://xarray.pydata.org/en/stable/indexing.html