Library for fetching weather information from Finnish Meteorological Institute (FMI)
Project description
Finnish Meteorological Institute Weather
Library for fetching weather information from Finnish Meteorological Institute (FMI).
Originally build for personal use because I wanted to create FMI integration for Home Assistant.
How to use
Working example can be found in example.py.
Install
$ pip install fmi-weather-client
Get the weather by place name
import fmi_weather_client
weather = fmi_weather_client.weather_by_place_name("Mäkkylä, Espoo")
Selected weather station depends on FMI service. Be aware, that sometimes FMI service does pretty poor job at selecting
a station that provides meaningful data. For example, at the time of writing weather from Sipoo
returns data from
a station that measures cloud coverage and nothing more. Another example is Kaivopuisto, Helsinki
which returns data
from a station that seems to be unavailable or broken.
If place name is not known or weather data is not available, the following exception is thrown:
fmi_weather_client.errors.NoWeatherDataError
Get the weather by coordinates
import fmi_weather_client
weather = fmi_weather_client.weather_by_coordinates(63.361604, 27.392607)
Returned data is from the closest weather station. Just like with place name search, station might return very little data or nothing at all. If there are no stations within 50 km or weather data is not available, the following exception is thrown:
fmi_weather_client.errors.NoWeatherDataError
Weather data
Available weather information depends on the weather station. Currently supported fields:
- Station name
- Station latitude
- Station longitude
- Measurement time
- Temperature (°C)
- Humidity (%)
- Wind speed (m/s)
- Wind gust (m/s)
- Maximum gust wind in the past 10 minutes
- Wind direction (°)
- Dew point (°C)
- Precipitation amount (mm)
- Amount of rain in the past hour
- Precipitation intensity (mm/h)
- Pressure (hPa)
- Visibility (m)
- Cloud coverage
- Cloud coverage is indicated as 1/8 sky.
- 0.0 means no clouds
- 4.0 means half cloudy
- 8.0 means overcast
Observation data contains two fields: value
and unit
. You can also just print the measurement object to get a string
representation:
print('Temperature: %s' % weather.temperature)
# Output: Temperature: 1.4 °C
Development
Setup
Create and activate a virtual environment
$ python -m venv venv
$ source venv/bin/activate
Install required packages
$ python -m pip install -r requirements.txt
$ python -m pip install -r requirements-dev.txt
When you stop working, deactivate virtual environment
$ deactivate
Run tests
$ pytest
Run code quality tools
$ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --exclude venv
$ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --exclude venv
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fmi_weather_client-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d65fe657cabf3106f68a32e30c14b9c83237edaf96e5b30180f82fe2e551307 |
|
MD5 | ab5b861312a32edf081617bec8655e3e |
|
BLAKE2b-256 | f22edd57e018108085bba29b379552f43271b74183bd65d45051fd84135b331b |