Skip to main content

Downloading, reading and TS conversion of ECMWF reanalysis data

Project description

ci cov pip doc

Readers and converters for ECMWF reanalysis (ERA5 and ERA5-Land) data. Written in Python.

Works great in combination with pytesmo.

Installation

Install required C-libraries via conda. For installation we recommend Miniconda:

conda install -c conda-forge pygrib netcdf4 pyresample pykdtree

Afterwards the following command will install all remaining python dependencies as well as the ecmwf_models package itself.

pip install ecmwf_models

Quickstart

Download image data from CDS (set up API first) using the era5 download and era5land download console command (see era5 download --help for all options) …

era5land download /tmp/era5/img -s 2024-04-01 -e 2024-04-05 -v swvl1,swvl2 --h_steps 0,12

… and convert them to time series (ideally for a longer period). Check era5 reshuffle --help

era5land reshuffle /tmp/era5/img /tmp/era5/ts -s 2024-04-01 -e 2024-04-05 --land_points True

Finally, in python, read the time series data for a location as a pandas DataFrame.

>> from ecmwf_models.interface import ERATs
>> ds = ERATs('/tmp/era5/ts')
>> ds.read(18, 48)  # (lon, lat)

                        swvl1     swvl2
2024-04-01 00:00:00  0.318054  0.329590
2024-04-01 12:00:00  0.310715  0.325958
2024-04-02 00:00:00  0.360229  0.323502
        ...             ...       ...
2024-04-04 12:00:00  0.343353  0.348755
2024-04-05 00:00:00  0.350266  0.346558
2024-04-05 12:00:00  0.343994  0.344498

More programs are available to keep an exisiting image and time series record up-to-date. Type era5 --help and era5land --help to see all available programs.

CDS API Setup

In order to download data from CDS, this package uses the CDS API (https://pypi.org/project/cdsapi/). You can either pass your credentials directly on the command line (which might be unsafe) or set up a .cdsapirc file in your home directory (recommended). Please see the description at https://cds.climate.copernicus.eu/how-to-api.

Supported Products

At the moment this package supports

  • ERA5

  • ERA5-Land

reanalysis data in grib and netcdf format (download, reading, time series creation) with a default spatial sampling of 0.25 degrees (ERA5), and 0.1 degrees (ERA5-Land). It should be easy to extend the package to support other ECMWF reanalysis products. This will be done as need arises.

Docker image

We provide a docker image for this package. This contains all pre-installed dependencies and can simply be pulled via

$ docker pull ghcr.io/tuw-geo/ecmwf_models:latest

Alternatively, to build the image locally using the provided Dockerfile, call from the package root

$ docker buildx build -t ecmwf_models:latest . 2>&1 | tee docker_build.log

Afterwards, you can execute the era5 and era5land commands directly in the container (after mounting some volumes to write data to). The easiest way to set the API credentials in this case is via the CDSAPI_KEY container variable or the --cds_token option as below.

$ docker run -v /data/era5/img:/container/path ecmwf_models:latest bash -c \
   'era5land update_img /container/path --cds_token xxxx-xxx-xxx-xx-xxxx'

You can use this together with a task scheduler to regularly pull new data.

Citation

https://zenodo.org/badge/DOI/10.5281/zenodo.593533.svg

If you use the software in a publication then please cite it using the Zenodo DOI. Be aware that this badge links to the latest package version.

Contribute

We are happy if you want to contribute. Please raise an issue explaining what is missing or if you find a bug. Please take a look at the developers guide.

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

ecmwf_models-0.10.1.tar.gz (989.9 kB view details)

Uploaded Source

Built Distribution

ecmwf_models-0.10.1-py2.py3-none-any.whl (208.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ecmwf_models-0.10.1.tar.gz.

File metadata

  • Download URL: ecmwf_models-0.10.1.tar.gz
  • Upload date:
  • Size: 989.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.20

File hashes

Hashes for ecmwf_models-0.10.1.tar.gz
Algorithm Hash digest
SHA256 82a6bc0d6e7ccc64f8e14a4aa7bb27346ea63aaac9f92d772b5d9e33de8e1dfd
MD5 3e60989b828cc2f2a47caeea4e5fb076
BLAKE2b-256 bb2d9bc9e61121cd18a493544356785e6c97f1ad7f21a52bf031ede46e001129

See more details on using hashes here.

File details

Details for the file ecmwf_models-0.10.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ecmwf_models-0.10.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c59853ee2fa431e9b13b2db62607d38fea81fd1bc3035b5932c0839638ac2d9c
MD5 9b6ba940d32deb3797ee07b95d355e92
BLAKE2b-256 df12babdf841cff1e190253159f532f0f048085d11c2361189ce1ed68b5e5f0b

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