Air quality

action0.open_meteo.air_quality · Open-Meteo docs · AirQualityClient, preset to https://air-quality-api.open-meteo.com

GetV1AirQuality returns pollutants (particulate matter, gases), pollen and the European/US air-quality indices, hourly and as current conditions:

from action0.client.backends.requests import RequestsBackend
from action0.open_meteo.air_quality import (
    AirQualityClient,
    GetV1AirQuality,
    GetV1AirQualityCurrentItem,
    GetV1AirQualityHourlyItem,
)

with RequestsBackend() as backend:
    client = AirQualityClient(backend)
    air = client.send(
        GetV1AirQuality(
            latitude="48.21",
            longitude="16.37",
            hourly=[GetV1AirQualityHourlyItem.PM10, GetV1AirQualityHourlyItem.PM2_5],
            current=[GetV1AirQualityCurrentItem.EUROPEAN_AQI],
            forecast_days=1,
        )
    )

assert air.current is not None and air.hourly is not None
print(air.current.european_aqi)  # 24.0
print(air.hourly.pm10[:3])  # [11.2, 10.8, 10.1]

Notes

  • domains= picks the model domain (GetV1AirQualityDomains: AUTO, CAMS_EUROPE, CAMS_GLOBAL) — Europe has the finer 11 km resolution.

  • Pollen variables (birch, grass, ragweed, …) are in GetV1AirQualityHourlyItem too and are available for Europe during the pollen season.

  • past_days=/start_date=/end_date= work like in the Weather forecast API.