# generated by action0-client-openapi v0.1.2 from climate.yml — do not edit
from __future__ import annotations
import enum
from dataclasses import dataclass
from typing import Any
[docs]
class GetV1ClimateDailyItem(enum.Enum):
"""The ``GetV1ClimateDailyItem`` values."""
TEMPERATURE_2M_MAX = "temperature_2m_max"
TEMPERATURE_2M_MIN = "temperature_2m_min"
TEMPERATURE_2M_MEAN = "temperature_2m_mean"
PRESSURE_MSL_MEAN = "pressure_msl_mean"
CLOUD_COVER_MEAN = "cloud_cover_mean"
PRECIPITATION_SUM = "precipitation_sum"
SNOWFALL_WATER_EQUIVALENT_SUM = "snowfall_water_equivalent_sum"
SNOWFALL_SUM = "snowfall_sum"
RAIN_SUM = "rain_sum"
RELATIVE_HUMIDITY_2M_MIN = "relative_humidity_2m_min"
RELATIVE_HUMIDITY_2M_MAX = "relative_humidity_2m_max"
RELATIVE_HUMIDITY_2M_MEAN = "relative_humidity_2m_mean"
WIND_SPEED_10M_MEAN = "wind_speed_10m_mean"
WIND_SPEED_10M_MAX = "wind_speed_10m_max"
WIND_GUSTS_10M_MEAN = "wind_gusts_10m_mean"
WIND_GUSTS_10M_MAX = "wind_gusts_10m_max"
SOIL_MOISTURE_0_TO_10CM_MEAN = "soil_moisture_0_to_10cm_mean"
SOIL_MOISTURE_0_TO_100CM_MEAN = "soil_moisture_0_to_100cm_mean"
SOIL_MOISTURE_0_TO_7CM_MEAN = "soil_moisture_0_to_7cm_mean"
SOIL_MOISTURE_7_TO_28CM_MEAN = "soil_moisture_7_to_28cm_mean"
SOIL_MOISTURE_28_TO_100CM_MEAN = "soil_moisture_28_to_100cm_mean"
SOIL_MOISTURE_INDEX_0_TO_7CM_MEAN = "soil_moisture_index_0_to_7cm_mean"
SOIL_MOISTURE_INDEX_0_TO_100CM_MEAN = "soil_moisture_index_0_to_100cm_mean"
SOIL_MOISTURE_INDEX_7_TO_28CM_MEAN = "soil_moisture_index_7_to_28cm_mean"
SOIL_MOISTURE_INDEX_28_TO_100CM_MEAN = "soil_moisture_index_28_to_100cm_mean"
SOIL_TEMPERATURE_0_TO_100CM_MEAN = "soil_temperature_0_to_100cm_mean"
SOIL_TEMPERATURE_0_TO_7CM_MEAN = "soil_temperature_0_to_7cm_mean"
SOIL_TEMPERATURE_7_TO_28CM_MEAN = "soil_temperature_7_to_28cm_mean"
SOIL_TEMPERATURE_28_TO_100CM_MEAN = "soil_temperature_28_to_100cm_mean"
SHORTWAVE_RADIATION_SUM = "shortwave_radiation_sum"
ET0_FAO_EVAPOTRANSPIRATION_SUM = "et0_fao_evapotranspiration_sum"
VAPOUR_PRESSURE_DEFICIT_MAX = "vapour_pressure_deficit_max"
DEW_POINT_2M_MEAN = "dew_point_2m_mean"
DEW_POINT_2M_MAX = "dew_point_2m_max"
DEW_POINT_2M_MIN = "dew_point_2m_min"
GROWING_DEGREE_DAYS_BASE_0_LIMIT_50 = "growing_degree_days_base_0_limit_50"
LEAF_WETNESS_PROBABILITY_MEAN = "leaf_wetness_probability_mean"
DAYLIGHT_DURATION = "daylight_duration"
[docs]
class GetV1ClimateTemperatureUnit(enum.Enum):
"""The ``GetV1ClimateTemperatureUnit`` values."""
CELSIUS = "celsius"
FAHRENHEIT = "fahrenheit"
[docs]
class GetV1ClimateWindSpeedUnit(enum.Enum):
"""The ``GetV1ClimateWindSpeedUnit`` values."""
KMH = "kmh"
MS = "ms"
MPH = "mph"
KN = "kn"
[docs]
class GetV1ClimatePrecipitationUnit(enum.Enum):
"""The ``GetV1ClimatePrecipitationUnit`` values."""
MM = "mm"
INCH = "inch"
[docs]
class GetV1ClimateCellSelection(enum.Enum):
"""The ``GetV1ClimateCellSelection`` values."""
LAND = "land"
SEA = "sea"
NEAREST = "nearest"
[docs]
class GetV1ClimateModelsItem(enum.Enum):
"""The ``GetV1ClimateModelsItem`` values."""
CMCC_CM2_VHR4 = "CMCC_CM2_VHR4"
FGOALS_F3_H = "FGOALS_f3_H"
HI_RAM_SIT_HR = "HiRAM_SIT_HR"
MRI_AGCM3_2_S = "MRI_AGCM3_2_S"
EC_EARTH3_P_HR = "EC_Earth3P_HR"
MPI_ESM1_2_XR = "MPI_ESM1_2_XR"
NICAM16_8_S = "NICAM16_8S"
[docs]
@dataclass
class GetV1ClimateResponseDaily:
"""The ``GetV1ClimateResponseDaily`` model."""
time: list[str] | None = None
temperature_2m_max: list[float] | None = None
temperature_2m_min: list[float] | None = None
temperature_2m_mean: list[float] | None = None
pressure_msl_mean: list[float] | None = None
cloud_cover_mean: list[float] | None = None
precipitation_sum: list[float] | None = None
snowfall_water_equivalent_sum: list[float] | None = None
snowfall_sum: list[float] | None = None
rain_sum: list[float] | None = None
relative_humidity_2m_min: list[float] | None = None
relative_humidity_2m_max: list[float] | None = None
relative_humidity_2m_mean: list[float] | None = None
wind_speed_10m_mean: list[float] | None = None
wind_speed_10m_max: list[float] | None = None
wind_gusts_10m_mean: list[float] | None = None
wind_gusts_10m_max: list[float] | None = None
soil_moisture_0_to_10cm_mean: list[float] | None = None
soil_moisture_0_to_100cm_mean: list[float] | None = None
soil_moisture_0_to_7cm_mean: list[float] | None = None
soil_moisture_7_to_28cm_mean: list[float] | None = None
soil_moisture_28_to_100cm_mean: list[float] | None = None
soil_moisture_index_0_to_7cm_mean: list[float] | None = None
soil_moisture_index_0_to_100cm_mean: list[float] | None = None
soil_moisture_index_7_to_28cm_mean: list[float] | None = None
soil_moisture_index_28_to_100cm_mean: list[float] | None = None
soil_temperature_0_to_100cm_mean: list[float] | None = None
soil_temperature_0_to_7cm_mean: list[float] | None = None
soil_temperature_7_to_28cm_mean: list[float] | None = None
soil_temperature_28_to_100cm_mean: list[float] | None = None
shortwave_radiation_sum: list[float] | None = None
et0_fao_evapotranspiration_sum: list[float] | None = None
vapour_pressure_deficit_max: list[float] | None = None
dew_point_2m_mean: list[float] | None = None
dew_point_2m_max: list[float] | None = None
dew_point_2m_min: list[float] | None = None
growing_degree_days_base_0_limit_50: list[float] | None = None
leaf_wetness_probability_mean: list[float] | None = None
daylight_duration: list[float] | None = None
[docs]
def get_v1_climate_response_daily_from_json(data: Any) -> GetV1ClimateResponseDaily:
"""
Build a :py:class:`GetV1ClimateResponseDaily` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ClimateResponseDaily
"""
return GetV1ClimateResponseDaily(
time=data.get("time"),
temperature_2m_max=data.get("temperature_2m_max"),
temperature_2m_min=data.get("temperature_2m_min"),
temperature_2m_mean=data.get("temperature_2m_mean"),
pressure_msl_mean=data.get("pressure_msl_mean"),
cloud_cover_mean=data.get("cloud_cover_mean"),
precipitation_sum=data.get("precipitation_sum"),
snowfall_water_equivalent_sum=data.get("snowfall_water_equivalent_sum"),
snowfall_sum=data.get("snowfall_sum"),
rain_sum=data.get("rain_sum"),
relative_humidity_2m_min=data.get("relative_humidity_2m_min"),
relative_humidity_2m_max=data.get("relative_humidity_2m_max"),
relative_humidity_2m_mean=data.get("relative_humidity_2m_mean"),
wind_speed_10m_mean=data.get("wind_speed_10m_mean"),
wind_speed_10m_max=data.get("wind_speed_10m_max"),
wind_gusts_10m_mean=data.get("wind_gusts_10m_mean"),
wind_gusts_10m_max=data.get("wind_gusts_10m_max"),
soil_moisture_0_to_10cm_mean=data.get("soil_moisture_0_to_10cm_mean"),
soil_moisture_0_to_100cm_mean=data.get("soil_moisture_0_to_100cm_mean"),
soil_moisture_0_to_7cm_mean=data.get("soil_moisture_0_to_7cm_mean"),
soil_moisture_7_to_28cm_mean=data.get("soil_moisture_7_to_28cm_mean"),
soil_moisture_28_to_100cm_mean=data.get("soil_moisture_28_to_100cm_mean"),
soil_moisture_index_0_to_7cm_mean=data.get("soil_moisture_index_0_to_7cm_mean"),
soil_moisture_index_0_to_100cm_mean=data.get("soil_moisture_index_0_to_100cm_mean"),
soil_moisture_index_7_to_28cm_mean=data.get("soil_moisture_index_7_to_28cm_mean"),
soil_moisture_index_28_to_100cm_mean=data.get("soil_moisture_index_28_to_100cm_mean"),
soil_temperature_0_to_100cm_mean=data.get("soil_temperature_0_to_100cm_mean"),
soil_temperature_0_to_7cm_mean=data.get("soil_temperature_0_to_7cm_mean"),
soil_temperature_7_to_28cm_mean=data.get("soil_temperature_7_to_28cm_mean"),
soil_temperature_28_to_100cm_mean=data.get("soil_temperature_28_to_100cm_mean"),
shortwave_radiation_sum=data.get("shortwave_radiation_sum"),
et0_fao_evapotranspiration_sum=data.get("et0_fao_evapotranspiration_sum"),
vapour_pressure_deficit_max=data.get("vapour_pressure_deficit_max"),
dew_point_2m_mean=data.get("dew_point_2m_mean"),
dew_point_2m_max=data.get("dew_point_2m_max"),
dew_point_2m_min=data.get("dew_point_2m_min"),
growing_degree_days_base_0_limit_50=data.get("growing_degree_days_base_0_limit_50"),
leaf_wetness_probability_mean=data.get("leaf_wetness_probability_mean"),
daylight_duration=data.get("daylight_duration"),
)
[docs]
@dataclass
class GetV1ClimateResponseDailyUnits:
"""The ``GetV1ClimateResponseDailyUnits`` model."""
time: str | None = None
temperature_2m_max: str | None = None
temperature_2m_min: str | None = None
temperature_2m_mean: str | None = None
pressure_msl_mean: str | None = None
cloud_cover_mean: str | None = None
precipitation_sum: str | None = None
snowfall_water_equivalent_sum: str | None = None
snowfall_sum: str | None = None
rain_sum: str | None = None
relative_humidity_2m_min: str | None = None
relative_humidity_2m_max: str | None = None
relative_humidity_2m_mean: str | None = None
wind_speed_10m_mean: str | None = None
wind_speed_10m_max: str | None = None
wind_gusts_10m_mean: str | None = None
wind_gusts_10m_max: str | None = None
soil_moisture_0_to_10cm_mean: str | None = None
soil_moisture_0_to_100cm_mean: str | None = None
soil_moisture_0_to_7cm_mean: str | None = None
soil_moisture_7_to_28cm_mean: str | None = None
soil_moisture_28_to_100cm_mean: str | None = None
soil_moisture_index_0_to_7cm_mean: str | None = None
soil_moisture_index_0_to_100cm_mean: str | None = None
soil_moisture_index_7_to_28cm_mean: str | None = None
soil_moisture_index_28_to_100cm_mean: str | None = None
soil_temperature_0_to_100cm_mean: str | None = None
soil_temperature_0_to_7cm_mean: str | None = None
soil_temperature_7_to_28cm_mean: str | None = None
soil_temperature_28_to_100cm_mean: str | None = None
shortwave_radiation_sum: str | None = None
et0_fao_evapotranspiration_sum: str | None = None
vapour_pressure_deficit_max: str | None = None
dew_point_2m_mean: str | None = None
dew_point_2m_max: str | None = None
dew_point_2m_min: str | None = None
growing_degree_days_base_0_limit_50: str | None = None
leaf_wetness_probability_mean: str | None = None
daylight_duration: str | None = None
[docs]
def get_v1_climate_response_daily_units_from_json(data: Any) -> GetV1ClimateResponseDailyUnits:
"""
Build a :py:class:`GetV1ClimateResponseDailyUnits` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ClimateResponseDailyUnits
"""
return GetV1ClimateResponseDailyUnits(
time=data.get("time"),
temperature_2m_max=data.get("temperature_2m_max"),
temperature_2m_min=data.get("temperature_2m_min"),
temperature_2m_mean=data.get("temperature_2m_mean"),
pressure_msl_mean=data.get("pressure_msl_mean"),
cloud_cover_mean=data.get("cloud_cover_mean"),
precipitation_sum=data.get("precipitation_sum"),
snowfall_water_equivalent_sum=data.get("snowfall_water_equivalent_sum"),
snowfall_sum=data.get("snowfall_sum"),
rain_sum=data.get("rain_sum"),
relative_humidity_2m_min=data.get("relative_humidity_2m_min"),
relative_humidity_2m_max=data.get("relative_humidity_2m_max"),
relative_humidity_2m_mean=data.get("relative_humidity_2m_mean"),
wind_speed_10m_mean=data.get("wind_speed_10m_mean"),
wind_speed_10m_max=data.get("wind_speed_10m_max"),
wind_gusts_10m_mean=data.get("wind_gusts_10m_mean"),
wind_gusts_10m_max=data.get("wind_gusts_10m_max"),
soil_moisture_0_to_10cm_mean=data.get("soil_moisture_0_to_10cm_mean"),
soil_moisture_0_to_100cm_mean=data.get("soil_moisture_0_to_100cm_mean"),
soil_moisture_0_to_7cm_mean=data.get("soil_moisture_0_to_7cm_mean"),
soil_moisture_7_to_28cm_mean=data.get("soil_moisture_7_to_28cm_mean"),
soil_moisture_28_to_100cm_mean=data.get("soil_moisture_28_to_100cm_mean"),
soil_moisture_index_0_to_7cm_mean=data.get("soil_moisture_index_0_to_7cm_mean"),
soil_moisture_index_0_to_100cm_mean=data.get("soil_moisture_index_0_to_100cm_mean"),
soil_moisture_index_7_to_28cm_mean=data.get("soil_moisture_index_7_to_28cm_mean"),
soil_moisture_index_28_to_100cm_mean=data.get("soil_moisture_index_28_to_100cm_mean"),
soil_temperature_0_to_100cm_mean=data.get("soil_temperature_0_to_100cm_mean"),
soil_temperature_0_to_7cm_mean=data.get("soil_temperature_0_to_7cm_mean"),
soil_temperature_7_to_28cm_mean=data.get("soil_temperature_7_to_28cm_mean"),
soil_temperature_28_to_100cm_mean=data.get("soil_temperature_28_to_100cm_mean"),
shortwave_radiation_sum=data.get("shortwave_radiation_sum"),
et0_fao_evapotranspiration_sum=data.get("et0_fao_evapotranspiration_sum"),
vapour_pressure_deficit_max=data.get("vapour_pressure_deficit_max"),
dew_point_2m_mean=data.get("dew_point_2m_mean"),
dew_point_2m_max=data.get("dew_point_2m_max"),
dew_point_2m_min=data.get("dew_point_2m_min"),
growing_degree_days_base_0_limit_50=data.get("growing_degree_days_base_0_limit_50"),
leaf_wetness_probability_mean=data.get("leaf_wetness_probability_mean"),
daylight_duration=data.get("daylight_duration"),
)
[docs]
@dataclass
class GetV1ClimateResponse:
"""The ``GetV1ClimateResponse`` 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
daily: GetV1ClimateResponseDaily | None = None
daily_units: GetV1ClimateResponseDailyUnits | None = None
[docs]
def get_v1_climate_response_from_json(data: Any) -> GetV1ClimateResponse:
"""
Build a :py:class:`GetV1ClimateResponse` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ClimateResponse
"""
return GetV1ClimateResponse(
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"),
daily=(
get_v1_climate_response_daily_from_json(data["daily"])
if data.get("daily") is not None
else None
),
daily_units=(
get_v1_climate_response_daily_units_from_json(data["daily_units"])
if data.get("daily_units") is not None
else None
),
)
[docs]
@dataclass
class GetV1ClimateError:
"""The ``GetV1ClimateError`` model."""
error: bool | None = None
reason: str | None = None
[docs]
def get_v1_climate_error_from_json(data: Any) -> GetV1ClimateError:
"""
Build a :py:class:`GetV1ClimateError` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ClimateError
"""
return GetV1ClimateError(
error=data.get("error"),
reason=data.get("reason"),
)