График ежемесячной аномалии на несколько лет в питоне - PullRequest
1 голос
/ 23 сентября 2019

У меня есть набор данных массива с ежемесячными данными об осадках за несколько лет, и я хочу вычислить аномалии за 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
...