Обсуждение участника:Наталья Захарова

Материал из Поле цифровой дидактики

Смурфики

Погода

Ошибка в [[Widget:iframe

import requests import pandas as pd import matplotlib.pyplot as plt from datetime import datetime, timedelta

  1. Координаты города (например, Москва)

LATITUDE = 55.7558 LONGITUDE = 37.6173 CITY_NAME = "Москва"

  1. Даты: последние 7 дней

end_date = datetime.now().date() start_date = end_date - timedelta(days=7)

  1. URL для запроса к Open‑Meteo

URL = (

   f"https://api.open-meteo.com/v1/forecast?"
   f"latitude={LATITUDE}&longitude={LONGITUDE}&"
   f"start_date={start_date}&end_date={end_date}&"
   f"hourly=temperature_2m,precipitation,wind_speed_10m&"
   f"timezone=Europe/Moscow"

) response = requests.get(URL) data = response.json()

  1. Извлекаем временные метки и параметры

timestamps = data['hourly']['time'] temperatures = data['hourly']['temperature_2m'] precipitations = data['hourly']['precipitation'] wind_speeds = data['hourly']['wind_speed_10m']

  1. Создаём DataFrame

df = pd.DataFrame({

   'Время': timestamps,
   'Температура, °C': temperatures,
   'Осадки, мм': precipitations,
   'Скорость ветра, м/с': wind_speeds

})

  1. Преобразуем столбец 'Время' в datetime

df['Время'] = pd.to_datetime(df['Время']) df.to_csv('weather_data_openmeteo.csv', index=False, encoding='utf-8') print("Данные сохранены в weather_data_openmeteo.csv")

  1. Создаём фигуру с тремя подграфиками

fig, axes = plt.subplots(3, 1, figsize=(14, 10), sharex=True)

  1. График температуры

axes[0].plot(df['Время'], df['Температура, °C'], color='red', linewidth=1) axes[0].set_title(f'Температура в {CITY_NAME} за последние 7 дней') axes[0].set_ylabel('Температура, °C') axes[0].grid(True)

  1. График осадков

axes[1].bar(df['Время'], df['Осадки, мм'], color='blue', alpha=0.7, width=0.04) axes[1].set_title('Осадки') axes[1].set_ylabel('Осадки, мм') axes[1].grid(True)

  1. График скорости ветра

axes[2].plot(df['Время'], df['Скорость ветра, м/с'], color='green', linewidth=1) axes[2].set_title('Скорость ветра') axes[2].set_ylabel('Скорость ветра, м/с') axes[2].set_xlabel('Дата и время') axes[2].grid(True)

plt.tight_layout() plt.show()|виджете iframe import requests import pandas as pd import matplotlib.pyplot as plt from datetime import datetime, timedelta

  1. Координаты города (например, Москва)

LATITUDE = 55.7558 LONGITUDE = 37.6173 CITY_NAME = "Москва"

  1. Даты: последние 7 дней

end_date = datetime.now().date() start_date = end_date - timedelta(days=7)

  1. URL для запроса к Open‑Meteo

URL = (

   f"https://api.open-meteo.com/v1/forecast?"
   f"latitude={LATITUDE}&longitude={LONGITUDE}&"
   f"start_date={start_date}&end_date={end_date}&"
   f"hourly=temperature_2m,precipitation,wind_speed_10m&"
   f"timezone=Europe/Moscow"

) response = requests.get(URL) data = response.json()

  1. Извлекаем временные метки и параметры

timestamps = data['hourly']['time'] temperatures = data['hourly']['temperature_2m'] precipitations = data['hourly']['precipitation'] wind_speeds = data['hourly']['wind_speed_10m']

  1. Создаём DataFrame

df = pd.DataFrame({

   'Время': timestamps,
   'Температура, °C': temperatures,
   'Осадки, мм': precipitations,
   'Скорость ветра, м/с': wind_speeds

})

  1. Преобразуем столбец 'Время' в datetime

df['Время'] = pd.to_datetime(df['Время']) df.to_csv('weather_data_openmeteo.csv', index=False, encoding='utf-8') print("Данные сохранены в weather_data_openmeteo.csv")

  1. Создаём фигуру с тремя подграфиками

fig, axes = plt.subplots(3, 1, figsize=(14, 10), sharex=True)

  1. График температуры

axes[0].plot(df['Время'], df['Температура, °C'], color='red', linewidth=1) axes[0].set_title(f'Температура в {CITY_NAME} за последние 7 дней') axes[0].set_ylabel('Температура, °C') axes[0].grid(True)

  1. График осадков

axes[1].bar(df['Время'], df['Осадки, мм'], color='blue', alpha=0.7, width=0.04) axes[1].set_title('Осадки') axes[1].set_ylabel('Осадки, мм') axes[1].grid(True)

  1. График скорости ветра

axes[2].plot(df['Время'], df['Скорость ветра, м/с'], color='green', linewidth=1) axes[2].set_title('Скорость ветра') axes[2].set_ylabel('Скорость ветра, м/с') axes[2].set_xlabel('Дата и время') axes[2].grid(True)

plt.tight_layout() plt.show()]]: Unable to load template 'wiki:iframe import requests import pandas as pd import matplotlib.pyplot as plt from datetime import datetime, timedelta

  1. Координаты города (например, Москва)

LATITUDE = 55.7558 LONGITUDE = 37.6173 CITY_NAME = "Москва"

  1. Даты: последние 7 дней

end_date = datetime.now().date() start_date = end_date - timedelta(days=7)

  1. URL для запроса к Open‑Meteo

URL = (

   f"https://api.open-meteo.com/v1/forecast?"
   f"latitude={LATITUDE}&longitude={LONGITUDE}&"
   f"start_date={start_date}&end_date={end_date}&"
   f"hourly=temperature_2m,precipitation,wind_speed_10m&"
   f"timezone=Europe/Moscow"

) response = requests.get(URL) data = response.json()

  1. Извлекаем временные метки и параметры

timestamps = data['hourly']['time'] temperatures = data['hourly']['temperature_2m'] precipitations = data['hourly']['precipitation'] wind_speeds = data['hourly']['wind_speed_10m']

  1. Создаём DataFrame

df = pd.DataFrame({

   'Время': timestamps,
   'Температура, °C': temperatures,
   'Осадки, мм': precipitations,
   'Скорость ветра, м/с': wind_speeds

})

  1. Преобразуем столбец 'Время' в datetime

df['Время'] = pd.to_datetime(df['Время']) df.to_csv('weather_data_openmeteo.csv', index=False, encoding='utf-8') print("Данные сохранены в weather_data_openmeteo.csv")

  1. Создаём фигуру с тремя подграфиками

fig, axes = plt.subplots(3, 1, figsize=(14, 10), sharex=True)

  1. График температуры

axes[0].plot(df['Время'], df['Температура, °C'], color='red', linewidth=1) axes[0].set_title(f'Температура в {CITY_NAME} за последние 7 дней') axes[0].set_ylabel('Температура, °C') axes[0].grid(True)

  1. График осадков

axes[1].bar(df['Время'], df['Осадки, мм'], color='blue', alpha=0.7, width=0.04) axes[1].set_title('Осадки') axes[1].set_ylabel('Осадки, мм') axes[1].grid(True)

  1. График скорости ветра

axes[2].plot(df['Время'], df['Скорость ветра, м/с'], color='green', linewidth=1) axes[2].set_title('Скорость ветра') axes[2].set_ylabel('Скорость ветра, м/с') axes[2].set_xlabel('Дата и время') axes[2].grid(True)

plt.tight_layout()

plt.show()'