Locationforecast: API Reference#

class yr_weather.Locationforecast(headers: Dict[str, str], use_cache=True)#

Bases: APIClient

A client for interacting with the MET Locationforecast API.

The client has multiple functions which can be used for retrieving data from the API.

It must be initialized with a headers dict, which at least includes a User-Agent. The headers will be used with the requests library.

For usage examples, see the documentation.

get_air_temperature(lat: float, lon: float, altitude: int | None = None) float | None#

Retrieve the air temperature at a given location.

This function returns the latest data available, meaning it provides the current air temperature.

Parameters:
  • lat (float | int) – The latitude of the location.

  • lon (float | int) – The longitude of the location.

  • altitude (Optional[int]) – The altitude of the location, given in whole meters.

Returns:

The air temperature, given in the current scale used by the Yr Locationforecast API (this is usually degrees Celsius).

Return type:

float

get_forecast(lat: float, lon: float, forecast_type: Literal['complete', 'compact'] = 'complete') Forecast#

Retrieve a complete or compact forecast for a selected location.

Parameters:
  • lat (float | int) – The latitude of the location.

  • lon (float | int) – The longitude of the location.

  • forecast_type (Literal["complete", "compact"]) – Optional: Specify the type of forecast, either "complete" or "compact". Default is "complete".

Returns:

An instance of Forecast with helper functions and values from the API.

Return type:

Forecast

get_instant_data(lat: float, lon: float, altitude: int | None = None) ForecastTimeDetails#

Retrieve current weather information about a location.

This includes air pressure, temperature, humidity, wind and more.

Parameters:
  • lat (float | int) – The latitude of the location.

  • lon (float | int) – The longitude of the location.

  • altitude (Optional[int]) – The altitude of the location, given in whole meters.

Returns:

A dataclass with info received from the API.

Return type:

ForecastTimeDetails

get_units() ForecastUnits#

Retrieve a list of units used by the MET Locationforecast API.

Returns:

A dataclass with units currently used.

Return type:

ForecastUnits

set_headers(headers: dict) dict#

Set new headers of the client.

This will override any old headers, and replace them with the new headers from the headers parameter.

Parameters:

headers (dict) – The new headers, which will override the old ones.

Returns:

The headers which were set.

Return type:

dict

class yr_weather.data.locationforecast.Forecast(forecast_data: APIForecast)#

A class holding a location forecast with multiple timeframes to choose from.

type#

MET API service type (always "Feature").

Type:

str

geometry#

Geometry data for this forecast.

Type:

ForecastGeometry

updated_at#

The ISO 8601 timestamp in UTC time at which this forecast was last updated.

Type:

str

units#

The units used by this forecast.

Type:

ForecastUnits

get_forecast_time(time: datetime) ForecastTime | None#

Get a certain ForecastTime by specifying the time. The time will be rounded to the nearest hour.

Parameters:

time (datetime.datetime) – The datetime to use when retrieving the nearest forecast info.

Return type:

ForecastTime | None

now() ForecastTime#

Get the newest ForecastTime for this Forecast.

Return type:

ForecastTime

class yr_weather.data.locationforecast.ForecastTime(_data: APIForecastTime)#

A class holding data about a forecast for a specific time.

time#

The ISO 8601 timestamp in UTC time for this ForecastTime.

Type:

str

details#

The forecast data for this ForecastTime.

Type:

ForecastTimeDetails

next_hour#

A ForecastFuture with data about the forecast the next hour.

Type:

ForecastFuture

next_6_hours#

A ForecastFuture with data about the forecast the 6 hours.

Type:

ForecastFuture

next_12_hours#

A ForecastFuture with data about the forecast the 12 hours.

Type:

ForecastFuture

class yr_weather.data.locationforecast.ForecastFuture(summary: APIForecastFutureSummary | None = None, details: APIForecastFutureDetails | None = None)#

A class holding a forecast predicting the weather in the future from a specified time.

summary#

A summary for this forecast.

Type:

ForecastFutureSummary

details#

The forecast data for this forecast.

Type:

ForecastFutureDetails

Dataclasses#

class yr_weather.data.locationforecast.ForecastGeometry(type: str | None = None, coordinates: List[int] | None = None)#

Geometry data for a forecast.

coordinates: List[int] | None = None#
type: str | None = None#
class yr_weather.data.locationforecast.ForecastUnits(air_pressure_at_sea_level: str | None = None, air_temperature: str | None = None, air_temperature_max: str | None = None, air_temperature_min: str | None = None, air_temperature_percentile_10: str | None = None, air_temperature_percentile_90: str | None = None, cloud_area_fraction: str | None = None, cloud_area_fraction_high: str | None = None, cloud_area_fraction_low: str | None = None, cloud_area_fraction_medium: str | None = None, dew_point_temperature: str | None = None, fog_area_fraction: str | None = None, precipitation_amount: str | None = None, precipitation_amount_max: str | None = None, precipitation_amount_min: str | None = None, probability_of_precipitation: str | None = None, probability_of_thunder: str | None = None, relative_humidity: str | None = None, ultraviolet_index_clear_sky: str | None = None, wind_from_direction: str | None = None, wind_speed: str | None = None, wind_speed_of_gust: str | None = None, wind_speed_percentile_10: str | None = None, wind_speed_percentile_90: str | None = None)#

