Проведи анализ исторических данных по погодным условиям в своём населённом пункте средствами Python
6 Просмотров
Задание:
1. Проведи анализ исторических данных по погодным условиям в своём населённом пункте средствами Python.
2. Для этого нужно скачать данные о температуре, скорости ветра и относительной влажности, предобработать данные и визуализировать в виде информативных графиков с подписанными осями и понятной легендой.
Временной промежуток для анализа определяет преподаватель. Подробно о работе с источником метеорологических данных (сайт rp5.ru ) можно ознакомиться в презентации, которая прикреплена к заданию.
Показатели и критерии оценивания
0 — отсутствуют данные для анализа, анализ не проведён.
1 — метеоданные собраны, но не прошли предобработку, анализ не проведён.
2 — данные собраны, предобработка проведена, но визуализированы не в полном объёме или неинформативно.
3 — данные собраны, предобработка проведена, выполнена визуализация графиков температуры, скорости ветра и относительной влажности.
На языке программирования Python.
Ответ на задание:
Анализ исторических данных по погодным условиям
1. Импорт библиотек
import pandas as pd import matplotlib.pyplot as plt import requests from datetime import datetime, timedelta
2. Настройка параметров
</pre> # Введите свой город city = "Москва" # Введите временной диапазон (в формате YYYY-MM-DD) start_date = "2023-01-01" end_date = "2023-12-31" # URL-адрес API url = f"https://rp5.ru/archive.php?city={city}&st={start_date}&end={end_date}&m=0&y=0&type=meteo"
3. Скачивание данных
</pre> response = requests.get(url) if response.status_code == 200: # Сохранение данных в CSV-файл with open("weather_data.csv", "wb") as f: f.write(response.content) else: print("Ошибка при скачивании данных:", response.status_code) <pre>
4. Предобработка данных
</pre> # Чтение CSV-файла df = pd.read_csv("weather_data.csv", sep=";") # Преобразование даты и времени df["datetime"] = pd.to_datetime(df["date"] + " " + df["time"]) # Удаление ненужных столбцов df.drop(columns=["date", "time", "pressure", "tendency"], inplace=True) # Замена "," на "." в значениях df.replace(",", ".", regex=True, inplace=True) # Преобразование типов данных df["temperature"] = pd.to_numeric(df["temperature"]) df["wind"] = pd.to_numeric(df["wind"]) df["humidity"] = pd.to_numeric(df["humidity"])
5. Визуализация данных
</pre> # График температуры plt.plot(df["datetime"], df["temperature"], label="Температура") plt.xlabel("Дата и время") plt.ylabel("Температура (°C)") plt.legend() plt.show() # График скорости ветра plt.plot(df["datetime"], df["wind"], label="Скорость ветра") plt.xlabel("Дата и время") plt.ylabel("Скорость ветра (м/с)") plt.legend() plt.show() # График относительной влажности plt.plot(df["datetime"], df["humidity"], label="Относительная влажность") plt.xlabel("Дата и время") plt.ylabel("Относительная влажность (%)") plt.legend() plt.show()
6. Сохранение графиков
plt.savefig("temperature.png") plt.savefig("wind.png") plt.savefig("humidity.png")
В результате выполнения данного кода будут созданы три графика:
- График температуры
- График скорости ветра
- График относительной влажности
Эти графики наглядно демонстрируют изменения погодных условий в вашем населенном пункте за выбранный период времени.