Индексация механизма 2D XArray cfgrib

Я хочу извлечь данные из файлов 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

person Paul Bendevis    schedule 27.04.2020    source источник


Ответы (1)


Оказывается, ошибка связана с выполнением 2D-индексации с помощью 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

person Paul Bendevis    schedule 29.04.2020