
Вводная часть. О проекте
Погода — неотъемлемый атрибут ежедневной жизни каждого из нас. Знание (или наоборот, незнание) погоды может очень сильно повлиять на наши планы. Если пойдёт дождь, а вы не взяли с собой зонтик в дорогу, вы, скорее всего, намокнете. А выйдя на жаркое солнце без солнцезащитного крема — рискуете обгореть и получить солнечный удар. Прогноз погоды помогает нам предсказывать погодные условия, тем самым избегая неприятностей. Да, иногда он бывает не самым точным, но, если знать какие-то основные принципы возникновения тех или иных погодных условий (например, самое базовое — зимой холодно, летом жарко), можно увидеть особую тенденцию.
Это меня в данной теме и заинтересовало. Мне захотелось посмотреть, какой же была погода за последние десять лет в каком-нибудь городе. В частности, в моём проекте выбор пал на Москву, потому что это очень значимый для меня город. В этом исследовании меня интересовали такие вопросы как, например, в каком месяце больше всего солнечных дней в Москве? В каком месяце обычно выпадает больше всего осадков? Каково среднее соотношение тёплых и холодных дней за год? И прочее. Также, я могу попробовать «предсказать» будущее — какой станет погода? Действительно ли происходит глобальное потепление или всё это неправда?
Итак, подытожу: в качестве данных для своего проекта я решила выбрать тему о погоде в Москве, столице России. Погодные данные я брала за последние 10 лет.
Этапы работы
В первую очередь, я создала обложку для проекта. Для её создания я воспользовалась нейросетью Шедеврум.
Промпт для Шедеврума: «Мне нужна картинка вертикального формата. На картинке изображено голубое небо, которое занимает пространство всего изображения. На небе видно несколько белых облачков, но их немного. Ярко светит солнце. Солнце с точки зрения композиции расположено в верней части изображения, справа от центра изображения. На изображении видны артефакты в виде солнечных лучей. На изображении нет никаких людей.»
Далее я начала собирать необходимые для анализа данные из открытых источников. Свои данные я получила из сервиса Gismeteo.ru и сохранила их в csv файле. Мой датасет имеет большое количество данных, на основе которых можно построить интересные графики, что я и собираюсь сделать.
Потом я подумала о том, как можно было бы стилизовать мои будущие графики. Я посчитала, что можно изобразить их с особым шрифтом и палитрой цветов, которые бы ассоциировались с темой моего проекта.
Шрифт текста на графиках я выбрала следующий — Comic Sans. Также я выбрала основные цвета для графиков — #3B94D5, #81D4FF, #DCDCDC, #FFFFFF, #000000. При выборе визуального стиля, я опиралась на цвета, связанные с различными погодными условиями. Основной цвет палитры, голубой, очень часто ассоциируется с погодными сервисами, ведь это цвет неба. Выбор шрифта Comic Sans MS связан с тем, что его легко читать, он приятен взгляду и он красиво смотрится на графиках.
Типографику я нашла на сервисе MyFonts.ru. Палитру цветов создала с помощью Gradients.app.
Палитра
Далее, я приступила к написанию кода в блокноте Google Collab, параллельно подгрузив туда файл с моим датасетом и файл с нужным мне шрифтом. Для анализа датасета и дальнейшего построения графиков я использовала AI companion Copilot от Microsoft. Вот промпт, который я ему отправила:
«У меня есть датасет в формате csv файла, в котором содержатся данные о погоде и погодных явлениях, собранных с метеостанций г. Москвы.
Сет данных:
Дата | Страна | Область | Город | Температура (день) | Давление (день) | Облачность (день) | Явления (день) | Направление ветра (день) | Скорость ветра (день), м/с | Температура (вечер) | Давление (вечер) | Облачность (вечер) | Явления (вечер) | Направление ветра (вечер) | Скорость ветра (вечер), м/с
Мне нужно считать датасет из локального файла csv.
Для анализа подключи библиотеку pandas, библиотеку matplotlib для построения диаграмм.
Для графиков я хочу использовать шрифт Comic Sans MS из локальной папки.
Сделай мне справочник палитр цвета для использования на диаграммах. Голубой: #3B94D5 Светло голубой: #81D4FF Серый: #DCDCDC Белый: #FFFFFF Черный: #000000
После чтения датасета, создай программный каркас для 5 блоков анализа и построения диаграмм:
1. Столбчатая диаграмма. Среднее количество солнечных дней по месяцам. 2. Столбчатая диаграмма. Самый дождливый месяц в среднем (в каком месяце обычно выпадает больше всего осадков). 3. Круговая диаграмма. Соотношение тёплых дней (выше 0) и холодных дней (ниже 0) в среднем за год. 4. Линейный график. Тренд глобального потепления с 2013 по 2023 год. 5. Линейный график. Прогноз достижения критического уровня температуры с указанием года. Уровень критической среднегодовой температуры установи в 30 градусов Цельсия.
Для расчета блоков 4 и 5 подключай необходимые библиотеки для вычисления трендов и прогнозов.
Вычисления реализуй блоками и помести в единую функцию запуска, которую можно будет использовать в других проектах.
При построении графиков используй цвета из моей палитры и оставь переменные для кастомизации цветов и настроек диаграмм.»
Фрагмент кода. Начало
CoPilot выдал мне каркас программного кода, в который я внесла необходимые мне изменения, связанные с настройкой графиков (цвета, изменения внешнего вида, корректировка подписей и названий графиков).
Итоговые графики
В моём проекте в большинстве своём я использовала столбчатые диаграммы и линейные графики. Также у меня есть круговая диаграмма. На мой взгляд, эти типы графиков лучше всего работают на визуализацию. Столбчатые диаграммы хороши для сравнения множественных параметров. А круговые диаграммы лучше работают с процентным соотношением — ты представляешь, что все рассматриваемые параметры находятся как бы на одной тарелке. Линейные графики хороши, чтобы отслеживать те или иные тенденции.
График 1. Среднее количество солнечных дней по месяцам в Москве
Столбчатая диаграмма
Фрагмент кода
График 2. Самый дождливый месяц (в среднем) в Москве
Столбчатая диаграмма
Фрагмент кода
График 3. Соотношение теплых дней (выше 0) и холодных дней (ниже 0) в среднем за год в Москве
Круговая диаграмма
Фрагмент кода
График 4. Тренд глобального потепления в Москве
Линейный график
Фрагмент кода
Для составления четвёртого (на картинке выше) и пятого (на картинке ниже, далее) графиков CoPilot предложил использовать библиотеку линейной регрессии для построения трендов и прогнозов.
График 5. Прогноз достижения критического уровня температуры в Москве
Линейный график
Фрагмент кода
Итоги
Подведём итоги моего проекта. Итак, мне удалось изучить данные о погоде в Москве за последние 10 лет. Я выяснила следующие интересные факты:
1. Среднее количество солнечных дней по месяцам. Самым солнечным месяцем оказался август, в то время как второе и третье места неожиданно (лично для меня) заняли март и апрель. 2. Самый дождливый месяц (в среднем). Пик дождей пришёлся на осенний сезон. Но также достаточно «осадочными» оказались апрель и май. 3. Соотношение тёплых и холодных дней в среднем за год. Оказалось, что тёплых дней в Москве в среднем больше, чем холодным. Хотя лично мне казалось, что всегда было наоборот, ведь есть же такой стереотип, что Россия — страна холода. Соотвественно, и в столице, по идее, должно быть прохладно. Однако, это не совсем так.
4. Тренд глобального потепления. Меня заинтересовала тенденция глобального потепления и с помощью математических расчётов мне удалось узнать, что за десять лет средняя температура поднялась в общей сложности на 0,7 градусов по Цельсию, что может свидетельствовать о глобальном изменении климата.
5. Прогноз достижения критического уровня температуры в Москве. Продолжая развивать мысль предыдущего графика, мне захотелось узнать, когда повышение температуры в городе Москва достигнет своей критической точки. Итак, примерно к 2333 году средняя температура в году будет составлять 30 градусов Цельсия. Результат, на мой взгляд, не самый утешительный. Потому что человеку при условии такой температуры жить будет очень затруднительно, если не невозможно.
Ссылки на датасет и блокнот с кодом
1. Датасет: https://disk.yandex.ru/d/JHBGZkSaEJlqAA 2. Блокнот с кодом: https://disk.yandex.ru/d/DBVIVpwe_tMS2w
Ссылки на использованные в работе нейросети (описание применения генеративной модели)
1. Шедеврум: https://shedevrum.ai/ (использовался для генерации обложки для проекта) 2. Microsoft CoPilot: https://copilot.microsoft.com/onboarding (использовался для формирования каркаса программного кода и уточнения использования библиотек)