Изменение климата: анализируем температуру в разных городах за последние 100 лет

  • Tutorial
Привет, Хабр.

Про изменение климата сейчас не говорит только ленивый. И случайно найдя неплохой сайт с историческими данными, стало интересно проверить — как же реально менялась температура с годами. Для теста мы возьмем данные с нескольких городов и проанализируем их с помощью Pandas и Matplotlib. Заодно выясним, действительно ли челябинские морозы настолько суровы, и где теплее, в Москве или Петербурге.



Также обнаружилось еще несколько любопытных закономерностей. Кому интересно узнать подробности, прошу под кат.

Сбор данных


Я не буду приводить здесь ссылку на сайт, достаточно набрать в гугле «погода и климат летопись», он будет первым. Непосредственно данные отображаются в виде HTML-таблицы:



Она смотрится красиво, но для анализа это не очень удобно. Скопируем данные в csv, для этого я использовал бесплатное расширение для Хрома под названием Copytables. С этим уже можно работать дальше, если все сделано правильно, должен получиться файл следующего вида:

Year,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dev,Avg
2003,-7.3,-8.6,-2.7,4.7,15.5,12.8,20.6,16.9,11.3,5.6,1.1,-2.1,5.7
2004,-6.5,-7.0,1.3,4.6,11.4,15.3,19.0,18.4,12.1,5.9,-1.6,-2.9,5.8
2005,-3.0,-8.9,-6.0,7.1,14.8,16.5,19.3,17.6,13.1,6.0,1.4,-4.1,6.2

Теперь загружаем данные в Pandas dataframe. Данные мы будем смотреть с 1900 года.

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib.ticker import FormatStrFormatter, LinearLocator, FuncFormatter


df = pd.read_csv("moscow.csv", sep=',', encoding='utf-8')
df = df[(df['Year'] >= 1900)]

plt.rcParams["figure.figsize"] = (8, 5)
fig, ax = plt.subplots()

def neg_tick(x, pos):
    return '%.1f' % (-x if x else 0)

plt.bar(df['Year'].values, -df['Jan'].values, label=f'{cityname} - January Temperature, C')
plt.plot(df['Year'].values, -df['Jan'].rolling(window=20, min_periods=1).mean(), 'r-')
ax.yaxis.set_major_formatter(FuncFormatter(neg_tick))

plt.legend(loc='best')
plt.tight_layout()
plt.show()

Тут есть одна особенность — я использую «перевернутый» график для отрицательных температур, для чего пришлось использовать класс FuncFormatter и функцию neg_tick.

С кодом все, как можно видеть, ничего сложного. Посмотрим теперь, что же получается. Для сравнения я взял несколько городов — Москву, Петербург и Амстердам. Другие города желающие могут посмотреть самостоятельно.

Москва и Петербург


Я вывожу здесь данные на одном графике, т.к. заодно интересно было сравнить московские температуры с питерскими.

Для зимней температуры возьмем январь. Картинка уже была на КДПВ, но для целостности приведу её еще раз.

Зима, январь:



Лето, июнь:



В Москве действительно климат более континентальный — зимой холоднее, а летом жарче. Еще интересный пик, видимый на графике — реально холодные зимы в 1941-1945 — заметно ниже среднего. Жалобы немцев про «генерала зиму» имели свои основания.

В целом, результаты интересны. Средние температуры действительно меняются в сторону плюса, но зимы стали мягче где-то с 80х, а лето стало теплее уже где-то с 50х. Почему, не знаю.

Также интересно, насколько избирательна человеческая память. Мое детство пришлось на 80е, и мне запомнились морозные зимы под -20, хождение в валенках и ушанке и все такое. Оказывается в 80е морозов в январе было не так уж много, как мне казалось, но видимо, самые холодные дни больше отложились в памяти.

Кстати, стало интересно проверить, насколько суровые холода в Челябинске соответствуют анекдотам:



Да, разница средней температуры почти 2 раза. Когда в Москве средняя температура января -6, в Челябинске -12. Если в Москве средняя температура вдруг будет -20… впрочем, если верить статистике, такое было последний раз в 1942 году. Сколько тогда было в Челябинске неизвестно, данных нет.

