Доступ к значению переменной netCDF с помощью xarray

hndl_nc['name_variable'][:, :, :, var]

Я открываю файл netCDF с помощью xarray и хочу получить доступ к слою, как указано выше. Форма файла netCDF: (25 * 360 * 720 * 5),

Есть ли способ переписать hndl_nc['name_variable'][:, :, :, var] так что мне не нужно указывать :, :, :, var? Я хочу сделать доступ к переменной независимым от структуры netCDF, если это возможно.

Исходя из этого ответа, я также хочу, чтобы soln работал в случае hndl_nc['name_variable'][:, :, :, var]

2 ответа

Решение

Учитывая, что вы используете xarray ( xarray), я предполагаю, что вы делаете что-то вроде следующего:

import xarray as xr
ds = xr.open_dataset(path_file)

У вас есть несколько вариантов в соответствии с документацией ( http://xarray.pydata.org/en/stable/indexing.html):

  1. Поиск по имени, Поиск по индексу по целому числу
  2. Поиск по имени, Поиск по индексу по метке

Поиск по имени, Поиск по индексу по целому числу

Индексировать с помощью целого числа вы можете

ds['new_var'] = ds.isel(var=0)

или же

ds['new_var'] = ds[dict(var=0)]

Я предполагаю, что одно из измерений называется var, Ради простоты я просто выбрал 1-й элемент в varтак что подстраивайтесь под свои нужды.
Вы можете выбрать значение или выбрать фрагмент для var, Пожалуйста, смотрите больше в документации, которую я связал выше.

Поиск по имени, Поиск по индексу по метке
Чтобы заглянуть внутрь одного из измерений с помощью метки, можно сделать:

ds['new_var'] = ds.sel(var='IA')

или же

ds['new_var'] = ds.loc[dict(var='IA')]

Я не уверен, что это подходит для вашего случая или это то, что вы ищете, так как я не очень хорошо понял ваш случай.

Многоточие ... должно сработать:

hndl_nc['name_variable'][..., var]
Другие вопросы по тегам