{"id":21492,"name":"How to work with meteorological ECMWF data","description":"A good starting point how you can work with European Centre for Medium-Range Weather Forecasts (ECMWF) services and data through Python using Jupyter notebooks.","url":"https://github.com/ecmwf/notebook-examples","last_synced_at":"2026-04-10T16:02:59.867Z","repository":{"id":41203431,"uuid":"154178553","full_name":"ecmwf/notebook-examples","owner":"ecmwf","description":"Example notebooks showing how to work with ECMWF services and data","archived":false,"fork":false,"pushed_at":"2025-08-07T10:01:33.000Z","size":267000,"stargazers_count":263,"open_issues_count":1,"forks_count":86,"subscribers_count":21,"default_branch":"master","last_synced_at":"2026-03-21T19:54:04.357Z","etag":null,"topics":["ecmwf","ecmwf-api","magics","notebook","python","visualisation"],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ecmwf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-10-22T16:36:07.000Z","updated_at":"2026-03-21T14:00:04.000Z","dependencies_parsed_at":"2025-08-18T20:42:10.406Z","dependency_job_id":null,"html_url":"https://github.com/ecmwf/notebook-examples","commit_stats":{"total_commits":219,"total_committers":4,"mean_commits":54.75,"dds":0.4840182648401826,"last_synced_commit":"8a2d6284f7744c4ac962354e184a40b1f44b43e0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ecmwf/notebook-examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf%2Fnotebook-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf%2Fnotebook-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf%2Fnotebook-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf%2Fnotebook-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecmwf","download_url":"https://codeload.github.com/ecmwf/notebook-examples/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf%2Fnotebook-examples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30917678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-25T07:55:14.202Z","status":"ssl_error","status_checked_at":"2026-03-25T07:55:10.924Z","response_time":80,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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"}},"owner":{"login":"ecmwf","name":"European Centre for Medium-Range Weather Forecasts","uuid":"6368067","kind":"organization","description":"Providing software to work with meteorological data and services","email":"Software.Support@ecmwf.int","website":"www.ecmwf.int","location":"Shinfield Park, Reading, United Kingdom","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/6368067?v=4","repositories_count":44,"last_synced_at":"2023-03-02T03:00:24.789Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ecmwf","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-12T21:17:56.440Z","updated_at":"2023-03-02T03:00:24.855Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecmwf","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecmwf/repositories"},"packages":[],"commits":{"id":1336267,"full_name":"ecmwf/notebook-examples","default_branch":"master","total_commits":247,"total_committers":4,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":61.75,"dds":0.42914979757085026,"past_year_total_commits":6,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":6.0,"past_year_dds":0.0,"last_synced_at":"2026-03-31T11:03:16.693Z","last_synced_commit":"3e07b005e96000ec8e38a060d45a7dfa39fdcc3a","created_at":"2023-09-12T07:41:51.549Z","updated_at":"2026-03-31T11:03:16.055Z","committers":[{"name":"Milana Vuckovic","email":"milana.vuckovic@ecmwf.int","login":"milanavuckovic","count":141},{"name":"Sylvie Lamy-Thepaut","email":"sylvie.lamy-thepaut@ecmwf.int","login":"sylvielamythepaut","count":83},{"name":"Stephan Siemen","email":"stephan.siemen@ecmwf.int","login":"StephanSiemen","count":20},{"name":"Iain Russell","email":"Iain.Russell@ecmwf.int","login":"iainrussell","count":3}],"past_year_committers":[{"name":"Milana Vuckovic","email":"milana.vuckovic@ecmwf.int","login":"milanavuckovic","count":6}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf%2Fnotebook-examples/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-02T00:00:08.713Z","repositories_count":6209116,"commits_count":926966555,"contributors_count":35789902,"owners_count":1144363,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"ecmwf/notebook-examples","html_url":"https://github.com/ecmwf/notebook-examples","last_synced_at":"2026-03-21T06:05:55.774Z","status":"error","issues_count":5,"pull_requests_count":32,"avg_time_to_close_issue":2108999.5,"avg_time_to_close_pull_request":279419.5517241379,"issues_closed_count":4,"pull_requests_closed_count":29,"pull_request_authors_count":4,"issue_authors_count":5,"avg_comments_per_issue":1.6,"avg_comments_per_pull_request":0.1875,"merged_pull_requests_count":28,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":27,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":45.04,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":25,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.037037037037037035,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":25,"created_at":"2023-09-12T07:42:25.558Z","updated_at":"2026-03-21T06:05:55.775Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf%2Fnotebook-examples","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf%2Fnotebook-examples/issues","issue_labels_count":{"bug":1,"enhancement":1},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":5},"pull_request_author_associations_count":{"COLLABORATOR":31,"NONE":2},"issue_authors":{"yuriishizawa":1,"clausmichele":1,"ninaburg":1,"erick-otenyo":1,"basitkhanNZ":1},"pull_request_authors":{"milanavuckovic":28,"sylvielamythepaut":3,"yuriishizawa":1,"mrocklin":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-25T00:00:37.747Z","repositories_count":13913724,"issues_count":34726389,"pull_requests_count":113472887,"authors_count":11209353,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"enhancement":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":2},"past_year_issue_authors":{"ninaburg":1},"past_year_pull_request_authors":{"milanavuckovic":2},"maintainers":[{"login":"milanavuckovic","count":28,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/milanavuckovic"},{"login":"sylvielamythepaut","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sylvielamythepaut"}],"active_maintainers":[{"login":"milanavuckovic","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/milanavuckovic"}]},"events":{"total":{"DeleteEvent":4,"PullRequestEvent":22,"ForkEvent":13,"IssuesEvent":1,"WatchEvent":49,"IssueCommentEvent":1,"PushEvent":38,"CreateEvent":8},"last_year":{"PullRequestEvent":1,"ForkEvent":4,"IssuesEvent":1,"WatchEvent":28,"IssueCommentEvent":1,"PushEvent":9,"CreateEvent":1}},"keywords":["ecmwf","ecmwf-api","magics","notebook","python","visualisation"],"dependencies":[{"ecosystem":"pypi","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2025-08-18T20:42:06.967Z","updated_at":"2025-08-18T20:42:06.967Z","repository_link":"https://github.com/ecmwf/notebook-examples/blob/master/environment.yml","dependencies":[{"id":24733818639,"package_name":"metview","ecosystem":"pypi","requirements":"\u003e=1.16.1","direct":true,"kind":"runtime","optional":false},{"id":24733819568,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733819575,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733819579,"package_name":"xarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733819583,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733819586,"package_name":"netcdf4","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733820608,"package_name":"ecmwf-opendata","ecosystem":"pypi","requirements":"\u003e=0.3.14","direct":true,"kind":"runtime","optional":false},{"id":24733820671,"package_name":"ipywidgets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733820672,"package_name":"ipympl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733820673,"package_name":"jupyter_contrib_nbextensions","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733820986,"package_name":"jupyterlab","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733820991,"package_name":"nbmake","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733821093,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733821094,"package_name":"pytest-xdist","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":24733821095,"package_name":"ecmwf-api-client","ecosystem":"pypi","requirements":"==1.6.3","direct":true,"kind":"runtime","optional":false}]}],"score":6.962243464266207,"created_at":"2023-09-12T07:37:15.539Z","updated_at":"2026-04-10T16:02:59.868Z","avatar_url":"https://github.com/ecmwf.png","language":"Jupyter Notebook","category":"Sustainable Development","sub_category":"Education","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# \u003cimg src=\"logo.png\" width=\"200\"\u003e - How to work with meteorological data\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ecmwf/notebook-examples/master)\n\nThe examples in this space should give you a good starting point how you can work with ECMWF services and data through Python using Jupyter notebooks. \n\n* [Visualisation meteorological data](visualisation) using ECMWF's [Magics](https://software.ecmwf.int/magics) plotting package for meteorological data.\n* [Download images and reproducing ECMWF Open Charts](opencharts) using new ECMWF Python libraries\n\nMany notebooks that showcase processing of ECMWF data using [Metview](https://metview.readthedocs.io/en/latest/) can now be found in Metview documentation page:\n* [Gallery of Jupyter notebooks](https://metview.readthedocs.io/en/latest/notebook_gallery.html)\n* [Gallery of small Python examples](https://metview.readthedocs.io/en/latest/gen_files/gallery/index.html)\n\nEach notebook has a list of nececary libraries needed for it to work and code to install it. \n\nIf you clone this repo and want to explore all the notebooks, you can use the environment.yml file to create a conda environment and install all the libraries inside, using this command:  \n\n`conda env create -f environment.yml`\n\nNote: All the libraries are frozen on 09th January 2025.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["grib","meteorology","bufr","earth-science","odb","weather"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/21492","html_url":"https://ost.ecosyste.ms/projects/21492"}