Индексация движка 2D XArray cfgrib - PullRequest
0 голосов
/ 27 апреля 2020

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

1 Ответ

0 голосов
/ 29 апреля 2020

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

...