Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Library for fetching weather information from Finnish Meteorological Institute (FMI)

Project description

Test Last commit Latest version in GitHub Latest version in PyPi

Finnish Meteorological Institute Weather

Library for fetching weather information from Finnish Meteorological Institute (FMI).

How to use

Working example can be found in example.py.

Install

$ pip install fmi-weather-client 

Get weather and forecasts

You can get the weather using the following functions:

  • weather_by_place_name(place_name)
  • weather_by_coordinates(latitude, longitude)

Example:

import fmi_weather_client as fmi
from fmi_weather_client.errors import ClientError, ServerError

try:
    weather = fmi.weather_by_place_name("Jäppilä, Pieksämäki")
    if weather is not None:
        print(f"Temperature in {weather.place} is {weather.data.temperature}")
except ClientError as err:
    print(f"Client error with status {err.status_code}: {err.message}")
except ServerError as err:
    print(f"Server error with status {err.status_code}: {err.body}")

You can get the forecasts using the following functions:

  • forecast_by_place_name(place_name, [timestep_hours=24])
  • forecast_by_coordinates(latitude, longitude, [timestep_hours=24])

Example:

import fmi_weather_client as fmi
from fmi_weather_client.errors import ClientError, ServerError

try:
    forecast = fmi.forecast_by_coordinates(60.170998, 24.941325)
    for weather_data in forecast.forecasts:
        print(f"Temperature at {weather_data.time}: {weather_data.temperature}")
except ClientError as err:
    print(f"Client error with status {err.status_code}: {err.message}")
except ServerError as err:
    print(f"Server error with status {err.status_code}: {err.body}")

All functions have asynchronous versions available with async_ prefix.

Errors

ClientError

Happens if FMI service returns 400-499. This can happens for example if:

  • Provided coordinates are invalid
  • Provided place is not recognized
  • Weather data is not available

Error object contains status code and human-readable error message from FMI service.

ServerError

Happens if FMI service returns any other error.

Error object contains status code and raw response body from FMI service

Weather data

FMI provides the following commonly used information:

  • Temperature (°C)
  • Pressure (hPa)
  • Humidity (%)
  • Wind direction (°)
  • Wind speed (m/s)
  • Wind gust (m/s)
  • Dew point (°)
  • Cloud coverage (%)
  • Precipitation intensity (mm/h)
  • Symbol Documentation in Finnish

There are also other information available. Check models.py and FMI documentation for more info.

Development

Setup

Create and activate a virtual environment

$ python -m venv venv
$ source venv/bin/activate

Install required packages

$ make setup

Deactivate virtual environment when you are done

$ deactivate

Run tests

This will run unit tests and code quality checks

$ make test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for fmi-weather-client, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size fmi_weather_client-0.1.1-py3-none-any.whl (20.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size fmi-weather-client-0.1.1.tar.gz (10.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page