The Meteostat Python library provides a simple API for accessing open weather and climate data. The historical observations and statistics are collected by Meteostat from different public interfaces, most of which are governmental.
Among the data sources are national weather services like the National Oceanic and Atmospheric Administration (NOAA) and Germany's national meteorological service (DWD).
Are you looking for a hosted solution? Try our JSON API.
The Meteostat Python package is available through PyPI:
pip install meteostat
Meteostat requires Python 3.5 or higher. If you want to visualize data, please install Matplotlib, too.
The Meteostat Python library is divided into multiple classes which provide access to the actual data. The documentation covers all aspects of the library:
Let's plot 2018 temperature data for Vancouver, BC:
# Import Meteostat library and dependencies from datetime import datetime import matplotlib.pyplot as plt from meteostat import Point, Daily # Set time period start = datetime(2018, 1, 1) end = datetime(2018, 12, 31) # Create Point for Vancouver, BC location = Point(49.2497, -123.1193, 70) # Get daily data for 2018 data = Daily(location, start, end) data = data.fetch() # Plot line chart including average, minimum and maximum temperature data.plot(y=['tavg', 'tmin', 'tmax']) plt.show()
Take a look at the expected output:
If you want to support the project financially, you can make a donation using one of the following services:
Meteorological data is provided under the terms of the Creative Commons Attribution-NonCommercial 4.0 International Public License (CC BY-NC 4.0). You may build upon the material for any purpose, even commercially. However, you are not allowed to redistribute Meteostat data "as-is" for commercial purposes.
The code of this library is available under the MIT license.