Я надеюсь построить график, представляющий месячную температуру с 1 января 1981 года по 31 декабря 2016 года.
Я хотел бы, чтобы месяцы январь, февраль, март, апрель, май... декабрь по оси x и запись температуры по оси y, поскольку мой план состоит в том, чтобы сравнить месячную запись температуры 1981–1999 годов с 2000–2016 годами.
Я прочитал данные без проблем.
temp1 = xr.open_dataarray('temp1981-1999.nc') temp2 = xr.open_dataarray('temp2000-2016.nc')
и избавились от размеров широты и долготы
temp1mean = temp1.mean(dim=['latitude','longitude']) temp2mean = temp2.mean(dim=['latitude','longitude'])
Я попытался преобразовать его в фрейм данных, чтобы продолжить следующий шаг, например, усреднение месяцев с использованием группы по
temp1.cftime_range(start=None, end=None, periods=None, freq='M', normalize=False, name=None, closed=None, calendar='standard')
t2m time 1981-01-01 276.033295 1981-02-01 278.882935 1981-03-01 282.905579 1981-04-01 289.908936 1981-05-01 294.862457 ... ... 1999-08-01 295.841553 1999-09-01 294.598053 1999-10-01 289.514771 1999-11-01 283.360687 1999-12-01 278.854431
monthly = temp1mean.groupby(temp1mean.index.month).mean()
Однако я получил следующую ошибку.
У объекта DataArray нет атрибута index
Поэтому мне интересно, есть ли способ сгруппировать все ежемесячные средние значения и создать график следующим образом.
В дополнение к основному вопросу, я был бы очень признателен, если бы вы также могли предложить способы преобразования единицы измерения кельвина в цельсий при построении графика. Как я пробовал команду
celsius = temp1mean.attrs['units'] = 'kelvin'
но выход просто
'температура_воздуха
Я очень признателен за любое предложение, которое вы можете иметь для построения этого grpah! Большое спасибо, и если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать, я отвечу как можно скорее.