У меня есть набор данных массива с ежемесячными данными об осадках за несколько лет, и я хочу вычислить аномалии за 36 месяцев между 1887 и 1889 годами. Как я могу выполнить это правильно?
Я попытался создать два новых набора данных,один для средних условий (климатология) и другой в течение 3 лет и выполняющий следующую функцию над ними.Тем не менее, мои выходные данные имеют как месяц измерения, так и дату.
Данным присваивается переменная «осадка», и она выглядит следующим образом:
<xarray.DataArray 'precipitation' (date: 1920, station_number: 42)>
array([[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
...,
[ nan, nan, nan, ..., nan, nan, 41.2],
[ nan, nan, nan, ..., nan, nan, 44. ],
[ nan, nan, nan, ..., nan, nan, 30.2]])
Coordinates:
* date (date) datetime64[ns] 1850-01-01 1850-02-01 ... 2009-12-01
* station_number (station_number) object '018070' '019036' ... '095003'
#Anomaly calculation
climatology=precip.sel(date=slice('1888','1965')).groupby('date.month').mean(dim='date')
the_years=precip.sel(date=slice('1887','1889'))
percentage_anomaly=((the_years-climatology)/climatology)*100
#convert to dataframe
ppercentage.mean('station_number').to_dataframe()
Я ожидаю, что вывод будет новым набором данных с датой измерений иместо нахождения.Выходными данными является набор данных с датой измерений, местоположением И месяцем.
Например:
date month anomaly
1887-01-01 1 10
2 20
3 30
4 40
5 50
6 60
7 70
8 80
9 90
10 100
11 110
12 120