Теперь рассмотрим города европейские.

Амстердам


В Амстердаме климат довольно теплый, хотя тенденция в целом сохраняется. Интересны «выбросы» отрицательных температур.

Зима, январь:



Забавно, что средняя температура января в -7 в 1963м настолько впечатлила голландцев, что это попало даже в местный кинематограф.

Летние температуры тоже меняются.

Лето, июнь:



Интересно, что зимы в Амстердаме изменились не так значительно как в Москве и Петербурге, вероятно сказывается влияние моря. Для сравнения, можно посмотреть какой-нибудь континентальный город, например Прагу:



Интересно, что до 40х годов температура росла, затем средние значения снизились. Что изменилось, не знаю. Причем это не какая-то местная климатическая аномалия, такой же эффект был в Зальцбурге:



Как подсказали в комментариях, на графиках видны интересные пики отрицательных температур с периодом в ~20 лет. Что это такое, я не знаю.

Заключение


Собственно, я не метеоролог, так что выводов не будет. Изменения климата определенно есть, отрицать это невозможно, и средние температуры действительно выросли. Интересно также было бы наложить данные на график концентрации СО2 в атмосфере за эти 100 лет, или на какие-то другие события, например на график солнечной активности. Также довольно интересно падение средней температуры после 1940 года — действительно ли это фактор войны (хотя тут я не уверен), или были какие-то еще события, типа извержения крупных вулканов.

