Git Product home page Git Product logo

markuszehner / dwdweather2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from panodata/dwdweather2

0.0 0.0 1.0 214 KB

Python client to access weather data from Deutscher Wetterdienst (DWD), the federal meteorological service in Germany.

Home Page: https://community.panodata.org/t/dwdweather2-a-python-client-to-access-weather-data-from-deutscher-wetterdienst-dwd/98

License: MIT License

Python 98.38% Makefile 1.62%

dwdweather2's Introduction

image

image

image

image

image

image

image

dwdweather2

Python client to access weather data from Deutscher Wetterdienst (DWD), the federal meteorological service in Germany.

Installation

pip install dwdweather2

Synopsis

Command line usage

Get all stations with daily resolution:

dwdweather stations --resolution=daily

Get all stations with hourly resolution (default):

dwdweather stations --resolution=hourly

Get all stations with 10_minutes resolution:

dwdweather stations --resolution=10_minutes

Get closest station (first argument is longitude, second is latitude):

dwdweather station 7.0 51.0

Export stations as CSV:

dwdweather stations --type csv --file stations.csv

Export stations as GeoJSON:

dwdweather stations --type geojson --file stations.geojson

Get weather at station for certain hour (UTC):

dwdweather weather 2667 2019-06-01T15:00

To restrict the import to specified categories, run the program like:

dwdweather weather 2667 2019-06-01T15:00 --categories air_temperature precipitation pressure

Finally, to drop the cache database before performing any work, use the --reset-cache option:

dwdweather stations --reset-cache

Choose dataset with daily resolution:

dwdweather weather 44 2020-06-01 --resolution=daily

Choose dataset with hourly resolution:

dwdweather weather 44 2020-06-01T08 --resolution=hourly

Choose dataset with 10_minutes resolution:

dwdweather weather 2667 2019-06-01T15:20 --resolution=10_minutes

Usage as library

from datetime import datetime
from dwdweather import DwdWeather

# Create client object.
dwd = DwdWeather(resolution="hourly")

# Find closest station to position.
closest = dwd.nearest_station(lon=7.0, lat=51.0)

# The hour you're interested in.
# The example is 2014-03-22 12:00 (UTC).
query_hour = datetime(2014, 3, 22, 12)

result = dwd.query(station_id=closest["station_id"], timestamp=query_hour)
print(result)

DwdWeather.query() returns a dictionary with the full set of possible keys as outlined in doc/usage-library.rst.

Notes

  • Data is cached in a local sqlite3 database to improve query performance for consecutive invocations.
  • The "stations cache" is filled upon first request to DwdWeather.stations() or DwdWeather.nearest_station()
  • The "stations cache" will not be refreshed automatically. Use DwdWeather.import_stations() to do this.
  • The "measures cache" is filled upon first access to measures using DwdWeather.query() and updated whenever a query cannot be fulfilled from the cache.
  • The cache by default resides in the ~/.dwd-weather directory. This can be controlled using the cachepath argument of DwdWeather().
  • The amount of data can be ~60 MB per station for full historic extent and will obviously increase by time.
  • If weather data is queried and the query can't be fulfilled from the cache, data is loaded from the server - even if the data has been updated a second before. If the server doesn't have data for the requested time (e.g. since it's not yet available), this unnecessarily causes network traffic and wait time. Certainly space for improvement here.

Licenses

Code license

Licensed under the MIT license. See LICENSE for details.

Data license

The DWD has information about their terms of use policy in German and English.

Project information

Credits

Thanks to Marian Steinbach, all other contributors and the DWD.

Changelog

See file CHANGES.rst.

dwdweather2's People

Contributors

amotl avatar marians avatar jlewis91 avatar wtfuii avatar noordsestern avatar schmiddim avatar pklaus avatar stianchris avatar

Forkers

aranil

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.