Source code for action0.open_meteo.climate.models

# 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 GetV1ClimateTimeformat(enum.Enum): """The ``GetV1ClimateTimeformat`` values.""" ISO8601 = "iso8601" UNIXTIME = "unixtime"
[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"), )