У меня есть объект DataArray xarray с именем "da_kbdi
" с именем переменной "KBDI_AWAP
".
<xarray.DataArray 'KBDI-AWAP' (time: 8784, latitude: 106, longitude: 193)>
dask.array<shape=(8784, 106, 193), dtype=float32, chunksize=(744, 106, 193)>
Coordinates:
* time (time) datetime64[ns] 2000-01-01 ... 2000-12-31T23:00:00
* latitude (latitude) float64 -39.2 -39.15 -39.1 ... -34.0 -33.95 -33.9
* longitude (longitude) float64 140.8 140.8 140.9 140.9 ... 149.9 150.0 150.0
Измерение времени имеет почасовые координаты, охватывающие год, например2000-01-01T00: 00: 00, 2000-01-01T01: 00: 00, ... ..., 2000-12-31T23: 00: 00.
Что мне нужно сделать, так этонайдите все значения, где KBDI_AWAP <80, когда время обозначает осень (март, апрель и май), и KBDI_AWAP <30, когда время обозначает весну (сентябрь, октябрь и ноябрь). </p>
Таким образом, на выходе будет другой массив данных сте же размеры и координаты и со значением 0 (Ложь) или 1 (Истина), указывающим, что условие выполнено.
Я получил следующие коды.
criteria1 = xr.where(da_kbdi.time.dt.season == "MAM", da_kbdi < 80, np.nan)
criteria2 = xr.where(da_kbdi.time.dt.season == "SON", da_kbdi < 30, np.nan)
Нокак их объединить?Я не уверен, что это лучший способ добиться этого?