OpenWeatherMap Requests
Python package to fetch data from OpenWeatherMap.org using Requests and Requests-cache and get Pandas DataFrame with weather history.
Command Line Interface Usage
Current weather
Get current weather data
$ python openweathermap_requests.py --lon 0.34189 --lat 46.5798114
Historical weather data by lat/lon
Fetch historical weather data from nearest weather station of coordinates (lon=0.34189, lat=46.5798114) using:
$ python openweathermap_requests.py --lon 0.34189 --lat 46.5798114 --dtrange 20150101:20150801
Historical weather data by place
Fetch historical weather data by place name using:
$ python openweathermap_requests.py --place Poitiers,FR --dtrange 20150101:20150801
Library Usage
import datetime
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
from openweathermap_requests import OpenWeatherMapRequests
ow = OpenWeatherMapRequests(api_key='', cache_name='cache-openweathermap', expire_after=5*60)
# Historic weather by lat/lon
(lon, lat) = (0.34189, 46.5798114) # Poitiers
data = ow.get_weather(lon=lon, lat=lat) # display current weather data
print(data)
stations = ow.find_stations_near(lon=lon, lat=lat, cnt=10) # get 10 nearest stations from coordinates (lon, lat)
station_id = stations.iloc[0]['station.id'] # get station_id of nearest station
start_date = datetime.datetime(2014, 1, 1)
end_date = datetime.datetime(2014, 6, 1)
data = ow.get_historic_weather(station_id, start_date, end_date) # get historic weather from start date to end date by station_id
print(data)
# Historic weather by place
place = 'Poitiers,FR'
data = ow.get_historic_weather(place, start_date, end_date) # get historic weather from start date to end date by place
print(data)
Install
From Python package index
$ pip install openweathermap_requests
From source
Get latest version using Git
$ git clone https://github.com/scls19fr/openweathermap_requests.git
$ cd openweathermap_requests
$ python setup.py install
or
$ pip install git+https://github.com/scls19fr/openweathermap_requests.git
Links
- Documentation can be found at Read The Docs ;
- Source code and issue tracking can be found at GitHub.
- Feel free to tip me!