У меня есть несколько массивов с dims 'time', 'lat', 'lon'
и некоторые только с 'lat', 'lon'
. Мне часто приходится делать это для того, чтобы замаскировать зависящие от времени данные с 2d (Lat-долготу) маска:boolean indexing in xarray
x.data[:, mask.data] = np.nan
Конечно, расчеты вещают, как ожидалось. Если y
является 2d данных Lat-долгота, его значения передаются на все временные координаты х:
z = x + y
Но индексация не транслирует, как я ожидал. Я хотел бы быть в состоянии сделать это, но он поднимает ValueError: Буфер имеет неправильное число измерений:
x[mask] = np.nan
Наконец, кажется, что xr.where
делает Broadcast значения маски по координатам времени как и ожидалось, но вы не можете устанавливать значения таким образом.
x_masked = x.where(mask)
Итак, есть то, что я здесь отсутствую, что облегчает установление значений с помощью булевой маски, которая отсутствует размеры (и должно быть циркулярным)? Есть вариант я представил в верхней действительно способ сделать это (в этом случае, я мог бы также быть просто с помощью стандартных Numpy массивов ...)
Спасибо за подтверждение, и рад слышать обновления активно идет! – jmilloy
Эти изменения находятся в xarray 0.8.2? – gerrit