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)