Class storing units used by a forecast.

air_pressure_at_sea_level: str | None = None#
air_temperature: str | None = None#
air_temperature_max: str | None = None#
air_temperature_min: str | None = None#
air_temperature_percentile_10: str | None = None#
air_temperature_percentile_90: str | None = None#
cloud_area_fraction: str | None = None#
cloud_area_fraction_high: str | None = None#
cloud_area_fraction_low: str | None = None#
cloud_area_fraction_medium: str | None = None#
dew_point_temperature: str | None = None#
fog_area_fraction: str | None = None#
precipitation_amount: str | None = None#
precipitation_amount_max: str | None = None#
precipitation_amount_min: str | None = None#
probability_of_precipitation: str | None = None#
probability_of_thunder: str | None = None#
relative_humidity: str | None = None#
ultraviolet_index_clear_sky: str | None = None#
wind_from_direction: str | None = None#
wind_speed: str | None = None#
wind_speed_of_gust: str | None = None#
wind_speed_percentile_10: str | None = None#
wind_speed_percentile_90: str | None = None#
class yr_weather.data.locationforecast.ForecastTimeDetails(air_pressure_at_sea_level: float | None = None, air_temperature: float | None = None, air_temperature_percentile_10: float | None = None, air_temperature_percentile_90: float | None = None, cloud_area_fraction: float | None = None, cloud_area_fraction_high: float | None = None, cloud_area_fraction_low: float | None = None, cloud_area_fraction_medium: float | None = None, dew_point_temperature: float | None = None, fog_area_fraction: float | None = None, relative_humidity: float | None = None, ultraviolet_index_clear_sky: float | None = None, wind_from_direction: float | None = None, wind_speed: float | None = None, wind_speed_of_gust: float | None = None, wind_speed_percentile_10: float | None = None, wind_speed_percentile_90: float | None = None)#

Details of weather data for a forecast time.

air_pressure_at_sea_level: float | None = None#
air_temperature: float | None = None#
air_temperature_percentile_10: float | None = None#
air_temperature_percentile_90: float | None = None#
cloud_area_fraction: float | None = None#
cloud_area_fraction_high: float | None = None#
cloud_area_fraction_low: float | None = None#
cloud_area_fraction_medium: float | None = None#
dew_point_temperature: float | None = None#
fog_area_fraction: float | None = None#
relative_humidity: float | None = None#
ultraviolet_index_clear_sky: float | None = None#
wind_from_direction: float | None = None#
wind_speed: float | None = None#
wind_speed_of_gust: float | None = None#
wind_speed_percentile_10: float | None = None#
wind_speed_percentile_90: float | None = None#
class yr_weather.data.locationforecast.ForecastFutureSummary(symbol_code: str | None = None, symbol_confidence: str | None = None)#

Summary for a forecast predicting the weather in the future.

symbol_code: str | None = None#
symbol_confidence: str | None = None#
class yr_weather.data.locationforecast.ForecastFutureDetails(air_pressure_at_sea_level: float | None = None, air_temperature: float | None = None, air_temperature_max: float | None = None, air_temperature_min: float | None = None, air_temperature_percentile_10: float | None = None, air_temperature_percentile_90: float | None = None, cloud_area_fraction: float | None = None, cloud_area_fraction_high: float | None = None, cloud_area_fraction_low: float | None = None, cloud_area_fraction_medium: float | None = None, dew_point_temperature: float | None = None, fog_area_fraction: float | None = None, precipitation_amount: float | None = None, precipitation_amount_max: float | None = None, precipitation_amount_min: float | None = None, probability_of_precipitation: float | None = None, probability_of_thunder: float | None = None, relative_humidity: float | None = None, ultraviolet_index_clear_sky: float | None = None, wind_from_direction: float | None = None, wind_speed: float | None = None, wind_speed_of_gust: float | None = None, wind_speed_percentile_10: float | None = None, wind_speed_percentile_90: float | None = None)#

Details for a forecast predicting the weather in the future.

air_pressure_at_sea_level: float | None = None#
air_temperature: float | None = None#
air_temperature_max: float | None = None#
air_temperature_min: float | None = None#
air_temperature_percentile_10: float | None = None#
air_temperature_percentile_90: float | None = None#
cloud_area_fraction: float | None = None#
cloud_area_fraction_high: float | None = None#
cloud_area_fraction_low: float | None = None#
cloud_area_fraction_medium: float | None = None#
dew_point_temperature: float | None = None#
fog_area_fraction: float | None = None#
precipitation_amount: float | None = None#
precipitation_amount_max: float | None = None#
precipitation_amount_min: float | None = None#
probability_of_precipitation: float | None = None#
probability_of_thunder: float | None = None#
relative_humidity: float | None = None#
ultraviolet_index_clear_sky: float | None = None#
wind_from_direction: float | None = None#
wind_speed: float | None = None#
wind_speed_of_gust: float | None = None#
wind_speed_percentile_10: float | None = None#
wind_speed_percentile_90: float | None = None#