# generated by action0-client-openapi v0.1.2 from historical-weather.yml — do not edit
from __future__ import annotations
import enum
from dataclasses import dataclass
from typing import Any
[docs]
class GetV1ArchiveHourlyItem(enum.Enum):
"""The ``GetV1ArchiveHourlyItem`` 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"
ET0_FAO_EVAPOTRANSPIRATION = "et0_fao_evapotranspiration"
VAPOUR_PRESSURE_DEFICIT = "vapour_pressure_deficit"
WIND_SPEED_10M = "wind_speed_10m"
WIND_SPEED_100M = "wind_speed_100m"
WIND_DIRECTION_10M = "wind_direction_10m"
WIND_DIRECTION_100M = "wind_direction_100m"
WIND_GUSTS_10M = "wind_gusts_10m"
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"
SOIL_MOISTURE_0_TO_100CM = "soil_moisture_0_to_100cm"
SOIL_TEMPERATURE_0_TO_100CM = "soil_temperature_0_to_100cm"
SOIL_MOISTURE_INDEX_0_TO_7CM = "soil_moisture_index_0_to_7cm"
SOIL_MOISTURE_INDEX_7_TO_28CM = "soil_moisture_index_7_to_28cm"
SOIL_MOISTURE_INDEX_28_TO_100CM = "soil_moisture_index_28_to_100cm"
SOIL_MOISTURE_INDEX_0_TO_100CM = "soil_moisture_index_0_to_100cm"
BOUNDARY_LAYER_HEIGHT = "boundary_layer_height"
WET_BULB_TEMPERATURE_2M = "wet_bulb_temperature_2m"
TOTAL_COLUMN_INTEGRATED_WATER_VAPOUR = "total_column_integrated_water_vapour"
IS_DAY = "is_day"
SUNSHINE_DURATION = "sunshine_duration"
GROWING_DEGREE_DAYS_BASE_0_LIMIT_50 = "growing_degree_days_base_0_limit_50"
LEAF_WETNESS_PROBABILITY = "leaf_wetness_probability"
WAVE_HEIGHT = "wave_height"
WAVE_DIRECTION = "wave_direction"
WAVE_PERIOD = "wave_period"
SEA_SURFACE_TEMPERATURE = "sea_surface_temperature"
SHORTWAVE_RADIATION = "shortwave_radiation"
DIRECT_RADIATION = "direct_radiation"
DIFFUSE_RADIATION = "diffuse_radiation"
DIRECT_NORMAL_IRRADIANCE = "direct_normal_irradiance"
GLOBAL_TILTED_IRRADIANCE = "global_tilted_irradiance"
TERRESTRIAL_RADIATION = "terrestrial_radiation"
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"
TERRESTRIAL_RADIATION_INSTANT = "terrestrial_radiation_instant"
[docs]
class GetV1ArchiveDailyItem(enum.Enum):
"""The ``GetV1ArchiveDailyItem`` values."""
WEATHER_CODE = "weather_code"
TEMPERATURE_2M_MEAN = "temperature_2m_mean"
TEMPERATURE_2M_MAX = "temperature_2m_max"
TEMPERATURE_2M_MIN = "temperature_2m_min"
APPARENT_TEMPERATURE_MEAN = "apparent_temperature_mean"
APPARENT_TEMPERATURE_MAX = "apparent_temperature_max"
APPARENT_TEMPERATURE_MIN = "apparent_temperature_min"
SUNRISE = "sunrise"
SUNSET = "sunset"
DAYLIGHT_DURATION = "daylight_duration"
SUNSHINE_DURATION = "sunshine_duration"
PRECIPITATION_SUM = "precipitation_sum"
RAIN_SUM = "rain_sum"
SNOWFALL_SUM = "snowfall_sum"
PRECIPITATION_HOURS = "precipitation_hours"
WIND_SPEED_10M_MAX = "wind_speed_10m_max"
WIND_GUSTS_10M_MAX = "wind_gusts_10m_max"
WIND_DIRECTION_10M_DOMINANT = "wind_direction_10m_dominant"
SHORTWAVE_RADIATION_SUM = "shortwave_radiation_sum"
ET0_FAO_EVAPOTRANSPIRATION = "et0_fao_evapotranspiration"
CLOUD_COVER_MEAN = "cloud_cover_mean"
DEW_POINT_2M_MEAN = "dew_point_2m_mean"
DEW_POINT_2M_MAX = "dew_point_2m_max"
DEW_POINT_2M_MIN = "dew_point_2m_min"
RELATIVE_HUMIDITY_2M_MEAN = "relative_humidity_2m_mean"
RELATIVE_HUMIDITY_2M_MAX = "relative_humidity_2m_max"
RELATIVE_HUMIDITY_2M_MIN = "relative_humidity_2m_min"
PRESSURE_MSL_MEAN = "pressure_msl_mean"
WIND_SPEED_10M_MEAN = "wind_speed_10m_mean"
WET_BULB_TEMPERATURE_2M_MEAN = "wet_bulb_temperature_2m_mean"
VAPOUR_PRESSURE_DEFICIT_MAX = "vapour_pressure_deficit_max"
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_0_TO_100CM_MEAN = "soil_moisture_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"
[docs]
class GetV1ArchiveTemperatureUnit(enum.Enum):
"""The ``GetV1ArchiveTemperatureUnit`` values."""
CELSIUS = "celsius"
FAHRENHEIT = "fahrenheit"
[docs]
class GetV1ArchiveWindSpeedUnit(enum.Enum):
"""The ``GetV1ArchiveWindSpeedUnit`` values."""
KMH = "kmh"
MS = "ms"
MPH = "mph"
KN = "kn"
[docs]
class GetV1ArchivePrecipitationUnit(enum.Enum):
"""The ``GetV1ArchivePrecipitationUnit`` values."""
MM = "mm"
INCH = "inch"
[docs]
class GetV1ArchiveCellSelection(enum.Enum):
"""The ``GetV1ArchiveCellSelection`` values."""
LAND = "land"
SEA = "sea"
NEAREST = "nearest"
[docs]
class GetV1ArchiveModelsItem(enum.Enum):
"""The ``GetV1ArchiveModelsItem`` values."""
BEST_MATCH = "best_match"
ERA5_SEAMLESS = "era5_seamless"
ERA5 = "era5"
ERA5_LAND = "era5_land"
ECMWF_IFS = "ecmwf_ifs"
CERRA = "cerra"
ERA5_ENSEMBLE = "era5_ensemble"
ECMWF_IFS_ANALYSIS_LONG_WINDOW = "ecmwf_ifs_analysis_long_window"
[docs]
@dataclass
class GetV1ArchiveResponseHourly:
"""The ``GetV1ArchiveResponseHourly`` model."""
time: list[str] | None = None
temperature_2m: list[float] | None = None
relative_humidity_2m: list[float] | None = None
dew_point_2m: list[float] | None = None
apparent_temperature: list[float] | None = None
precipitation: list[float] | None = None
rain: list[float] | None = None
snowfall: list[float] | None = None
snow_depth: list[float] | None = None
weather_code: list[int] | None = None
pressure_msl: list[float] | None = None
surface_pressure: list[float] | None = None
cloud_cover: list[float] | None = None
cloud_cover_low: list[float] | None = None
cloud_cover_mid: list[float] | None = None
cloud_cover_high: list[float] | None = None
et0_fao_evapotranspiration: list[float] | None = None
vapour_pressure_deficit: list[float] | None = None
wind_speed_10m: list[float] | None = None
wind_speed_100m: list[float] | None = None
wind_direction_10m: list[float] | None = None
wind_direction_100m: list[float] | None = None
wind_gusts_10m: list[float] | None = None
soil_temperature_0_to_7cm: list[float] | None = None
soil_temperature_7_to_28cm: list[float] | None = None
soil_temperature_28_to_100cm: list[float] | None = None
soil_temperature_100_to_255cm: list[float] | None = None
soil_moisture_0_to_7cm: list[float] | None = None
soil_moisture_7_to_28cm: list[float] | None = None
soil_moisture_28_to_100cm: list[float] | None = None
soil_moisture_100_to_255cm: list[float] | None = None
soil_moisture_0_to_100cm: list[float] | None = None
soil_temperature_0_to_100cm: list[float] | None = None
soil_moisture_index_0_to_7cm: list[float] | None = None
soil_moisture_index_7_to_28cm: list[float] | None = None
soil_moisture_index_28_to_100cm: list[float] | None = None
soil_moisture_index_0_to_100cm: list[float] | None = None
boundary_layer_height: list[float] | None = None
wet_bulb_temperature_2m: list[float] | None = None
total_column_integrated_water_vapour: list[float] | None = None
is_day: list[int] | None = None
sunshine_duration: list[float] | None = None
growing_degree_days_base_0_limit_50: list[float] | None = None
leaf_wetness_probability: list[float] | None = None
wave_height: list[float] | None = None
wave_direction: list[float] | None = None
wave_period: list[float] | None = None
sea_surface_temperature: list[float] | None = None
shortwave_radiation: list[float] | None = None
direct_radiation: list[float] | None = None
diffuse_radiation: list[float] | None = None
direct_normal_irradiance: list[float] | None = None
global_tilted_irradiance: list[float] | None = None
terrestrial_radiation: list[float] | None = None
shortwave_radiation_instant: list[float] | None = None
direct_radiation_instant: list[float] | None = None
diffuse_radiation_instant: list[float] | None = None
direct_normal_irradiance_instant: list[float] | None = None
global_tilted_irradiance_instant: list[float] | None = None
terrestrial_radiation_instant: list[float] | None = None
[docs]
def get_v1_archive_response_hourly_from_json(data: Any) -> GetV1ArchiveResponseHourly:
"""
Build a :py:class:`GetV1ArchiveResponseHourly` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ArchiveResponseHourly
"""
return GetV1ArchiveResponseHourly(
time=data.get("time"),
temperature_2m=data.get("temperature_2m"),
relative_humidity_2m=data.get("relative_humidity_2m"),
dew_point_2m=data.get("dew_point_2m"),
apparent_temperature=data.get("apparent_temperature"),
precipitation=data.get("precipitation"),
rain=data.get("rain"),
snowfall=data.get("snowfall"),
snow_depth=data.get("snow_depth"),
weather_code=data.get("weather_code"),
pressure_msl=data.get("pressure_msl"),
surface_pressure=data.get("surface_pressure"),
cloud_cover=data.get("cloud_cover"),
cloud_cover_low=data.get("cloud_cover_low"),
cloud_cover_mid=data.get("cloud_cover_mid"),
cloud_cover_high=data.get("cloud_cover_high"),
et0_fao_evapotranspiration=data.get("et0_fao_evapotranspiration"),
vapour_pressure_deficit=data.get("vapour_pressure_deficit"),
wind_speed_10m=data.get("wind_speed_10m"),
wind_speed_100m=data.get("wind_speed_100m"),
wind_direction_10m=data.get("wind_direction_10m"),
wind_direction_100m=data.get("wind_direction_100m"),
wind_gusts_10m=data.get("wind_gusts_10m"),
soil_temperature_0_to_7cm=data.get("soil_temperature_0_to_7cm"),
soil_temperature_7_to_28cm=data.get("soil_temperature_7_to_28cm"),
soil_temperature_28_to_100cm=data.get("soil_temperature_28_to_100cm"),
soil_temperature_100_to_255cm=data.get("soil_temperature_100_to_255cm"),
soil_moisture_0_to_7cm=data.get("soil_moisture_0_to_7cm"),
soil_moisture_7_to_28cm=data.get("soil_moisture_7_to_28cm"),
soil_moisture_28_to_100cm=data.get("soil_moisture_28_to_100cm"),
soil_moisture_100_to_255cm=data.get("soil_moisture_100_to_255cm"),
soil_moisture_0_to_100cm=data.get("soil_moisture_0_to_100cm"),
soil_temperature_0_to_100cm=data.get("soil_temperature_0_to_100cm"),
soil_moisture_index_0_to_7cm=data.get("soil_moisture_index_0_to_7cm"),
soil_moisture_index_7_to_28cm=data.get("soil_moisture_index_7_to_28cm"),
soil_moisture_index_28_to_100cm=data.get("soil_moisture_index_28_to_100cm"),
soil_moisture_index_0_to_100cm=data.get("soil_moisture_index_0_to_100cm"),
boundary_layer_height=data.get("boundary_layer_height"),
wet_bulb_temperature_2m=data.get("wet_bulb_temperature_2m"),
total_column_integrated_water_vapour=data.get("total_column_integrated_water_vapour"),
is_day=data.get("is_day"),
sunshine_duration=data.get("sunshine_duration"),
growing_degree_days_base_0_limit_50=data.get("growing_degree_days_base_0_limit_50"),
leaf_wetness_probability=data.get("leaf_wetness_probability"),
wave_height=data.get("wave_height"),
wave_direction=data.get("wave_direction"),
wave_period=data.get("wave_period"),
sea_surface_temperature=data.get("sea_surface_temperature"),
shortwave_radiation=data.get("shortwave_radiation"),
direct_radiation=data.get("direct_radiation"),
diffuse_radiation=data.get("diffuse_radiation"),
direct_normal_irradiance=data.get("direct_normal_irradiance"),
global_tilted_irradiance=data.get("global_tilted_irradiance"),
terrestrial_radiation=data.get("terrestrial_radiation"),
shortwave_radiation_instant=data.get("shortwave_radiation_instant"),
direct_radiation_instant=data.get("direct_radiation_instant"),
diffuse_radiation_instant=data.get("diffuse_radiation_instant"),
direct_normal_irradiance_instant=data.get("direct_normal_irradiance_instant"),
global_tilted_irradiance_instant=data.get("global_tilted_irradiance_instant"),
terrestrial_radiation_instant=data.get("terrestrial_radiation_instant"),
)
[docs]
@dataclass
class GetV1ArchiveResponseHourlyUnits:
"""The ``GetV1ArchiveResponseHourlyUnits`` model."""
time: str | None = None
temperature_2m: str | None = None
relative_humidity_2m: str | None = None
dew_point_2m: str | None = None
apparent_temperature: str | None = None
precipitation: str | None = None
rain: str | None = None
snowfall: str | None = None
snow_depth: str | None = None
weather_code: str | None = None
pressure_msl: str | None = None
surface_pressure: str | None = None
cloud_cover: str | None = None
cloud_cover_low: str | None = None
cloud_cover_mid: str | None = None
cloud_cover_high: str | None = None
et0_fao_evapotranspiration: str | None = None
vapour_pressure_deficit: str | None = None
wind_speed_10m: str | None = None
wind_speed_100m: str | None = None
wind_direction_10m: str | None = None
wind_direction_100m: str | None = None
wind_gusts_10m: str | None = None
soil_temperature_0_to_7cm: str | None = None
soil_temperature_7_to_28cm: str | None = None
soil_temperature_28_to_100cm: str | None = None
soil_temperature_100_to_255cm: str | None = None
soil_moisture_0_to_7cm: str | None = None
soil_moisture_7_to_28cm: str | None = None
soil_moisture_28_to_100cm: str | None = None
soil_moisture_100_to_255cm: str | None = None
soil_moisture_0_to_100cm: str | None = None
soil_temperature_0_to_100cm: str | None = None
soil_moisture_index_0_to_7cm: str | None = None
soil_moisture_index_7_to_28cm: str | None = None
soil_moisture_index_28_to_100cm: str | None = None
soil_moisture_index_0_to_100cm: str | None = None
boundary_layer_height: str | None = None
wet_bulb_temperature_2m: str | None = None
total_column_integrated_water_vapour: str | None = None
is_day: str | None = None
sunshine_duration: str | None = None
growing_degree_days_base_0_limit_50: str | None = None
leaf_wetness_probability: str | None = None
wave_height: str | None = None
wave_direction: str | None = None
wave_period: str | None = None
sea_surface_temperature: str | None = None
shortwave_radiation: str | None = None
direct_radiation: str | None = None
diffuse_radiation: str | None = None
direct_normal_irradiance: str | None = None
global_tilted_irradiance: str | None = None
terrestrial_radiation: str | None = None
shortwave_radiation_instant: str | None = None
direct_radiation_instant: str | None = None
diffuse_radiation_instant: str | None = None
direct_normal_irradiance_instant: str | None = None
global_tilted_irradiance_instant: str | None = None
terrestrial_radiation_instant: str | None = None
[docs]
def get_v1_archive_response_hourly_units_from_json(data: Any) -> GetV1ArchiveResponseHourlyUnits:
"""
Build a :py:class:`GetV1ArchiveResponseHourlyUnits` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ArchiveResponseHourlyUnits
"""
return GetV1ArchiveResponseHourlyUnits(
time=data.get("time"),
temperature_2m=data.get("temperature_2m"),
relative_humidity_2m=data.get("relative_humidity_2m"),
dew_point_2m=data.get("dew_point_2m"),
apparent_temperature=data.get("apparent_temperature"),
precipitation=data.get("precipitation"),
rain=data.get("rain"),
snowfall=data.get("snowfall"),
snow_depth=data.get("snow_depth"),
weather_code=data.get("weather_code"),
pressure_msl=data.get("pressure_msl"),
surface_pressure=data.get("surface_pressure"),
cloud_cover=data.get("cloud_cover"),
cloud_cover_low=data.get("cloud_cover_low"),
cloud_cover_mid=data.get("cloud_cover_mid"),
cloud_cover_high=data.get("cloud_cover_high"),
et0_fao_evapotranspiration=data.get("et0_fao_evapotranspiration"),
vapour_pressure_deficit=data.get("vapour_pressure_deficit"),
wind_speed_10m=data.get("wind_speed_10m"),
wind_speed_100m=data.get("wind_speed_100m"),
wind_direction_10m=data.get("wind_direction_10m"),
wind_direction_100m=data.get("wind_direction_100m"),
wind_gusts_10m=data.get("wind_gusts_10m"),
soil_temperature_0_to_7cm=data.get("soil_temperature_0_to_7cm"),
soil_temperature_7_to_28cm=data.get("soil_temperature_7_to_28cm"),
soil_temperature_28_to_100cm=data.get("soil_temperature_28_to_100cm"),
soil_temperature_100_to_255cm=data.get("soil_temperature_100_to_255cm"),
soil_moisture_0_to_7cm=data.get("soil_moisture_0_to_7cm"),
soil_moisture_7_to_28cm=data.get("soil_moisture_7_to_28cm"),
soil_moisture_28_to_100cm=data.get("soil_moisture_28_to_100cm"),
soil_moisture_100_to_255cm=data.get("soil_moisture_100_to_255cm"),
soil_moisture_0_to_100cm=data.get("soil_moisture_0_to_100cm"),
soil_temperature_0_to_100cm=data.get("soil_temperature_0_to_100cm"),
soil_moisture_index_0_to_7cm=data.get("soil_moisture_index_0_to_7cm"),
soil_moisture_index_7_to_28cm=data.get("soil_moisture_index_7_to_28cm"),
soil_moisture_index_28_to_100cm=data.get("soil_moisture_index_28_to_100cm"),
soil_moisture_index_0_to_100cm=data.get("soil_moisture_index_0_to_100cm"),
boundary_layer_height=data.get("boundary_layer_height"),
wet_bulb_temperature_2m=data.get("wet_bulb_temperature_2m"),
total_column_integrated_water_vapour=data.get("total_column_integrated_water_vapour"),
is_day=data.get("is_day"),
sunshine_duration=data.get("sunshine_duration"),
growing_degree_days_base_0_limit_50=data.get("growing_degree_days_base_0_limit_50"),
leaf_wetness_probability=data.get("leaf_wetness_probability"),
wave_height=data.get("wave_height"),
wave_direction=data.get("wave_direction"),
wave_period=data.get("wave_period"),
sea_surface_temperature=data.get("sea_surface_temperature"),
shortwave_radiation=data.get("shortwave_radiation"),
direct_radiation=data.get("direct_radiation"),
diffuse_radiation=data.get("diffuse_radiation"),
direct_normal_irradiance=data.get("direct_normal_irradiance"),
global_tilted_irradiance=data.get("global_tilted_irradiance"),
terrestrial_radiation=data.get("terrestrial_radiation"),
shortwave_radiation_instant=data.get("shortwave_radiation_instant"),
direct_radiation_instant=data.get("direct_radiation_instant"),
diffuse_radiation_instant=data.get("diffuse_radiation_instant"),
direct_normal_irradiance_instant=data.get("direct_normal_irradiance_instant"),
global_tilted_irradiance_instant=data.get("global_tilted_irradiance_instant"),
terrestrial_radiation_instant=data.get("terrestrial_radiation_instant"),
)
[docs]
@dataclass
class GetV1ArchiveResponseDaily:
"""The ``GetV1ArchiveResponseDaily`` model."""
time: list[str] | None = None
weather_code: list[int] | None = None
temperature_2m_mean: list[float] | None = None
temperature_2m_max: list[float] | None = None
temperature_2m_min: list[float] | None = None
apparent_temperature_mean: list[float] | None = None
apparent_temperature_max: list[float] | None = None
apparent_temperature_min: list[float] | None = None
sunrise: list[str] | None = None
sunset: list[str] | None = None
daylight_duration: list[float] | None = None
sunshine_duration: list[float] | None = None
precipitation_sum: list[float] | None = None
rain_sum: list[float] | None = None
snowfall_sum: list[float] | None = None
precipitation_hours: list[float] | None = None
wind_speed_10m_max: list[float] | None = None
wind_gusts_10m_max: list[float] | None = None
wind_direction_10m_dominant: list[float] | None = None
shortwave_radiation_sum: list[float] | None = None
et0_fao_evapotranspiration: list[float] | None = None
cloud_cover_mean: 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
relative_humidity_2m_mean: list[float] | None = None
relative_humidity_2m_max: list[float] | None = None
relative_humidity_2m_min: list[float] | None = None
pressure_msl_mean: list[float] | None = None
wind_speed_10m_mean: list[float] | None = None
wet_bulb_temperature_2m_mean: list[float] | None = None
vapour_pressure_deficit_max: 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_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
[docs]
def get_v1_archive_response_daily_from_json(data: Any) -> GetV1ArchiveResponseDaily:
"""
Build a :py:class:`GetV1ArchiveResponseDaily` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ArchiveResponseDaily
"""
return GetV1ArchiveResponseDaily(
time=data.get("time"),
weather_code=data.get("weather_code"),
temperature_2m_mean=data.get("temperature_2m_mean"),
temperature_2m_max=data.get("temperature_2m_max"),
temperature_2m_min=data.get("temperature_2m_min"),
apparent_temperature_mean=data.get("apparent_temperature_mean"),
apparent_temperature_max=data.get("apparent_temperature_max"),
apparent_temperature_min=data.get("apparent_temperature_min"),
sunrise=data.get("sunrise"),
sunset=data.get("sunset"),
daylight_duration=data.get("daylight_duration"),
sunshine_duration=data.get("sunshine_duration"),
precipitation_sum=data.get("precipitation_sum"),
rain_sum=data.get("rain_sum"),
snowfall_sum=data.get("snowfall_sum"),
precipitation_hours=data.get("precipitation_hours"),
wind_speed_10m_max=data.get("wind_speed_10m_max"),
wind_gusts_10m_max=data.get("wind_gusts_10m_max"),
wind_direction_10m_dominant=data.get("wind_direction_10m_dominant"),
shortwave_radiation_sum=data.get("shortwave_radiation_sum"),
et0_fao_evapotranspiration=data.get("et0_fao_evapotranspiration"),
cloud_cover_mean=data.get("cloud_cover_mean"),
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"),
relative_humidity_2m_mean=data.get("relative_humidity_2m_mean"),
relative_humidity_2m_max=data.get("relative_humidity_2m_max"),
relative_humidity_2m_min=data.get("relative_humidity_2m_min"),
pressure_msl_mean=data.get("pressure_msl_mean"),
wind_speed_10m_mean=data.get("wind_speed_10m_mean"),
wet_bulb_temperature_2m_mean=data.get("wet_bulb_temperature_2m_mean"),
vapour_pressure_deficit_max=data.get("vapour_pressure_deficit_max"),
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_0_to_100cm_mean=data.get("soil_moisture_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"),
)
[docs]
@dataclass
class GetV1ArchiveResponseDailyUnits:
"""The ``GetV1ArchiveResponseDailyUnits`` model."""
time: str | None = None
weather_code: str | None = None
temperature_2m_mean: str | None = None
temperature_2m_max: str | None = None
temperature_2m_min: str | None = None
apparent_temperature_mean: str | None = None
apparent_temperature_max: str | None = None
apparent_temperature_min: str | None = None
sunrise: str | None = None
sunset: str | None = None
daylight_duration: str | None = None
sunshine_duration: str | None = None
precipitation_sum: str | None = None
rain_sum: str | None = None
snowfall_sum: str | None = None
precipitation_hours: str | None = None
wind_speed_10m_max: str | None = None
wind_gusts_10m_max: str | None = None
wind_direction_10m_dominant: str | None = None
shortwave_radiation_sum: str | None = None
et0_fao_evapotranspiration: str | None = None
cloud_cover_mean: str | None = None
dew_point_2m_mean: str | None = None
dew_point_2m_max: str | None = None
dew_point_2m_min: str | None = None
relative_humidity_2m_mean: str | None = None
relative_humidity_2m_max: str | None = None
relative_humidity_2m_min: str | None = None
pressure_msl_mean: str | None = None
wind_speed_10m_mean: str | None = None
wet_bulb_temperature_2m_mean: str | None = None
vapour_pressure_deficit_max: 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_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
[docs]
def get_v1_archive_response_daily_units_from_json(data: Any) -> GetV1ArchiveResponseDailyUnits:
"""
Build a :py:class:`GetV1ArchiveResponseDailyUnits` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ArchiveResponseDailyUnits
"""
return GetV1ArchiveResponseDailyUnits(
time=data.get("time"),
weather_code=data.get("weather_code"),
temperature_2m_mean=data.get("temperature_2m_mean"),
temperature_2m_max=data.get("temperature_2m_max"),
temperature_2m_min=data.get("temperature_2m_min"),
apparent_temperature_mean=data.get("apparent_temperature_mean"),
apparent_temperature_max=data.get("apparent_temperature_max"),
apparent_temperature_min=data.get("apparent_temperature_min"),
sunrise=data.get("sunrise"),
sunset=data.get("sunset"),
daylight_duration=data.get("daylight_duration"),
sunshine_duration=data.get("sunshine_duration"),
precipitation_sum=data.get("precipitation_sum"),
rain_sum=data.get("rain_sum"),
snowfall_sum=data.get("snowfall_sum"),
precipitation_hours=data.get("precipitation_hours"),
wind_speed_10m_max=data.get("wind_speed_10m_max"),
wind_gusts_10m_max=data.get("wind_gusts_10m_max"),
wind_direction_10m_dominant=data.get("wind_direction_10m_dominant"),
shortwave_radiation_sum=data.get("shortwave_radiation_sum"),
et0_fao_evapotranspiration=data.get("et0_fao_evapotranspiration"),
cloud_cover_mean=data.get("cloud_cover_mean"),
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"),
relative_humidity_2m_mean=data.get("relative_humidity_2m_mean"),
relative_humidity_2m_max=data.get("relative_humidity_2m_max"),
relative_humidity_2m_min=data.get("relative_humidity_2m_min"),
pressure_msl_mean=data.get("pressure_msl_mean"),
wind_speed_10m_mean=data.get("wind_speed_10m_mean"),
wet_bulb_temperature_2m_mean=data.get("wet_bulb_temperature_2m_mean"),
vapour_pressure_deficit_max=data.get("vapour_pressure_deficit_max"),
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_0_to_100cm_mean=data.get("soil_moisture_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"),
)
[docs]
@dataclass
class GetV1ArchiveResponse:
"""The ``GetV1ArchiveResponse`` 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: GetV1ArchiveResponseHourly | None = None
hourly_units: GetV1ArchiveResponseHourlyUnits | None = None
daily: GetV1ArchiveResponseDaily | None = None
daily_units: GetV1ArchiveResponseDailyUnits | None = None
[docs]
def get_v1_archive_response_from_json(data: Any) -> GetV1ArchiveResponse:
"""
Build a :py:class:`GetV1ArchiveResponse` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ArchiveResponse
"""
return GetV1ArchiveResponse(
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_archive_response_hourly_from_json(data["hourly"])
if data.get("hourly") is not None
else None
),
hourly_units=(
get_v1_archive_response_hourly_units_from_json(data["hourly_units"])
if data.get("hourly_units") is not None
else None
),
daily=(
get_v1_archive_response_daily_from_json(data["daily"])
if data.get("daily") is not None
else None
),
daily_units=(
get_v1_archive_response_daily_units_from_json(data["daily_units"])
if data.get("daily_units") is not None
else None
),
)
[docs]
@dataclass
class GetV1ArchiveError:
"""The ``GetV1ArchiveError`` model."""
error: bool | None = None
reason: str | None = None
[docs]
def get_v1_archive_error_from_json(data: Any) -> GetV1ArchiveError:
"""
Build a :py:class:`GetV1ArchiveError` from one decoded JSON object.
:param data: the decoded JSON object
:return: the GetV1ArchiveError
"""
return GetV1ArchiveError(
error=data.get("error"),
reason=data.get("reason"),
)