Skip to main content

API for DWD's open weather grib data.

Project description

dwdGribExtractor: A tiny Python interface to request and extract NWP grib file data from opendata.dwd.de

https://img.shields.io/pypi/v/dwdGribExtractor.svg

dwdGribExtractor is a smart package to easely extract data from numerical weather prediction grib files provided by DWD. The difference to other packages is the location flexibility. So every point on the 2.2km x 2.2km grid (ICON-D2) can be retrieved for the next X forecast hours.

At the moment only ICON_D2 is supported.

Supported weather variables

For currently available weather variabels see: ICON User Manual Chapter 6.1.4 table 6.4

Installation

Install with pip:

$ pip install dwdGrilbExtractor

Dependencies

To read the grib2 files xarray with cfgrib engine is used. The easiest way to install cfgrib and all its binary dependencies is via Conda:

$ conda install -c conda-forge cfgrib

alternatively, if you install the binary dependencies yourself, you can install the Python package from PyPI with:

$ pip install cfgrib

Binary dependencies

cfgrib depends on the eccodes python package to access the ECMWF ecCodes binary library, when not using conda please follow the System dependencies section there.

Windows

It is strongly recommended to use Unix enironment running dwdGrib2location. For windows several issues may appear. At the moment dwdGrib2location is tested with Windows10 and works if following requirements are satiesfied. To build eccodes on windows by your own should be avoided. The easiest way to use eccodes on windows is to install it in an MSYS environment.

  1. Install MSYS

  2. Install eccodes. Depending on your system run in the MSYS cli:

    $ pacman -S mingw-w64-ucrt-x86_64-eccodes
  3. Set environment variables:

    ECCODES_DIR = <path_to_ecccodes_install_dir> e.g (C:\msys64\ucrt64)
    ECCODES_DEFINITION_PATH = <path_to_eccodes_definitions> (e.g C:\msys64\ucrt64\share\eccodes\definitions)
  4. Add eccodes to path. This is the folder inside the MSYS environment where the .exe files are located:

    e.g. C:\msys64\ucrt64\bin
  5. Install ecCodes:

    $ pip install eccodes
  6. Install cfgrib:

    $ pip install cfgrib
  7. Check if cfgrib is working:

    $ python -m cfgrib selfcheck
    Found: ecCodes v2.20.0.
    Your system is ready.

Linux

1. Install eccodes with apt or build it by your own TODO

Example

locationList = {
    "Vienna": {
        "lat": 48.20,
        "lon": 16.37
    },
    "Graz": {
        "lat": 47.07,
        "lon": 15.43
    }
}

variables = ["aswdir_s", "aswdifd_s", "t_2m"]

forecast = ICON_D2(locations = locationList, forecastHours = 3)
data = forecast.collectData(varList = variables, cores = None) # Disable multiprocessing
#data = forecast.collectData(varList = variables, cores = 4)


#### Indexing one location
loc = "Graz"
result = data.loc[loc]
result = data.loc[loc, "2021-09-06 06:15:00"]

#### Indexing multiple locations
loc = ["Graz", "Vienna"]
result = data.loc[loc]

#### Indexing one location with datetime condition
loc = "Graz"
mask = data.loc[loc].index.get_level_values(0) > np.datetime64('2021-09-06T06:15:00')
mask = data.loc[loc].index.get_level_values(0).hour == 8
result = data.loc[loc][mask]

#### Indexing multiple locations with datetime condition
loc = ["Graz", "Vienna"]
mask = data.loc[loc].index.get_level_values(1) > np.datetime64('2021-09-06 06:15:00')
mask = data.loc[loc].index.get_level_values(1).hour == 8
result = data.loc[loc][mask]

Knwon Issues

Windows

  • Multiprocessing on some windows machines may not work. Disable it by setting forecast.collectData(varList = variables, cores = None)

  • Spyder IDE does not produce print outputs if multiprocessing is enabled.

  • Dont run the code in Spyder with F5 or debug mode. This calls runfile() and sometimes crashes memory.

Author

Manuel Strohmaier

License

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 details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dwdGribExtractor-0.0.7.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

dwdGribExtractor-0.0.7-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file dwdGribExtractor-0.0.7.tar.gz.

File metadata

  • Download URL: dwdGribExtractor-0.0.7.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.5

File hashes

Hashes for dwdGribExtractor-0.0.7.tar.gz
Algorithm Hash digest
SHA256 6e0bc94f259fe3db956841f1bc48456e75e2c5eb84882233bf42fddb56f8c174
MD5 2b17bbc53171c63e0119652e0ef22268
BLAKE2b-256 8ff4aa55f4baad457990b07be88baf875b968acc9c14d82f28034040650adc81

See more details on using hashes here.

File details

Details for the file dwdGribExtractor-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: dwdGribExtractor-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.5

File hashes

Hashes for dwdGribExtractor-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 9f13ac7f2cd8fb6e4eb898e0287258e3480095f82fe414702cc6978c76be8546
MD5 d223c37312569f9c94ea41c0865c0b3d
BLAKE2b-256 60175a8572a6d1fb3bfe4c6403d9fa334a159da72a2b1f4f1fbdedee5d6a1253

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page