Введение в предметную область

Настоящее исследование посвящено комплексному анализу глобальных климатических изменений на основе исторических метеорологических данных за период с 1950 по 2024 год. Мы фокусируемся на шести ключевых странах, представляющих основные климатические зоны планеты.

Постановка задач анализа

Основные задачи исследования можно сформулировать следующим образом:

  1. Сбор и предварительная обработка данных

  2. Анализ климатических изменений

  3. Прогнозирование климатических параметров

  4. Визуализация результатов

Научные гипотезы исследования

  1. Гипотеза о динамике среднегодовых температур. Мы предполагаем, что за период с 1950 по 2024 год во всех исследуемых странах наблюдается статистически значимый устойчивый рост среднегодовой температуры.

  2. Гипотеза о разнице между tmax и tmin. Мы предполагаем, что суточный температурный диапазон (разница между tmax и tmin) в городах России с высокой плотностью населения сокращается с течением времени.

  3. Гипотеза о среднее значении солнечных дней. Мы предполагаем, что среднее значение продолжительности солнечного сияния (tsun) в крупных городах демонстрирует устойчивую тенденцию к снижению. Данная закономерность особенно выражена в мегаполисах с высокой плотностью населения и развитой промышленной инфраструктурой.

  4. Гипотеза об изменении характера осадков. Наше исследование предполагает, что в регионах с наиболее выраженным потеплением климата происходит существенное перераспределение осадков. В частности, сокращение продолжительности залегания и толщины снежного покрова сопровождается увеличением количества жидких осадков.

Характеристики датасета и описание модели данных

Для получения метеорологических данных был использован Meteostat API, предоставляющий структурированный доступ к историческим климатическим данным в формате pandas DataFrame. Для обеспечения репрезентативности выборки были отобраны 100 наиболее густонаселенных городов из каждой исследуемой страны. Географические координаты этих городов были переданы в Meteostat API, который с помощью алгоритма «ближайшего соседа» (Nearest Neighbor) автоматически определял наиболее подходящие метеостанции для каждого населенного пункта.

В результате проведенного парсинга и обработки данных была сформирована комплексная климатическая база данных, содержащая 13 964 612 записей по 600 городам за 74 года.

Описание модели данных

Таблица 1 – cities

Поле

Тип данных

Ограничение

Описание

id

Integer

PK

Уникальный идентификатор города

name

String(100)

NOT NULL

Название города

country

String(50)

NOT NULL

Страна

latitude

Float

NOT NULL

Широта

longitude

Float

NOT NULL

Долгота

 

Таблица 2 – weather

Поле

Тип данных

Ограничения

Описание

id

Integer

PK

Уникальный ID записи погоды

city_id

Integer

FK → cities.id, ON DELETE CASCADE

Идентификатор города

date

Date

NOT NULL

Дата наблюдения

tavg

Float

nullable

Средняя температура (°C)

tmin

Float

nullable

Минимальная температура

tmax

Float

nullable

Максимальная температура

prcp

Float

nullable

Количество осадков (мм)

snow

Float

nullable

Глубина снежного покрова (мм)

wdir

Float

nullable

Направление ветра (градусы)

wspd

Float

nullable

Скорость ветра (км/ч)

wpgt

Float

nullable

Пикове порывы ветра

pres

Float

nullable

Среднее атмосферное давление (гПа)

tsun

Float

nullable

Продолжительность солнечного света (минуты)

Связи между таблицами weather.city_id → cities.id

Отношение: один ко многим (один город — много записей о погоде)

Удаление: при удалении города удаляются все его записи о погоде

Программная реализация

Модуль обработки данных — обеспечивает сбор, предобработку и хранение информации

Модуль прогнозирования — содержит реализацию моделей машинного обучения для предсказания погодных условий.

Модуль пользовательского интерфейса — предоставляет удобный способ взаимодействия с системой через веб-приложение.

Модуль визуализации и аналитики.

1. Модуль обработки и сохранения данных.

Модуль обработки данных реализует программные средства для сбора, фильтрации и хранения информации о городах и погоде. Он состоит из трёх ключевых частей: загрузка списка городов, получение погодных данных и сохранение всей информации в базу данных.

Для выбора городов используется CSV-файл worldcities.csv (взят из открытых источников), из которого извлекаются самые густо-населённые города указанных стран.

Погодные данные запрашиваются через API Meteostat с использованием библиотеки meteostat. Запросы выполняются параллельно в отдельных потоках, что ускоряет процесс сбора данных по нескольким городам. В случае ошибок или превышения таймаута выполнение корректно продолжается без остановки всего процесса.

Все собранные данные проходят предварительную очистку. После этого они записываются в локальную PostgreSQL, организованную с помощью ORM SQLAlchemy.

2. Модуль прогнозирования.

Модуль прогнозирования реализует два подхода к предсказанию температурных данных — на основе градиентного бустинга и нейронной сети LSTM. Оба метода используют исторические данные, хранящиеся в реляционной базе данных.

