Source code for action0.open_meteo.ensemble.models

# generated by action0-client-openapi v0.1.2 from ensemble.yml — do not edit

from __future__ import annotations

import enum
from dataclasses import dataclass
from typing import Any


[docs] class GetV1EnsembleHourlyItem(enum.Enum): """The ``GetV1EnsembleHourlyItem`` values.""" TEMPERATURE_2M = "temperature_2m" RELATIVE_HUMIDITY_2M = "relative_humidity_2m" DEW_POINT_2M = "dew_point_2m" APPARENT_TEMPERATURE = "apparent_temperature" PRECIPITATION = "precipitation" RAIN = "rain" SNOWFALL = "snowfall" SNOW_DEPTH = "snow_depth" WEATHER_CODE = "weather_code" PRESSURE_MSL = "pressure_msl" SURFACE_PRESSURE = "surface_pressure" CLOUD_COVER = "cloud_cover" CLOUD_COVER_LOW = "cloud_cover_low" CLOUD_COVER_MID = "cloud_cover_mid" CLOUD_COVER_HIGH = "cloud_cover_high" VISIBILITY = "visibility" ET0_FAO_EVAPOTRANSPIRATION = "et0_fao_evapotranspiration" VAPOUR_PRESSURE_DEFICIT = "vapour_pressure_deficit" WIND_SPEED_10M = "wind_speed_10m" WIND_SPEED_80M = "wind_speed_80m" WIND_SPEED_100M = "wind_speed_100m" WIND_SPEED_120M = "wind_speed_120m" WIND_DIRECTION_10M = "wind_direction_10m" WIND_DIRECTION_80M = "wind_direction_80m" WIND_DIRECTION_100M = "wind_direction_100m" WIND_DIRECTION_120M = "wind_direction_120m" WIND_GUSTS_10M = "wind_gusts_10m" TEMPERATURE_80M = "temperature_80m" TEMPERATURE_120M = "temperature_120m" SURFACE_TEMPERATURE = "surface_temperature" SOIL_TEMPERATURE_0_TO_10CM = "soil_temperature_0_to_10cm" SOIL_TEMPERATURE_10_TO_40CM = "soil_temperature_10_to_40cm" SOIL_TEMPERATURE_40_TO_100CM = "soil_temperature_40_to_100cm" SOIL_TEMPERATURE_100_TO_200CM = "soil_temperature_100_to_200cm" SOIL_MOISTURE_0_TO_10CM = "soil_moisture_0_to_10cm" SOIL_MOISTURE_10_TO_40CM = "soil_moisture_10_to_40cm" SOIL_MOISTURE_40_TO_100CM = "soil_moisture_40_to_100cm" SOIL_MOISTURE_100_TO_200CM = "soil_moisture_100_to_200cm" SOIL_TEMPERATURE_0_TO_7CM = "soil_temperature_0_to_7cm" SOIL_TEMPERATURE_7_TO_28CM = "soil_temperature_7_to_28cm" SOIL_TEMPERATURE_28_TO_100CM = "soil_temperature_28_to_100cm" SOIL_TEMPERATURE_100_TO_255CM = "soil_temperature_100_to_255cm" SOIL_MOISTURE_0_TO_7CM = "soil_moisture_0_to_7cm" SOIL_MOISTURE_7_TO_28CM = "soil_moisture_7_to_28cm" SOIL_MOISTURE_28_TO_100CM = "soil_moisture_28_to_100cm" SOIL_MOISTURE_100_TO_255CM = "soil_moisture_100_to_255cm" IS_DAY = "is_day" UV_INDEX = "uv_index" UV_INDEX_CLEAR_SKY = "uv_index_clear_sky" TEMPERATURE_2M_MIN = "temperature_2m_min" TEMPERATURE_2M_MAX = "temperature_2m_max" WET_BULB_TEMPERATURE_2M = "wet_bulb_temperature_2m" CAPE = "cape" CONVECTIVE_INHIBITION = "convective_inhibition" FREEZING_LEVEL_HEIGHT = "freezing_level_height" SNOWFALL_HEIGHT = "snowfall_height" SUNSHINE_DURATION = "sunshine_duration" SNOWFALL_WATER_EQUIVALENT = "snowfall_water_equivalent" SNOW_DEPTH_WATER_EQUIVALENT = "snow_depth_water_equivalent" BOUNDARY_LAYER_HEIGHT = "boundary_layer_height" SHORTWAVE_RADIATION = "shortwave_radiation" DIRECT_RADIATION = "direct_radiation" DIFFUSE_RADIATION = "diffuse_radiation" DIRECT_NORMAL_IRRADIANCE = "direct_normal_irradiance" GLOBAL_TILTED_IRRADIANCE = "global_tilted_irradiance" SHORTWAVE_RADIATION_INSTANT = "shortwave_radiation_instant" DIRECT_RADIATION_INSTANT = "direct_radiation_instant" DIFFUSE_RADIATION_INSTANT = "diffuse_radiation_instant" DIRECT_NORMAL_IRRADIANCE_INSTANT = "direct_normal_irradiance_instant" GLOBAL_TILTED_IRRADIANCE_INSTANT = "global_tilted_irradiance_instant" TEMPERATURE_1000H_PA = "temperature_1000hPa" TEMPERATURE_925H_PA = "temperature_925hPa" TEMPERATURE_850H_PA = "temperature_850hPa" TEMPERATURE_700H_PA = "temperature_700hPa" TEMPERATURE_600H_PA = "temperature_600hPa" TEMPERATURE_500H_PA = "temperature_500hPa" TEMPERATURE_400H_PA = "temperature_400hPa" TEMPERATURE_300H_PA = "temperature_300hPa" TEMPERATURE_250H_PA = "temperature_250hPa" TEMPERATURE_200H_PA = "temperature_200hPa" TEMPERATURE_150H_PA = "temperature_150hPa" TEMPERATURE_100H_PA = "temperature_100hPa" TEMPERATURE_50H_PA = "temperature_50hPa" RELATIVE_HUMIDITY_1000H_PA = "relative_humidity_1000hPa" RELATIVE_HUMIDITY_925H_PA = "relative_humidity_925hPa" RELATIVE_HUMIDITY_850H_PA = "relative_humidity_850hPa" RELATIVE_HUMIDITY_700H_PA = "relative_humidity_700hPa" RELATIVE_HUMIDITY_600H_PA = "relative_humidity_600hPa" RELATIVE_HUMIDITY_500H_PA = "relative_humidity_500hPa" RELATIVE_HUMIDITY_400H_PA = "relative_humidity_400hPa" RELATIVE_HUMIDITY_300H_PA = "relative_humidity_300hPa" RELATIVE_HUMIDITY_250H_PA = "relative_humidity_250hPa" RELATIVE_HUMIDITY_200H_PA = "relative_humidity_200hPa" RELATIVE_HUMIDITY_150H_PA = "relative_humidity_150hPa" RELATIVE_HUMIDITY_100H_PA = "relative_humidity_100hPa" RELATIVE_HUMIDITY_50H_PA = "relative_humidity_50hPa" DEW_POINT_1000H_PA = "dew_point_1000hPa" DEW_POINT_925H_PA = "dew_point_925hPa" DEW_POINT_850H_PA = "dew_point_850hPa" DEW_POINT_700H_PA = "dew_point_700hPa" DEW_POINT_600H_PA = "dew_point_600hPa" DEW_POINT_500H_PA = "dew_point_500hPa" DEW_POINT_400H_PA = "dew_point_400hPa" DEW_POINT_300H_PA = "dew_point_300hPa" DEW_POINT_250H_PA = "dew_point_250hPa" DEW_POINT_200H_PA = "dew_point_200hPa" DEW_POINT_150H_PA = "dew_point_150hPa" DEW_POINT_100H_PA = "dew_point_100hPa" DEW_POINT_50H_PA = "dew_point_50hPa" CLOUD_COVER_1000H_PA = "cloud_cover_1000hPa" CLOUD_COVER_925H_PA = "cloud_cover_925hPa" CLOUD_COVER_850H_PA = "cloud_cover_850hPa" CLOUD_COVER_700H_PA = "cloud_cover_700hPa" CLOUD_COVER_600H_PA = "cloud_cover_600hPa" CLOUD_COVER_500H_PA = "cloud_cover_500hPa" CLOUD_COVER_400H_PA = "cloud_cover_400hPa" CLOUD_COVER_300H_PA = "cloud_cover_300hPa" CLOUD_COVER_250H_PA = "cloud_cover_250hPa" CLOUD_COVER_200H_PA = "cloud_cover_200hPa" CLOUD_COVER_150H_PA = "cloud_cover_150hPa" CLOUD_COVER_100H_PA = "cloud_cover_100hPa" CLOUD_COVER_50H_PA = "cloud_cover_50hPa" WIND_SPEED_1000H_PA = "wind_speed_1000hPa" WIND_SPEED_925H_PA = "wind_speed_925hPa" WIND_SPEED_850H_PA = "wind_speed_850hPa" WIND_SPEED_700H_PA = "wind_speed_700hPa" WIND_SPEED_600H_PA = "wind_speed_600hPa" WIND_SPEED_500H_PA = "wind_speed_500hPa" WIND_SPEED_400H_PA = "wind_speed_400hPa" WIND_SPEED_300H_PA = "wind_speed_300hPa" WIND_SPEED_250H_PA = "wind_speed_250hPa" WIND_SPEED_200H_PA = "wind_speed_200hPa" WIND_SPEED_150H_PA = "wind_speed_150hPa" WIND_SPEED_100H_PA = "wind_speed_100hPa" WIND_SPEED_50H_PA = "wind_speed_50hPa" WIND_DIRECTION_1000H_PA = "wind_direction_1000hPa" WIND_DIRECTION_925H_PA = "wind_direction_925hPa" WIND_DIRECTION_850H_PA = "wind_direction_850hPa" WIND_DIRECTION_700H_PA = "wind_direction_700hPa" WIND_DIRECTION_600H_PA = "wind_direction_600hPa" WIND_DIRECTION_500H_PA = "wind_direction_500hPa" WIND_DIRECTION_400H_PA = "wind_direction_400hPa" WIND_DIRECTION_300H_PA = "wind_direction_300hPa" WIND_DIRECTION_250H_PA = "wind_direction_250hPa" WIND_DIRECTION_200H_PA = "wind_direction_200hPa" WIND_DIRECTION_150H_PA = "wind_direction_150hPa" WIND_DIRECTION_100H_PA = "wind_direction_100hPa" WIND_DIRECTION_50H_PA = "wind_direction_50hPa" VERTICAL_VELOCITY_1000H_PA = "vertical_velocity_1000hPa" VERTICAL_VELOCITY_925H_PA = "vertical_velocity_925hPa" VERTICAL_VELOCITY_850H_PA = "vertical_velocity_850hPa" VERTICAL_VELOCITY_700H_PA = "vertical_velocity_700hPa" VERTICAL_VELOCITY_600H_PA = "vertical_velocity_600hPa" VERTICAL_VELOCITY_500H_PA = "vertical_velocity_500hPa" VERTICAL_VELOCITY_400H_PA = "vertical_velocity_400hPa" VERTICAL_VELOCITY_300H_PA = "vertical_velocity_300hPa" VERTICAL_VELOCITY_250H_PA = "vertical_velocity_250hPa" VERTICAL_VELOCITY_200H_PA = "vertical_velocity_200hPa" VERTICAL_VELOCITY_150H_PA = "vertical_velocity_150hPa" VERTICAL_VELOCITY_100H_PA = "vertical_velocity_100hPa" VERTICAL_VELOCITY_50H_PA = "vertical_velocity_50hPa" GEOPOTENTIAL_HEIGHT_1000H_PA = "geopotential_height_1000hPa" GEOPOTENTIAL_HEIGHT_925H_PA = "geopotential_height_925hPa" GEOPOTENTIAL_HEIGHT_850H_PA = "geopotential_height_850hPa" GEOPOTENTIAL_HEIGHT_700H_PA = "geopotential_height_700hPa" GEOPOTENTIAL_HEIGHT_600H_PA = "geopotential_height_600hPa" GEOPOTENTIAL_HEIGHT_500H_PA = "geopotential_height_500hPa" GEOPOTENTIAL_HEIGHT_400H_PA = "geopotential_height_400hPa" GEOPOTENTIAL_HEIGHT_300H_PA = "geopotential_height_300hPa" GEOPOTENTIAL_HEIGHT_250H_PA = "geopotential_height_250hPa" GEOPOTENTIAL_HEIGHT_200H_PA = "geopotential_height_200hPa" GEOPOTENTIAL_HEIGHT_150H_PA = "geopotential_height_150hPa" GEOPOTENTIAL_HEIGHT_100H_PA = "geopotential_height_100hPa" GEOPOTENTIAL_HEIGHT_50H_PA = "geopotential_height_50hPa"
[docs] class GetV1EnsembleDailyItem(enum.Enum): """The ``GetV1EnsembleDailyItem`` values.""" TEMPERATURE_2M_MEAN = "temperature_2m_mean" TEMPERATURE_2M_MIN = "temperature_2m_min" TEMPERATURE_2M_MAX = "temperature_2m_max" APPARENT_TEMPERATURE_MEAN = "apparent_temperature_mean" APPARENT_TEMPERATURE_MIN = "apparent_temperature_min" APPARENT_TEMPERATURE_MAX = "apparent_temperature_max" WIND_SPEED_10M_MEAN = "wind_speed_10m_mean" WIND_SPEED_10M_MIN = "wind_speed_10m_min" WIND_SPEED_10M_MAX = "wind_speed_10m_max" WIND_DIRECTION_10M_DOMINANT = "wind_direction_10m_dominant" WIND_GUSTS_10M_MEAN = "wind_gusts_10m_mean" WIND_GUSTS_10M_MIN = "wind_gusts_10m_min" WIND_GUSTS_10M_MAX = "wind_gusts_10m_max" WIND_SPEED_100M_MEAN = "wind_speed_100m_mean" WIND_SPEED_100M_MIN = "wind_speed_100m_min" WIND_SPEED_100M_MAX = "wind_speed_100m_max" WIND_DIRECTION_100M_DOMINANT = "wind_direction_100m_dominant" CLOUD_COVER_MEAN = "cloud_cover_mean" CLOUD_COVER_MIN = "cloud_cover_min" CLOUD_COVER_MAX = "cloud_cover_max" PRECIPITATION_SUM = "precipitation_sum" PRECIPITATION_HOURS = "precipitation_hours" RAIN_SUM = "rain_sum" SNOWFALL_SUM = "snowfall_sum" PRESSURE_MSL_MEAN = "pressure_msl_mean" PRESSURE_MSL_MIN = "pressure_msl_min" PRESSURE_MSL_MAX = "pressure_msl_max" SURFACE_PRESSURE_MEAN = "surface_pressure_mean" SURFACE_PRESSURE_MIN = "surface_pressure_min" SURFACE_PRESSURE_MAX = "surface_pressure_max" RELATIVE_HUMIDITY_2M_MEAN = "relative_humidity_2m_mean" RELATIVE_HUMIDITY_2M_MIN = "relative_humidity_2m_min" RELATIVE_HUMIDITY_2M_MAX = "relative_humidity_2m_max" CAPE_MEAN = "cape_mean" CAPE_MIN = "cape_min" CAPE_MAX = "cape_max" DEW_POINT_2M_MEAN = "dew_point_2m_mean" DEW_POINT_2M_MIN = "dew_point_2m_min" DEW_POINT_2M_MAX = "dew_point_2m_max" ET0_FAO_EVAPOTRANSPIRATION = "et0_fao_evapotranspiration" SHORTWAVE_RADIATION_SUM = "shortwave_radiation_sum"
[docs] class GetV1EnsembleTemperatureUnit(enum.Enum): """The ``GetV1EnsembleTemperatureUnit`` values.""" CELSIUS = "celsius" FAHRENHEIT = "fahrenheit"
[docs] class GetV1EnsembleWindSpeedUnit(enum.Enum): """The ``GetV1EnsembleWindSpeedUnit`` values.""" KMH = "kmh" MS = "ms" MPH = "mph" KN = "kn"
[docs] class GetV1EnsemblePrecipitationUnit(enum.Enum): """The ``GetV1EnsemblePrecipitationUnit`` values.""" MM = "mm" INCH = "inch"
[docs] class GetV1EnsembleTimeformat(enum.Enum): """The ``GetV1EnsembleTimeformat`` values.""" ISO8601 = "iso8601" UNIXTIME = "unixtime"
[docs] class GetV1EnsembleCellSelection(enum.Enum): """The ``GetV1EnsembleCellSelection`` values.""" LAND = "land" SEA = "sea" NEAREST = "nearest"
[docs] class GetV1EnsembleModelsItem(enum.Enum): """The ``GetV1EnsembleModelsItem`` values.""" DWD_ICON_SEAMLESS_EPS = "dwd_icon_seamless_eps" DWD_ICON_GLOBAL_EPS = "dwd_icon_global_eps" DWD_ICON_EU_EPS = "dwd_icon_eu_eps" DWD_ICON_D2_EPS = "dwd_icon_d2_eps" NCEP_GEFS_SEAMLESS = "ncep_gefs_seamless" NCEP_GEFS025 = "ncep_gefs025" NCEP_GEFS05 = "ncep_gefs05" NCEP_AIGEFS025 = "ncep_aigefs025" ECMWF_IFS025_ENSEMBLE = "ecmwf_ifs025_ensemble" ECMWF_AIFS025_ENSEMBLE = "ecmwf_aifs025_ensemble" CMC_GEM_GEPS = "cmc_gem_geps" BOM_ACCESS_GLOBAL_ENSEMBLE = "bom_access_global_ensemble" UKMO_GLOBAL_ENSEMBLE_20KM = "ukmo_global_ensemble_20km" UKMO_UK_ENSEMBLE_2KM = "ukmo_uk_ensemble_2km" METEOSWISS_ICON_CH1_ENSEMBLE = "meteoswiss_icon_ch1_ensemble" METEOSWISS_ICON_CH2_ENSEMBLE = "meteoswiss_icon_ch2_ensemble"
[docs] class GetV1EnsembleTemporalResolution(enum.Enum): """The ``GetV1EnsembleTemporalResolution`` values.""" NATIVE = "native" HOURLY = "hourly" HOURLY_3 = "hourly_3" HOURLY_6 = "hourly_6"
[docs] @dataclass class GetV1EnsembleResponseHourly: """The ``GetV1EnsembleResponseHourly`` model.""" time: list[str] | None = None #: The payload keys not declared under properties. additional_properties: dict[str, list[float]] | None = None
# payload keys outside this set land in additional_properties _GET_V1_ENSEMBLE_RESPONSE_HOURLY_PROPERTIES = {"time"}
[docs] def get_v1_ensemble_response_hourly_from_json(data: Any) -> GetV1EnsembleResponseHourly: """ Build a :py:class:`GetV1EnsembleResponseHourly` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1EnsembleResponseHourly """ return GetV1EnsembleResponseHourly( time=data.get("time"), additional_properties=( { key: value for key, value in data.items() if key not in _GET_V1_ENSEMBLE_RESPONSE_HOURLY_PROPERTIES } ), )
[docs] @dataclass class GetV1EnsembleResponseHourlyUnits: """The ``GetV1EnsembleResponseHourlyUnits`` model.""" time: str | None = None #: The payload keys not declared under properties. additional_properties: dict[str, str] | None = None
# payload keys outside this set land in additional_properties _GET_V1_ENSEMBLE_RESPONSE_HOURLY_UNITS_PROPERTIES = {"time"}
[docs] def get_v1_ensemble_response_hourly_units_from_json(data: Any) -> GetV1EnsembleResponseHourlyUnits: """ Build a :py:class:`GetV1EnsembleResponseHourlyUnits` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1EnsembleResponseHourlyUnits """ return GetV1EnsembleResponseHourlyUnits( time=data.get("time"), additional_properties=( { key: value for key, value in data.items() if key not in _GET_V1_ENSEMBLE_RESPONSE_HOURLY_UNITS_PROPERTIES } ), )
[docs] @dataclass class GetV1EnsembleResponseDaily: """The ``GetV1EnsembleResponseDaily`` model.""" time: list[str] | None = None #: The payload keys not declared under properties. additional_properties: dict[str, list[float]] | None = None
# payload keys outside this set land in additional_properties _GET_V1_ENSEMBLE_RESPONSE_DAILY_PROPERTIES = {"time"}
[docs] def get_v1_ensemble_response_daily_from_json(data: Any) -> GetV1EnsembleResponseDaily: """ Build a :py:class:`GetV1EnsembleResponseDaily` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1EnsembleResponseDaily """ return GetV1EnsembleResponseDaily( time=data.get("time"), additional_properties=( { key: value for key, value in data.items() if key not in _GET_V1_ENSEMBLE_RESPONSE_DAILY_PROPERTIES } ), )
[docs] @dataclass class GetV1EnsembleResponseDailyUnits: """The ``GetV1EnsembleResponseDailyUnits`` model.""" time: str | None = None #: The payload keys not declared under properties. additional_properties: dict[str, str] | None = None
# payload keys outside this set land in additional_properties _GET_V1_ENSEMBLE_RESPONSE_DAILY_UNITS_PROPERTIES = {"time"}
[docs] def get_v1_ensemble_response_daily_units_from_json(data: Any) -> GetV1EnsembleResponseDailyUnits: """ Build a :py:class:`GetV1EnsembleResponseDailyUnits` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1EnsembleResponseDailyUnits """ return GetV1EnsembleResponseDailyUnits( time=data.get("time"), additional_properties=( { key: value for key, value in data.items() if key not in _GET_V1_ENSEMBLE_RESPONSE_DAILY_UNITS_PROPERTIES } ), )
[docs] @dataclass class GetV1EnsembleResponse: """The ``GetV1EnsembleResponse`` model.""" latitude: float | None = None longitude: float | None = None elevation: float | None = None generationtime_ms: float | None = None utc_offset_seconds: int | None = None timezone: str | None = None timezone_abbreviation: str | None = None hourly: GetV1EnsembleResponseHourly | None = None hourly_units: GetV1EnsembleResponseHourlyUnits | None = None daily: GetV1EnsembleResponseDaily | None = None daily_units: GetV1EnsembleResponseDailyUnits | None = None
[docs] def get_v1_ensemble_response_from_json(data: Any) -> GetV1EnsembleResponse: """ Build a :py:class:`GetV1EnsembleResponse` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1EnsembleResponse """ return GetV1EnsembleResponse( latitude=data.get("latitude"), longitude=data.get("longitude"), elevation=data.get("elevation"), generationtime_ms=data.get("generationtime_ms"), utc_offset_seconds=data.get("utc_offset_seconds"), timezone=data.get("timezone"), timezone_abbreviation=data.get("timezone_abbreviation"), hourly=( get_v1_ensemble_response_hourly_from_json(data["hourly"]) if data.get("hourly") is not None else None ), hourly_units=( get_v1_ensemble_response_hourly_units_from_json(data["hourly_units"]) if data.get("hourly_units") is not None else None ), daily=( get_v1_ensemble_response_daily_from_json(data["daily"]) if data.get("daily") is not None else None ), daily_units=( get_v1_ensemble_response_daily_units_from_json(data["daily_units"]) if data.get("daily_units") is not None else None ), )
[docs] @dataclass class GetV1EnsembleError: """The ``GetV1EnsembleError`` model.""" error: bool | None = None reason: str | None = None
[docs] def get_v1_ensemble_error_from_json(data: Any) -> GetV1EnsembleError: """ Build a :py:class:`GetV1EnsembleError` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1EnsembleError """ return GetV1EnsembleError( error=data.get("error"), reason=data.get("reason"), )