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 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"),
)