Файл yearly_boosting.py строит прогноз среднегодовой температуры с использованием модели XGBoost. Данные агрегируются по годам, формируются последовательности из прошлых лет (lookback) для предсказания на заданное количество лет вперёд (horizon). Модель обучается на этих данных и позволяет делать многоточечный прогноз. Оценка качества выполняется с помощью метрик MAE, RMSE и R², отдельно по каждому шагу прогноза. Результаты выводятся графически через интерфейс Streamlit.

Файл lstm_low_horisont.py реализует модель на основе рекуррентной нейронной сети LSTM для краткосрочного прогноза среднесуточной температуры на несколько дней вперёд. Модель включает эмбеддинг городов, что позволяет учитывать их индивидуальные климатические особенности при общем обучении. Последовательности формируются из окон фиксированной длины (по умолчанию 30 дней), прогнозируется температура на горизонте 7 дней. Обучение проводится с минимизацией MSE с помощью оптимизатора Adam. После обучения модель сохраняется и может быть загружена повторно для использования без повторного обучения.

Для подготовки данных используется разбиение на обучающую, тестовую и валидационную выборки. Все данные нормализуются перед подачей в модель. После прогноза выполняется денормализация для восстановления реальных значений температуры. Также предусмотрена обработка пропусков: если в окне есть пропущенные значения, они заполняются средним значением, при этом выдаётся предупреждение.

3. Модуль пользовательского интерфейса

Модуль пользовательского интерфейса реализован с помощью библиотеки Streamlit и включает два приложения: для долгосрочного и краткосрочного прогноза температуры. Оба приложения предоставляют веб-интерфейс, позволяющий выбирать города, задавать параметры прогнозирования и визуализировать результаты.

4. Модуль визуализации и аналитики

Модуль визуализации реализован с помощью Grafana и предназначен для отображения погодных данных в удобном графическом виде.

Результаты исследования

Проверка гипотез

1. Гипотеза: среднегодовая температура (tavg) растёт во всех странах с 1950 по 2024 годы.

Общий график среднегодовой температуры воздуха для всех стран
Общий график среднегодовой температуры воздуха для всех стран

На графике рисунка 1 показаны среднегодовые температуры по всем рассмотренным странам. Далее рассмотрим отдельные группы стран для большей наглядности.

Сравнение графиков среднегодовой температуры воздуха для России и Канады
Сравнение графиков среднегодовой температуры воздуха для России и Канады

Общая тенденция (рис. 2). График среднегодовой температуры России (красная линия) демонстрирует относительно стабильную динамику с небольшими колебаниями. График среднегодовой температуры Канады (жёлтая линия) показывает более выраженные колебания по сравнению с Россией.

Обе страны демонстрируют тенденцию к повышению температур в последние годы, что соответствует общемировым трендам глобального потепления. Особенно это заметно в Канаде, где температуры после 2000 года значительно возросли.

Тем не менее, данные согласуются с общеизвестными фактами — климат этих двух стран, действительно, похож.

Сравнение результатов для США и Японии
Сравнение результатов для США и Японии

Обе страны на рис. 3 демонстрируют рост среднегодовой температуры на протяжении 74 лет, что соответствует глобальному тренду потепления. В обеих странах наблюдаются скачкообразные изменения температур. В целом можно сказать, что у стран довольно похожая динамика.

Анализ графиков среднегодовой температуры по странам подтверждает общую тенденцию к глобальному потеплению. Почти все страны демонстрируют рост температур в последние десятилетия, особенно после 2000 года. Наиболее выраженный тренд наблюдается в Канаде и США, тогда как Бразилия показывает более стабильные значения. Россия и Германия также демонстрируют повышение температур, хотя с меньшей амплитудой. Полученные данные согласуются с мировыми климатическими трендами и указывают на необходимость учёта этих изменений при долгосрочном прогнозировании погодных условий.

2. Гипотеза: разница между tmax и tmin (суточный температурный диапазон) уменьшается с годами в городах с очень высокой плотностью населения (анализ для России)

Среднесуточный температурный диапазон по годам в России
Среднесуточный температурный диапазон по годам в России

График демонстрирует, что суточный температурный диапазон в городах России имеет колебания, но в целом не показывает четкой тенденции к уменьшению. Вместо этого наблюдается некоторая стабилизация или даже незначительное увеличение в некоторых случаях.

Так, например, для центрального города Москвы видно, что диапазон не уменьшается, а сохраняет стабильность (Аналогично Братск).

Якутск же, в свою очередь, наоборот показывает тенденцию к уменьшению диапазона (с 12 градусов до 10).

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

Среднесуточный температурный диапазон по Сибири
Среднесуточный температурный диапазон по Сибири

Из графика видно, что тенденция (пусть и рваная), действительно, наблюдается (в отличие от городов центральной России) - общий тренд графиков медленно-убывающий.

