{"id":13528765,"url":"https://github.com/TUW-GEO/ecmwf_models","last_synced_at":"2025-04-01T14:33:01.765Z","repository":{"id":10771661,"uuid":"66842789","full_name":"TUW-GEO/ecmwf_models","owner":"TUW-GEO","description":"Python package for downloading ECMWF reanalysis data and converting it into a time series format.","archived":false,"fork":false,"pushed_at":"2025-03-10T09:46:28.000Z","size":6458,"stargazers_count":40,"open_issues_count":2,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-30T09:29:57.679Z","etag":null,"topics":["climers","earth-science","ecmwf","era5","geo","modelling","python","remote-sensing"],"latest_commit_sha":null,"homepage":"https://ecmwf-models.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TUW-GEO.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-29T12:44:50.000Z","updated_at":"2025-03-10T09:46:32.000Z","dependencies_parsed_at":"2024-10-27T14:44:29.297Z","dependency_job_id":"0d410e02-e879-4982-b1c8-ae14e3bce0b5","html_url":"https://github.com/TUW-GEO/ecmwf_models","commit_stats":{"total_commits":172,"total_committers":10,"mean_commits":17.2,"dds":"0.33720930232558144","last_synced_commit":"565bb9ae80f7cc75c8541f105daa3a0e1ff6f978"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUW-GEO%2Fecmwf_models","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUW-GEO%2Fecmwf_models/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUW-GEO%2Fecmwf_models/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUW-GEO%2Fecmwf_models/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TUW-GEO","download_url":"https://codeload.github.com/TUW-GEO/ecmwf_models/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246301906,"owners_count":20755511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["climers","earth-science","ecmwf","era5","geo","modelling","python","remote-sensing"],"created_at":"2024-08-01T07:00:24.099Z","updated_at":"2025-04-01T14:33:01.748Z","avatar_url":"https://github.com/TUW-GEO.png","language":"Python","funding_links":[],"categories":["Examples or singular models"],"sub_categories":[],"readme":"============\necmwf_models\n============\n\n|ci| |cov| |pip| |doc|\n\n.. |ci| image:: https://github.com/TUW-GEO/ecmwf_models/actions/workflows/ci.yml/badge.svg?branch=master\n   :target: https://github.com/TUW-GEO/ecmwf_models/actions\n\n.. |cov| image:: https://coveralls.io/repos/TUW-GEO/ecmwf_models/badge.png?branch=master\n  :target: https://coveralls.io/r/TUW-GEO/ecmwf_models?branch=master\n\n.. |pip| image:: https://badge.fury.io/py/ecmwf-models.svg\n    :target: https://badge.fury.io/py/ecmwf-models\n\n.. |doc| image:: https://readthedocs.org/projects/ecmwf-models/badge/?version=latest\n   :target: https://ecmwf-models.readthedocs.io/en/latest/\n\n\nReaders and converters for ECMWF reanalysis (`ERA5 \u003chttps://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels\u003e`_\nand `ERA5-Land \u003chttps://cds.climate.copernicus.eu/datasets/reanalysis-era5-land\u003e`_) data.\nWritten in Python.\n\nWorks great in combination with `pytesmo \u003chttps://github.com/TUW-GEO/pytesmo\u003e`_.\n\n\nInstallation\n============\n\nThis package has been tested on Linux, Windows and macOS for\npython ``3.10``, ``3.11``, and ``3.12``.\nIdeally you should use one of the supported python versions (the package might\nstill work for older python versions).\n\nUse ``pip`` to install all required python dependencies\nas well as the ``ecmwf_models`` package from `pypi \u003chttps://pypi.org/project/ecmwf-models/\u003e`_.\n\n.. code::\n\n    pip install ecmwf_models\n\nOn Windows systems, it might be necessary to install required C-libraries via conda.\nFor installation we recommend `Miniconda \u003chttp://conda.pydata.org/miniconda.html\u003e`_:\n\n.. code::\n\n    conda install -c conda-forge pygrib netcdf4 pyresample pykdtree\n\nQuick Start\n===========\n\nDownload image data from CDS (`set up API \u003chttps://cds.climate.copernicus.eu/how-to-api\u003e`_ first) using the ``era5 download`` and ``era5land download``\nconsole command (see ``era5 download --help`` for all options) ...\n\n.. code-block:: shell\n\n    era5land download /tmp/era5/img -s 2024-04-01 -e 2024-04-05 -v swvl1,swvl2 --h_steps 0,12\n\n... and convert them to time series (ideally for a longer period). Check ``era5 reshuffle --help``\n\n.. code-block:: shell\n\n    era5land reshuffle /tmp/era5/img /tmp/era5/ts -s 2024-04-01 -e 2024-04-05 --land_points True\n\nFinally, in python, read the time series data for a location as a pandas\nDataFrame.\n\n.. code-block:: python\n\n    \u003e\u003e from ecmwf_models.interface import ERATs\n    \u003e\u003e ds = ERATs('/tmp/era5/ts')\n    \u003e\u003e ds.read(18, 48)  # (lon, lat)\n\n                            swvl1     swvl2\n    2024-04-01 00:00:00  0.318054  0.329590\n    2024-04-01 12:00:00  0.310715  0.325958\n    2024-04-02 00:00:00  0.360229  0.323502\n            ...             ...       ...\n    2024-04-04 12:00:00  0.343353  0.348755\n    2024-04-05 00:00:00  0.350266  0.346558\n    2024-04-05 12:00:00  0.343994  0.344498\n\nMore programs are available to keep an exisiting image and time series record\nup-to-date. Type ``era5 --help`` and ``era5land --help`` to see all available\nprograms.\n\nCDS API Setup\n=============\n\nIn order to download data from CDS, this package uses the CDS API\n(https://pypi.org/project/cdsapi/). You can either pass your credentials\ndirectly on the command line (which might be unsafe) or set up a\n.cdsapirc file in your home directory (recommended).\nPlease see the description at https://cds.climate.copernicus.eu/how-to-api.\n\nSupported Products\n==================\n\nAt the moment this package supports\n\n- **ERA5**\n- **ERA5-Land**\n\nreanalysis data in **grib** and **netcdf** format (download, reading, time\nseries creation) with a default spatial sampling of 0.25 degrees (ERA5),\nand 0.1 degrees (ERA5-Land).\nIt should be easy to extend the package to support other ECMWF reanalysis\nproducts. This will be done as need arises.\n\nDocker image\n============\n\nWe provide a docker image for this package. This contains all\npre-installed dependencies and can simply be pulled via\n\n.. code-block:: shell\n\n    $ docker pull ghcr.io/tuw-geo/ecmwf_models:latest\n\nAlternatively, to build the image locally using the provided Dockerfile, call\nfrom the package root\n\n.. code-block:: shell\n\n    $ docker buildx build -t ecmwf_models:latest . 2\u003e\u00261 | tee docker_build.log\n\nAfterwards, you can execute the ``era5`` and ``era5land`` commands directly in\nthe container (after mounting some volumes to write data to).\nThe easiest way to set the API credentials in this case is via the\n``CDSAPI_KEY`` container variable or the ``--cds_token`` option as below.\n\n.. code-block:: shell\n\n    $ docker run -v /data/era5/img:/container/path ecmwf_models:latest bash -c \\\n       'era5land update_img /container/path --cds_token xxxx-xxx-xxx-xx-xxxx'\n\nYou can use this together with a task scheduler to regularly pull new data.\n\nCitation\n========\n\n.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.593533.svg\n   :target: https://doi.org/10.5281/zenodo.593533\n\nIf you use the software in a publication then please cite it using the Zenodo DOI.\nBe aware that this badge links to the latest package version.\n\nContribute\n==========\n\nWe are happy if you want to contribute. Please raise an issue explaining what\nis missing or if you find a bug.\nPlease take a look at the `developers guide \u003chttps://github.com/TUW-GEO/ecmwf_models/blob/master/CONTRIBUTING.rst\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTUW-GEO%2Fecmwf_models","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTUW-GEO%2Fecmwf_models","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTUW-GEO%2Fecmwf_models/lists"}