A Python API wrapper for KNMI data.
Project description
KNMI-py
Python wrapper to fetch and parse daily and hourly weather observations from KNMI, either as raw text, CSV-like strings, or Pandas DataFrames.
See the official KNMI documentation for more details on data retrieval via scripts: KNMI Kennis- en datacentrum - Data ophalen vanuit een script
Note: This library is not affiliated in any way with KNMI; it only utilizes the KNMI API to request data.
Installation
KNMI-py is available via pip:
python -m pip install knmi-py
Key Functions
The library provides functions to retrieve both daily and hourly weather data:
knmi.get_day_data_raw(stations, start, end, inseason, variables)knmi.get_day_data_dataframe(stations, start, end, inseason, variables)knmi.get_hour_data_raw(stations, start, end, inseason, variables)knmi.get_hour_data_dataframe(stations, start, end, inseason, variables)knmi.get_forecast_dataframe(station, conform_values, variables)(Limited to De Bilt, station 260)
Metadata
Need to find a station number or understand what the weather variable abbreviations mean?
knmi.stations: A dictionary of all available KNMI weather stations.knmi.variables: A dictionary providing explanations for weather variable codes.
Example Usage
import knmi
import pandas as pd
# Get daily data for De Bilt (station 260) for a specific period
daily_df = knmi.get_day_data_dataframe(
stations=,
start='2023-01-01',
end='2023-01-31'
)
print("Daily Data:")
print(daily_df.head())
# Get hourly data for Schiphol (station 240) for a specific day
# Note: start and end for hourly data are strings like "YYYYMMDDHH"
hourly_df = knmi.get_hour_data_dataframe(
stations=,
start="2023032801", # March 28, 2023, 01:00
end="2023032824" # March 28, 2023, 24:00
)
print("\nHourly Data:")
print(hourly_df.head())
Disclaimer
The KNMI-py Python library is not affiliated with, created by, or maintained by KNMI. It merely uses the publicly available KNMI API to request data.
Contributing & Development
Contributions are welcome! Please feel free to open an issue or submit a pull request.
This project uses modern Python development tools:
- Packaging:
pyproject.toml(withhatchlingas the build backend). - Dependency Management & Task Running:
uvis used for fast dependency management. - Linting & Formatting:
Ruff(configured viapyproject.tomlorruff.toml). - Pre-commit Hooks: Used to ensure code quality and consistency before commits.
- Testing:
pytestfor running tests. - Multi-version Testing:
tox(withtox-uv) is used to ensure compatibility across multiple Python versions (currently Python 3.9+). Runtoxto execute tests in all configured environments.
Please ensure pre-commit hooks pass and tests succeed before submitting a pull request.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file knmi_py-0.2.0.tar.gz.
File metadata
- Download URL: knmi_py-0.2.0.tar.gz
- Upload date:
- Size: 107.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c659e634dfddf30df369a26e9273b74c3eaedf2043d16eee499687ed0293deb6
|
|
| MD5 |
2e71e7bd7756ba998d1da00417dfe9c1
|
|
| BLAKE2b-256 |
984b624f1690239a8a8bf4588f6bece506929ad2d85e9a199bf46cd08f461d80
|
File details
Details for the file knmi_py-0.2.0-py3-none-any.whl.
File metadata
- Download URL: knmi_py-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
302994b23c683b6174b077c92d29d793e4eaa16df7a21c2272f2900f53fb15c8
|
|
| MD5 |
e18774743fe7b7f37b453d2ff25f9930
|
|
| BLAKE2b-256 |
11d48ab31ec7ad87bc9c38727aad07eae7a9aefa7e64c869aa432ebe0959db1d
|