Исходя из данных:

  • Нет явных доказательств, что суточный температурный диапазон уменьшается с годами в городах с высокой плотностью населения.

  • Москва, как крупнейший город России с высокой плотностью населения, не демонстрирует значительного снижения диапазона температур. Аналогичные результаты наблюдаются и в других городах.

  • Города Сибири действительно демонстрируют тенденцию к уменьшению суточного температурного диапазона, хотя для некоторых из них это снижение незначительно.

3. Гипотеза: среднее значение tsun (солнечные часы) в мегаполисах снижается из-за загрязнения.

Средняя солнечная активность
Средняя солнечная активность

Данные существуют только для текущего периода и лишь 115 городов. Возьмём часть из городов Америки и проверим гипотезу.

График демонстрирует, что средняя солнечная активность (измеряемая в часах) для большинства городов остаётся стабильной или имеет небольшие колебания на протяжении всего периода. Города, такие как Atlanta, Boston, Dallas, Houston, Miami, Minneapolis, Philadelphia, Phoenix, San Diego, San Francisco и Seattle, показывают стабильную динамику солнечной активности без значительных трендов к снижению. Результат Чикаго можно считать выбросом, поскольку после отображённых годов данные уходят в 0. Гипотезу отвергаем.

4. Гипотеза: в странах с умеренным климатом (Германия, Россия) общее количество осадков (prcp) растёт, но доля снега (snow) уменьшается.

Анализ осадков
Анализ осадков

Общее количество осадков (Зелёная и Голубая линии) возрастает. Снег (в данном случае измеряется его глубина, а не количество выпавшего снега) имеет тенденцию к уменьшению в Германии и стабильно держится на высоком уровне в России. Это говорит о том, что гипотеза, поставленная нами, выполняется лишь частично - хотя и Россию нельзя считать полностью страной с одним лишь умеренным климатом.

Построение прогнозов

1. Прогнозирование на длинный горизонт

Для прогнозирования на n лет вперёд используется градиентный бустинг XGBRegressor, обёрнутый в MultiOutputRegressor. Этот ансамблевый метод построен на последовательном обучении деревьев решений, каждое из которых корректирует ошибки предыдущих. Он устойчив к выбросам, хорошо работает на небольших выборках и способен моделировать нелинейные зависимости — что важно для климатических временных рядов.

Модель обучается на скользящих окнах по годовому ряду среднегодовой температуры:

Вход (X) — последние lookback лет;

Выход (y) — значения на следующие horizon лет.

Такая схема позволяет строить многолетние прогнозы с учётом всей доступной динамики температуры.

Данные делятся на обучающую и тестовую выборки по годам, чтобы исключить утечку информации. Тестовый период — последние n_test лет, выбранные с учётом ограничения: чтобы осталось минимум lookback + horizon лет для обучения.

Модель обучается на обучающей части, затем прогнозирует температуру на тестовый горизонт. Качество оценивается по MAE, RMSE и R² на каждом шаге прогноза (год+1, год+2 и т.д.). Результаты визуализируются: исторические данные, прогноз и фактические значения (если доступны).

Пример выполнения работы
Пример выполнения работы

2. Прогнозирование на короткий горизонт

Цель: построение модели для прогноза средней температуры воздуха на ближайшие 7 дней по 30 предыдущим значениям.

Выбор модели:

Для данной задачи была выбрана нейросетевая модель LSTM (Long Short-Term Memory) с учётом идентификатора города.

LSTM хорошо подходит для временных рядов, так как способна запоминать долгосрочные зависимости и обрабатывать последовательные данные, что критично для погодных наблюдений.

Особенности модели:

  • На вход модель получает 30 последовательных нормализованных значений температуры (lookback = 30) и идентификатор города.

  • Для каждого города используется обучаемое эмбеддинг-представление, которое позволяет учитывать особенности конкретного региона.

  • Модель предсказывает сразу 7 будущих значений (horizon = 7), что удобно для анализа краткосрочных климатических трендов.

Обоснование выбора LSTM:

  • Классическая линейная регрессия и даже ARIMA плохо справляются с захватом нелинейных и долгосрочных зависимостей.

  • LSTM устойчива к шумам и позволяет более гибко учитывать погодную динамику.

Обучение модели:

  • Данные разбиваются на train (70%), test (20%) и validation (10%) выборки по каждому городу отдельно.

  • Используется MSE в качестве функции потерь, метрики: MAE, RMSE, R².

  • Обучение проводится в течение 20 эпох на батчах размером 128.

Хотим узнать прогноз в Брянске на 09-09-2021 и 7 дней вперёд.

Исторические данные — синий цвет, прогнозные — голубой, реальные данные — красный. Видим, что модель очень хорошо предсказала данные.


Дистрибутив проекта представлен в виде репозитория Git, содержащего полный исходный код, файлы конфигурации, скрипты для запуска и инструкции. Это позволяет удобно управлять версиями, отслеживать изменения и совместно работать над проектом.

При необходимости также доступна упаковка проекта в архив (.zip или .tar.gz) для локального скачивания и развёртывания без подключения к Git.

Комментарии (0)