wwa/py/1.py

61 lines
2.3 KiB
Python

import requests
import pandas as pd
import os
# Funkcja do pobierania danych z API GIOŚ i eksportu do CSV
def fetch_gios_data_to_csv(start_date, end_date, pollutants, output_file):
"""
Pobiera dane z API GIOŚ i zapisuje je do pliku CSV.
:param start_date: Data początkowa w formacie 'YYYY-MM-DD'.
:param end_date: Data końcowa w formacie 'YYYY-MM-DD'.
:param pollutants: Lista identyfikatorów zanieczyszczeń (np. ["PM10", "WWA"]).
:param output_file: Nazwa pliku wynikowego CSV.
"""
base_url = "https://powietrze.gios.gov.pl/pjp-api/rest/data/getData"
# Lista przykładowych ID stacji w Polsce (dostępne w API GIOŚ)
station_ids = [101, 102, 103, 104] # Zastąp ID rzeczywistymi z API
all_data = []
for station_id in station_ids:
for pollutant in pollutants:
try:
print(f"Pobieranie danych dla stacji {station_id} i zanieczyszczenia {pollutant}...")
url = f"{base_url}/{station_id}/{pollutant}/{start_date}/{end_date}"
response = requests.get(url)
response.raise_for_status() # Wyjątek, jeśli status != 200
data = response.json()
if "values" in data:
for measurement in data["values"]:
if measurement["value"] is not None:
all_data.append({
"station_id": station_id,
"pollutant": pollutant,
"date": measurement["date"],
"value": measurement["value"]
})
except Exception as e:
print(f"Błąd podczas pobierania danych dla stacji {station_id}: {e}")
# Eksport danych do CSV
if all_data:
df = pd.DataFrame(all_data)
df.to_csv(output_file, index=False)
print(f"Dane zapisane w pliku: {output_file}")
else:
print("Brak danych do zapisania.")
# Parametry wejściowe
start_date = "2023-01-01" # Początek okresu pomiarów
end_date = "2023-12-31" # Koniec okresu pomiarów
pollutants = ["PM10", "WWA"] # Lista zanieczyszczeń
output_file = "gios_data.csv" # Plik wynikowy
# Wywołanie funkcji
fetch_gios_data_to_csv(start_date, end_date, pollutants, output_file)