Python package to download open data from KMI
Project description
OpenKMI
Python package to download open data (observations and forecasts) from KMI.
# example to get the windspeed for Stabroek starting from 2021 - present
from openkmi.point_obs import Synop
kmi = Synop()
df = kmi.get_data('6438', start_date='2021-01-01T00:00:00', parameter_list=['wind_speed'])
Description
OpenKMI serves as a simple wrapper around the open data that the Royal Meteorological Institute of Belgium (RMI) offers. At present following data is implemented:
- Synoptic observations
- Automatic weather stations (AWS)
- ALARO forecasts
The package facilitates fetching data from the existing WFS and WMS services to download this data.
This is not an official package from the RMI.
Synoptic observations
The SYNOP data of RMI contain the observations of the synoptic network (22 stations) for the following parameters:
- Precipitation: PRECIP_QUANTITY + PRECIP_RANGE
- Temperature: TEMP + TEMP_MIN + TEMP_MAX + TEMP_GRASS_MIN
- Wind: WIND_SPEED + WIND_SPEED_UNIT + WIND_DIRECTION + WIND_PEAK_SPEED
- relative humidity: HUMIDITY_RELATIVE
- weather type: current weather
- air pressure: PRESSURE of PRESSURE_STATION_LEVEL
- sunshine duration: SUN_DURATION_24H
- Global radiation: SHORT_WAVE_FROM_SKY_24HOUR
- Total cloudiness: CLOUDINESS
We refer to the metadata and documentation of the synoptic measurements for more info.
Automatic weather stations
RMI operates a network of 17 automatic weather stations in Belgium. These weather stations report meteorological parameters such as air pressure, temperature, relative humidity, precipitation (quantity, duration), wind (speed, gust, direction), sunshine duration, shortwave solar radiation and infrared radiation every 10 minutes. Hourly and daily AWS data are computed from the 10-min observations.
At present only the data for station 'Zeebrugge' and 'Humain' from 2017-11-18 onwards are publicly available.
ALARO
The weather model 'Alaro' is a numerical forecast model that simulates the evolution of the atmosphere. The scientists of the RMI attempt constantly to improve these models on the basis of these newest numerical techniques, the parameterisation of physical processes and the use of meteorological observations.
The results of this research are processed in the operational weather model ALARO. It is used by the weather forecasters of the weather office, and for creating products and services for the general public.
All the parameters of the last run of Alaro can be downloaded. This data is generated automatically from ALARO every six hours. They aren't corrected or interpreted by the forecasters of the RMI. A correct interpretation of this data requires some expertise.
We refer to the metadata for more information.
Installation
pip install openkmi
Examples
See the notebooks under examples to get you started.
Quick start:
Point observations
from openkmi.point_obs import Synop
from openkmi.point_obs import AWS
# initialise synoptic data
kmi = Synop()
# initialise AWS data
# default is hourly
kmi_aws_hour = AWS()
# 10-min data:
kmi_aws_10min = AWS(freq='10T')
# Daily data:
kmi_aws_day = AWS(freq='D')
# get the available stations
df_stations = kmi.get_stations()
# get the available parameters
params = kmi.get_parameters()
# example to get the windspeed for a station starting from 2021 - present
df = kmi.get_data('6438', start_date='2021-01-01T00:00:00', parameter_list=['wind_speed'])
# Use more advanced filtering methods
from owslib.fes import PropertyIsEqualTo
custom_filt = PropertyIsEqualTo(propertyname='precip_range', literal='2')
df_r = kmi.get_data('6447', start_date='2020-01-01T00:00:00', end_date='2021-01-01T00:00:00',
parameter_list=['precip_quantity', 'precip_range'], custom_filter=custom_filt)
Alaro model forecasts
from openkmi.grid_data import Alaro
# initialise synoptic data
kmi = Alaro()
# get the available layers (parameters)
parameters = kmi.get_parameters()
# get more information on a layer
abstract = kmi.get_parameter_info('2_m_temperature')
# get available forecasting times
idx = kmi.get_times('2_m_temperature')
# get the data for a certain location (coordinates in WGS84)
df = kmi.get_data('2_m_temperature', 4.6824, 52.3617)
# get the data for a certain location (in Lambert72)
df = kmi.get_data('2_m_temperature', 169955, 338336, epsg='31370')
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
File details
Details for the file openkmi-0.6.0.tar.gz
.
File metadata
- Download URL: openkmi-0.6.0.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3aaa84dde49c22ef9c81e2117908a1405cdb5d907cecd728a65b561bbdb18f6 |
|
MD5 | 15389df848c9a02b5d35854fcbc60a20 |
|
BLAKE2b-256 | 7d82e3116ab1251a38ee726dc1e6d94cfe8e2ef2e9a030aa8a5277a148885fe8 |
File details
Details for the file openkmi-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: openkmi-0.6.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e92ba40a93fc72cd22932207e01cc216963c46c9ed15061ac65c34f59c1cfbc |
|
MD5 | 995595e4ab0d190c2a8d91c812ffb30b |
|
BLAKE2b-256 | 678a3bd0210997a2ac70f5f81a88bbbbf7f55cd42fbe3b2d0cc102a58ea94d56 |