Желающие могут дальше поэкспериментировать самостоятельно.
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 44

    0
    Всегда хотел построить спектр графика температур, но лень матушка… Думаю там можно увидеть что-нибудь интересное (ну кроме суточных/годовых колебаний)
      0
      Попробовал, ничего интересного кроме одного пика не видно (но может я что-то делаю не так)
      График

        0
        Заодно проверьте амплитуду между дневной и ночной температурой, особенно летом, особенно с периода до 2010-2013 и после него. Есть архивы погоды с 4-6 измерениями температуры в сутки. Данные доступны примерно с 2001-2003 годов.
          0
          А что такого особенного случилось в 2010м году?
            0
            Не помню точный год, начало нулевых, но конкретно в моем населенном пункте разница летних температур между днем и ночью стала расти. Т.е. ночи стали холоднее, дни жарче.

            Вот будет интересно если кто-то еще померяет для своих городов.
              0
              Если дадите ссылку на сайт с архивами, попробую посмотреть :) Там где я брал, только средняя температура по месяцам.
            +1
            Лесные пожары в западной России
        +2
        На последних двух графиках, с 1940 года, пики примерно каждые 20 лет. Что-то в измерениях изменялось или это совпадения?
          0
          Да, интересный эффект, я и не заметил.
          +6
          >> Забавно, что средняя температура января в -7 в 1963м настолько впечатлила голландцев

          Там сложнее, в Голландии есть такое событие — 200 километровая гонка Одиннадцати городов по замерзшим каналам на коньках. Редкое событие в котором могут участвовать десятки тысяч человек. Это запоминают на десятилетия. Так вот в 1963 гонка состоялась, но погода была совсем не айс было -18, силный ветер и проехать весь маршрут в 200 км смогло только 69 человек из 10 000 стартовавших. Среди финишеров и сошедших было много людей с обморожениями и снежной слепотой (включая победителя гонки). Тащемта простому русскому человеку не очень понятно как получить столько драмы в минус 18, но для голландцев, не знающих как выглядит нормальная шапка, и получающих ожог сетчатки как только в разрыв между дождевых туч показывается солнце — это прямо подвиг и испытание, круче чем у Челюскинцев на льдине. Фильм собственно про это. Про рекдость события — годы проведения гонки видны на вашем графике для Амстердама это 1985, 1986 и 1997 с которого гонка не проводилась по погодным причинам, 2012 был близок, но из-за потепления гонку отменили. Кстати, для многих голландцев факт того что гонки не было уже 20 лет служит доказательством всемирного потепления (период с 1963 по 1985 никто не вспоминает).
            0
            Спасибо за уточнение.

            В предыдущем году вроде думали, проводить гонку или нет, но так и не состоялось.
            +7
            Первый график, на котором ось Y перевернута и чем выше, тем холоднее, вводит в заблуждение.
              0
              Можно не переворачивать, но имхо менее наглядно:
              График

                +7
                Возможно, висящие столбики смотрятся не очень привычно, но линии тренда становятся гораздо нагляднее и понятнее, по-моему: видно, что с 80-го шло тридцатилетнее потепление, а в последние 10 лет опять холодает.
                Но, самое главное, это соответствует остальным графикам и интуитивному ожиданию — «выше = теплее»
                  +1
                  А можно столбики не от нуля, а, скажем, от -20 далать? Тогда будет и наглядно, и последовательно.
                +5
                Мне кажется, что температура городов никак не отражает изменение климата, так как города это продукт антропогенной деятельности, — это все равно, что измерять температуру внутри холодильника и на основании этого делать какие-то выводы об изменениях в окружающей среде.
                  +6
                  Именно. Города растут, и потребляют все больше энергии на обогрев/освещение/транспорт. Естественно они греют воздух внутри города.
                    +1
                    А еще меняются их крыши, покрытия дорог и площадей. Меняются в конце концов состав выбросов ТЭЦ и авто.
                      +3
                      Мало того, особо цинично брать российкие города с центральным отоплением зимой, т.к. реально «греют воздух»©
                      В питере в ЛО обычно зимой на 5-10 градусов холоднее, что как бы намекает.
                        –6
                        Неа, в солнечный февральской денёк температура в асфальтовобетонном городе и в лесу в обед будет сильно разная. Волшебное альбедо опять же.
                        Но вам легче нести чушь имени бабы мани и говорящий головы из ютубчика. Как-то установленная мощность тепловых известна, сколько энергии на кубокилометр воздуха и как часто он в городе меняется тоже не секрет. Но вам не нужна эта злобная математика от экологов, вы лучше покричите лозунги от экоактивистов
                          0
                          Чего?
                    0
                    Немножко оффтопик, но спрошу здесь — никто не знает, где бы добыть исторические ежедневные данные о погоде по российским городам? Ведь по большинству городов есть прогноз в интернете, но потом он уходит в историю и всё, не выкопать.
                      0

                      Мне по работе на rp5.ru смотреть доводилось. Там не на века, правда, но на десятилетия для некоторых мест.

                        0
                        На rp5 наверху над прогноз есть примерно такая надпись «1 час назад на метеостанции (хх км) было +3. Если кликнуть надпись, перейдете на таблицу наблюдений этой метеостанции. Задаете сроки наблюдений и смотрите. Т.е. данные будут только по тем городам (и весям)), где есть метеостанции.
                        +1
                        но видимо, самые холодные дни больше отложились в памяти
                        В СССР не было лёгкой зимней одежды. Приходилось одевать шерстяные носки, валенки, тяжёлые пальто и т.д. Отсюда и запомнилось всё связанное с морозом. Это не «аляску» набросить и бежать…

                        А вообще не понятно, смотрю и не вижу, где -40 в Москве во второй половине 90-х? Было же. Сам по заоконному термометру видел. Да и не спутать ни с чем это ощущение, когда выходишь на улицу, а у тебя мгновенно смерзаются ресницы, слизистая в носу на вдохе…
                          0
                          Здесь приведена среднемесячная температура. Вряд ли -40 держалось весь месяц, а 3-4 дня на общую статистику могли не повлиять.

                          По одежде да, помню ряды меховых шапок в магазинах, людей в валенках и калошах, сейчас однозначно теплее, -10 уже холодно кажется, да и зимней одежды такой дома уже нет.
                            +3
                            В СССР не было лёгкой зимней одежды

                            Думаю, это связано вовсе не с тем, что климат был холоднее, а с низким качеством одежды и плохим отоплением в помещениях и в транспорте, ну и с часовыми очередями на морозе.

                              0
                              Вот в чем, а рассказывать о нетеплых помещениях в союзе как о правиле. Это такая же альтернативноодаренная история как и атомная война 16 века.
                                +1

                                Я не особо застал Союз, но я помню:


                                • длительное ожидание общественного транспорта на морозе;
                                • тёплая одежда (свитера) в школах и садах;
                                • заклеивание окон на зиму;
                                • намерзание льда на ручках окон в помещении;
                                • отсутствие такого явления, как уборка дорог от снега и посыпка реагентами.
                              0
                              а у тебя мгновенно смерзаются ресницы, слизистая в носу на вдохе…

                              и этот жуткий скрип при ходьбе, ледяные пальцы рук и ног, утром и вечером кромешная тьма… это было давно и неправда(
                                0

                                Это не -40, а вполне 20-25. И не помню я жуткий морозов в 90е, помню зиму 2006 с -33, что ли…
                                Алсо, http://zpogoda.ru/trecs/msk/mskrecs.php?mID=12

                                  0
                                  -20 и сейчас бывает, совершенно не те ощущения. Может было не буквально -40? -38, например… Да и не совсем в Москве я жил, может в области были более холодные участки.
                                  0
                                  Насчет одежды — мне кажется, «традиционные» варианты из шерсти, шкур и ваты имеют чуть больший рабочий диапазон температур, чем более современная одежда. Я в условном ватнике могу спокойно ходить от -5 до -30, а синтетических курток для этого диапазона мне нужно 2-3 разных. Они практически непродуваемые, воздухообмена нет и из-за этого у меня терморегуляция сбивается.

                                  Да и не спутать ни с чем это ощущение, когда выходишь на улицу, а у тебя мгновенно смерзаются ресницы, слизистая в носу на вдохе…
                                  Очень сильно зависит от влажности, а влажность — от того, какая погода была накануне.
                                    0
                                    синтетических курток для этого диапазона мне нужно 2-3 разных. Они практически непродуваемые, воздухообмена нет и из-за этого у меня терморегуляция сбивается.
                                    Попробуйте поискать мембранные с паропроницаемостью не ниже 20,000. Дорогие на горетехе, но есть и дешевле варианты тканей. Изумительно, но это тот редкий случай когда технический прогресс есть и реально рулит.
                                  +1

                                  Но это же города. Города за 100 лет сильно изменились, появился транспорт, отопление, освещение...

                                    0
                                    Ага, я сам родом с Подмосковья и во время работы в Мск в 84-86 годах помню, что по ней в валенках по снегу ходил (на входе в метро только было плохо, каша из мокрого снега). А щас за тыщу верст снег в Москве по новостям вижу только в момент снегопада, а потом снова осень:-)
                                      +2
                                      Ваши наблюдения объясняются одним словом: реагенты.
                                        0

                                        А вот нет. Зимой на термометре стабильно на 5-10 градусов теплее, чем по прогнозу.

                                    0
                                    Насколько корректно сравнивать разницу температур в разах для шкалы Цельсия? Для пущего драматизма конечно же сгодится, но… И фильтр среднего сильно сглаживает колебания и побитые рекорды температур для конкретного дня. Статистика она такая, результаты не достаточно красноречивы — показывай в процентах.
                                      0
                                      А еще весь 20 век везде города росли бешенными темпами и загородная метеостанция с термометрами на почве часто оказывалась сначала у города, а потом в городе. Методологически все данные больше части метеостанций в населённых местах в разбежке на десятилетия нельзя считать валидными как и количество рекордов. И наступай сейчас глобальное похолодание об этом говорил бы каждый уважающий себя экоактивист. Но сейчас об этом и метеорологи не скажут- заклюют и проклянут. Хоть на кострах не жгут, когда кто-то говорит о фактах не вписывающихся в картину мира от новых жрецов и то ладно.
                                      +1
                                      К слову о 1942. В городах, оккупированных немцами, естественным образом отсутствуют данные.
                                        0
                                        Был такой отличный сайт weatherspark.com где был интеактивный график погоды за все время наблюдений. Но потом копирасты его прикрыли. Сайт, конечно, остался, но архивную погоду он уже не предоставляет. Кто его помнит, знает о чем я.
                                          0
                                          После 40-х похолодало вероятно из-за огромного числа ядерных испытаний.

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                          Самое читаемое