{"id":51545,"name":"GraphCast","description":"Learning skillful medium-range global weather forecasting.","url":"https://github.com/google-deepmind/weathernext","last_synced_at":"2026-07-29T00:30:17.871Z","repository":{"id":185081335,"uuid":"666376652","full_name":"google-deepmind/weathernext","owner":"google-deepmind","description":null,"archived":false,"fork":false,"pushed_at":"2026-08-06T15:01:13.000Z","size":2020,"stargazers_count":6776,"open_issues_count":77,"forks_count":890,"subscribers_count":96,"default_branch":"main","last_synced_at":"2026-08-07T07:49:42.761Z","etag":null,"topics":["weather","weather-forecast"],"latest_commit_sha":null,"homepage":"","language":"Python","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/google-deepmind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-14T11:07:57.000Z","updated_at":"2026-08-07T07:46:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"b5d8ef70-176f-4c26-8fc5-aa731e9affae","html_url":"https://github.com/google-deepmind/weathernext","commit_stats":{"total_commits":17,"total_committers":8,"mean_commits":2.125,"dds":0.7647058823529411,"last_synced_commit":"97d1ad50b0b7af4aaed7790167dffa769bae1f2c"},"previous_names":["deepmind/graphcast","google-deepmind/graphcast","google-deepmind/weathernext"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/google-deepmind/weathernext","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fweathernext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fweathernext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fweathernext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fweathernext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google-deepmind","download_url":"https://codeload.github.com/google-deepmind/weathernext/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fweathernext/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36366077,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-07T02:00:06.708Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"google-deepmind","name":"Google DeepMind","uuid":"8596759","kind":"organization","description":"","email":null,"website":"https://www.deepmind.com/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/8596759?v=4","repositories_count":349,"last_synced_at":"2026-08-07T14:34:22.880Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/google-deepmind","funding_links":[],"total_stars":226919,"followers":25951,"following":0,"created_at":"2022-11-02T16:32:01.461Z","updated_at":"2026-08-07T14:34:22.895Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google-deepmind","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google-deepmind/repositories"},"packages":[],"commits":{"id":11934466,"full_name":"google-deepmind/weathernext","default_branch":"master","total_commits":52,"total_committers":14,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":3.7142857142857144,"dds":0.7307692307692308,"past_year_total_commits":13,"past_year_total_committers":7,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.8571428571428572,"past_year_dds":0.6923076923076923,"last_synced_at":"2026-08-07T00:58:27.604Z","last_synced_commit":"89c4b2a77a1c57b328b909c575550fd2e5aadc9c","created_at":"2026-07-20T12:05:16.188Z","updated_at":"2026-08-07T00:58:27.578Z","committers":[{"name":"Alvaro Sanchez","email":"alvarosg@google.com","login":"alvarosg","count":14},{"name":"Andrew El-Kadi","email":"aelkadi@google.com","login":"andrewlkd","count":11},{"name":"Matthew Willson","email":"matthjw@google.com","login":"mjwillson","count":5},{"name":"Deepmind Weather","email":"graphcast@google.com","login":null,"count":5},{"name":"Daniel Suo","email":"dsuo@google.com","login":"danielsuo","count":4},{"name":"Octavian Voicu","email":"octav@google.com","login":"voctav","count":3},{"name":"Louka Ewington-Pitsos","email":"lewingtonpitsos@gmail.com","login":"Lewington-pitsos","count":2},{"name":"Timo Ewalds","email":"tewalds@google.com","login":"tewalds","count":2},{"name":"Yash Katariya","email":"yashkatariya@google.com","login":"yashk2810","count":1},{"name":"Stephan Hoyer","email":"shoyer@google.com","login":"shoyer","count":1},{"name":"Scott Geraedts","email":"geraedts@google.com","login":"geraedts-google","count":1},{"name":"Matej Aleksandrov","email":"maleksandrov@google.com","login":"AleksMat","count":1},{"name":"Hana Joo","email":"hanajoo@google.com","login":"h-joo","count":1},{"name":"Amer Elsheikh","email":"amere@google.com","login":"QEDady","count":1}],"past_year_committers":[{"name":"Daniel Suo","email":"dsuo@google.com","login":"danielsuo","count":4},{"name":"Alvaro Sanchez","email":"alvarosg@google.com","login":"alvarosg","count":4},{"name":"Yash Katariya","email":"yashkatariya@google.com","login":"yashk2810","count":1},{"name":"Matej Aleksandrov","email":"maleksandrov@google.com","login":"AleksMat","count":1},{"name":"Andrew El-Kadi","email":"aelkadi@google.com","login":"andrewlkd","count":1},{"name":"Amer Elsheikh","email":"amere@google.com","login":"QEDady","count":1},{"name":"DeepMind Weather","email":"graphcast@google.com","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fweathernext/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-07T00:00:09.303Z","repositories_count":6590139,"commits_count":911368621,"contributors_count":38518463,"owners_count":1318615,"committers_count":3271745,"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":"google-deepmind/weathernext","html_url":"https://github.com/google-deepmind/weathernext","last_synced_at":null,"status":"not_found","issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2026-07-20T16:39:13.611Z","updated_at":"2026-07-20T16:39:28.684Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fweathernext","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fweathernext/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{},"issue_authors":{},"pull_request_authors":{},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-07T00:00:23.484Z","repositories_count":14813258,"issues_count":29450430,"pull_requests_count":97446284,"authors_count":11403742,"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":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"WatchEvent":3},"last_year":{"WatchEvent":3}},"keywords":["weather","weather-forecast"],"dependencies":[],"score":null,"created_at":"2023-09-13T12:51:55.800Z","updated_at":"2026-08-08T05:04:57.232Z","avatar_url":"https://github.com/google-deepmind.png","language":"Python","category":"Atmosphere","sub_category":"Meteorological Observation and Forecast","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# WeatherNext\n\n## WeatherNext 2\n\nThis repo contains the code for WeatherNext 2, the global, medium-range\natmospheric and cyclone forecasting model developed by Google DeepMind and\nGoogle Research.\n\nIt also contains code for prior generation models\n[GraphCast](https://deepmind.google/blog/graphcast-ai-model-for-faster-and-more-accurate-global-weather-forecasting/)\nand\n[GenCast](https://deepmind.google/blog/gencast-predicts-weather-and-the-risks-of-extreme-conditions-with-sota-accuracy/).\n\n**Accessing Forecast Data Feeds** If you are interested in directly accessing\ndaily data feeds of WN2 model outputs rather than running the model yourself, we\nprovide them across multiple platforms (including Earth Engine, BigQuery, and\nVertex AI). Learn more about how to access\n[here](https://developers.google.com/weathernext/guides/access-forecast).\n\n### Learn More\n\n*   **Model Guide \u0026 Documentation:** [Google Developers WeatherNext Guide](https://developers.google.com/weathernext/guides/models)\n*   **WeatherNext Cyclones Paper:** [Operational tropical cyclone forecasting\n    with AI](https://www.nature.com/articles/s41586-026-10953-2)\n*   **FGN/WN2 Technical Report:** [Skillful joint probabilistic weather\n    forecasting from marginals\n    (arXiv:2506.10772)](https://arxiv.org/abs/2506.10772)\n*   **WeatherNext 2 Blog Post:** [WeatherNext 2: Our most advanced weather forecasting model](https://blog.google/innovation-and-ai/models-and-research/google-deepmind/weathernext-2/)\n*   **WeatherNext Cyclones Blog Post:** [WeatherNext: AI model achieves breakthrough in forecasting cyclones](https://deepmind.google/blog/weathernext-ai-model-achieves-breakthrough-in-forecasting-cyclones/)\n\n### Older Models\n\nThis repository serves as the primary home for the WeatherNext family models.\nAlongside WN2, this repository also hosts the code and documentation for our\nlegacy and specialized models:\n\n*   [WeatherNext Graph](docs/weathernext1_graph/README.md): Deterministic\n    medium-range weather forecasting using graph neural networks. Published as\n    GraphCast.\n*   [WeatherNext Gen](docs/weathernext1_gen/README.md): Diffusion-based ensemble\n    forecasting for medium-range weather. Published as GenCast.\n\n## Provided Pretrained Models\n\nThis repository provides code to run the different versions of WeatherNext 2 and\nWeatherNext Cyclones. The only difference between them is that WN2 can also\npredict 100m wind. In particular, WN2 also forecasts cyclones with the exact\nsame algorithm as WN Cyclones. Their weights are different due to independent\ntraining runs.\n\n### WeatherNext 2\n\n1.  **WeatherNext2_\u003c2025** (Used Operationally): 0.25° resolution (~30km).\n    Fine-tuned on ECMWF HRES data and designed to be initialized directly from\n    operational HRES initial conditions rather than ERA5 reanalysis. Trained on\n    data through 2024. Corresponding weights files:\n    `WeatherNext2_\u003c2025_model{1,2,3,4}.npz`.\n\n### WeatherNext Cyclones - models which reproduce the results in paper\n\n1.  **WeatherNextCyclones_\u003c2025** (Used Operationally): 0.25° resolution. The\n    model that ran live during the 2025 Atlantic hurricane season, publicly\n    referred to as FNV3 (NHC's postprocessed version was called GDMI). Trained\n    on data through 2024. The paper appendix contains a partial evaluation of\n    2025 in NHC basins for this model checkpoint, and how the tracker\n    improvement in September 2025 improved results. Corresponding weights files:\n    `WeatherNextCyclones_\u003c2025_model{1,2,3,4}.npz`.\n2.  **WeatherNextCyclones_\u003c2024**: 0.25° resolution. Reproduces results from the\n    paper on 2024. Trained on data through 2023. Corresponding weights files:\n    `WeatherNextCyclones_\u003c2024_model{1,2,3,4}.npz`.\n3.  **WeatherNextCyclones_\u003c2023**: 0.25° resolution. Reproduces results from the\n    paper on 2023. Trained on data through 2022. Corresponding weights files:\n    `WeatherNextCyclones_\u003c2023_model{1,2,3,4}.npz`.\n\n### WeatherNext Cyclones Mini\n\n1.  **WeatherNextCyclones_Mini_\u003c2024**: 1° resolution. A lightweight version\n    suitable for lower memory and compute constraints (e.g., local testing or\n    single TPUs or GPUs). Not expected to match the performance of the larger\n    versions. Forecasts the same things as WeatherNext2_\u003c2025, including\n    cyclones. Trained on data through 2023. Corresponding weights file:\n    `WeatherNextCyclones_Mini_\u003c2024.npz`.\n2.  **WeatherNextCyclones_Mini_\u003c2023**: As above, but only trained on data through\n    2022. Corresponding weights file: `WeatherNextCyclones_Mini_\u003c2023.npz`.\n\nEvaluation results for WeatherNextCyclones_Mini can be found in the appendix\nof the\n[WeatherNext Cyclones Paper](https://www.nature.com/articles/s41586-026-10953-2).\n\n## Quick Start Guide\n\nThe easiest way to get started with WeatherNext 2 is by running our interactive\n[Colab Notebook](docs/weathernext2/wn2_demo.ipynb), which can be opened from\n[Colaboratory](https://colab.research.google.com/github/google-deepmind/weathernext/blob/master/docs/weathernext2/wn2_demo.ipynb).\nThis notebook defaults to WeatherNext Cyclones Mini, which we recommend running\nusing the `v5e-1` runtime, available for free as a Colab runtime. However, the\nnotebook can also be used to run the other models enumerated above (but these\nwill require a `v5p` accelerator).\n\nIn general, we recommend running WeatherNext 2 on TPU where possible, since its\nimplementation has been optimised for it. However, if choosing to run on GPU,\nthe attention implementation must be switched, as shown in the demo notebook.\nThe non-Mini models require H100 for sufficient VRAM. The Mini models should\nmanage inference on a P100.\n\nPre-trained weights and sample data are available on our [Google Cloud\nBucket](https://console.cloud.google.com/storage/browser/dm_graphcast).\n\n**Inside the notebook, you will learn how to:**\n\n1.  Automatically load the required model weights from our storage bucket.\n2.  Load initial state weather data (e.g., HRES initial conditions).\n3.  Initialize the WN2 (FGN) architecture.\n4.  Run auto-regressive rollout steps to generate a forecast prediction.\n5.  Visualize the outputs (e.g., temperature, wind speed, geopotential height).\n6.  Run the direct tracker on model outputs to obtain track data for cyclones.\n7.  Compute the training loss on model predictions and targets, and take a\n    gradient step.\n\n## Setup\n\n### Installation\n\n\u003e [!NOTE] This is research code provided as-is for the purpose of running and\n\u003e experimenting with the published models. There are no guarantees of API\n\u003e stability and future updates may introduce breaking changes without notice. We\n\u003e recommend pinning to a specific release.\n\nE.g.:\n\n```bash\npip install git+https://github.com/google-deepmind/weathernext.git@v0.3.0\n```\n\n### Model Weights\n\nTo run WeatherNext 2 or WeatherNext Cyclones, you will need to download the\npre-trained model weights. You can access the weights on [Google Cloud\nBucket](https://console.cloud.google.com/storage/browser/dm_graphcast).\n\n### Shared Utilities\n\nThe `utils/` directory contains shared libraries used by multiple WeatherNext\nmodels, providing common infrastructure for autoregressive rollouts, input\nnormalization, graph building blocks, loss computation, and JAX-compatible\nxarray utilities. See the per-model READMEs for model-specific code.\n\n### Training Data\n\nFull model training requires downloading the\n[ERA5](https://www.ecmwf.int/en/forecasts/datasets/reanalysis-datasets/era5)\ndataset from [ECMWF](https://www.ecmwf.int/), best accessed as Zarr via\n[WeatherBench2](https://weatherbench2.readthedocs.io/en/latest/data-guide.html#era5).\n\nOperational fine-tuning data is available via [WeatherBench2's HRES\ndata](https://weatherbench2.readthedocs.io/en/latest/data-guide.html#ifs-hres-t-0-analysis).\n\nThese datasets may be governed by separate terms and conditions. Check that you\ncan comply with any applicable restrictions before use.\n\n## License\n\nCopyright 2026 Google LLC.\n\nThe Colab notebooks and the associated code are licensed under the Apache\nLicense, Version 2.0 (Apache 2.0); you may not use these materials except in\ncompliance with the Apache 2.0 license. You may obtain a copy of the License at:\nhttps://www.apache.org/licenses/LICENSE-2.0.\n\nAll other materials are licensed under the Creative Commons Attribution 4.0\nInternational (CC BY 4.0). You may obtain a copy of the License at:\n[https://creativecommons.org/licenses/by/4.0/](https://creativecommons.org/licenses/by/4.0/).\n\nUnless required by applicable law or agreed to in writing, all software and\nmaterials distributed here under the Apache 2.0 or CC-BY 4.0 licenses are\ndistributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\neither express or implied. See the licenses for the specific language governing\npermissions and limitations under those licenses.\n\n## Disclaimers\n\nThis is not an officially supported Google product.\n\nThe WeatherNext models are part of an experimental research project. You are\nsolely responsible for determining the appropriateness of using or distributing\nthese models or any outputs they generate, and you assume all risks associated\nwith such use or distribution and your exercise of rights and permissions\ngranted by Google under the relevant license. Use discretion before relying on,\npublishing, downloading, or otherwise using these models or any of their\noutputs.\n\nThe WeatherNext models have not been produced in collaboration with nor endorsed\nby any government meteorological agency or department, and in no way replaces\nofficial alerts, warnings or notices published by such agencies.\n\n## Citations\n\nIf you use WeatherNext 2 in your research, please cite our paper:\n\n\u003c!-- disableFinding(SNIPPET_INVALID_LANGUAGE) --\u003e\n\n```latex\n@article{alet2025skillful,\n  title={Skillful joint probabilistic weather forecasting from marginals},\n  author={Alet, Ferran and Price, Ilan and El-Kadi, Andrew and Masters, Dominic and Markou, Stratis and Andersson, Tom R and Stott, Jacklynn and Lam, Remi and Willson, Matthew and Sanchez-Gonzalez, Alvaro and Battaglia, Peter},\n  journal={arXiv preprint arXiv:2506.10772},\n  year={2025}\n}\n```\n\n## Acknowledgements\n\nThe WeatherNext models communicate with the following separate libraries and\npackages:.\n\n*   Data and products of the European Centre for Medium-range Weather Forecasts\n    (ECMWF), as modified by Google.\n*   Modified Copernicus Climate Change Service information 2023\\.\n*   NOAA's International Best Track Archive for Climate Stewardship (IBTrACS)\n    data, first accessed on 1 Dec 2022\\.\n\nAdditionally, the colab notebooks include a few examples of ECMWF’s ERA5 and\nHRES data that can be used as input to the models.\n\nNeither the European Commission nor ECMWF is responsible for any use that may be\nmade of the Copernicus information or data it contains. ECMWF HRES datasets\nCopyright statement: Copyright \"© 2023 European Centre for Medium-Range Weather\nForecasts (ECMWF)\". Source: [www.ecmwf.int](http://www.ecmwf.int/) License\nStatement: ECMWF open data is published under a Creative Commons Attribution 4.0\nInternational (CC BY 4.0).\n[https://creativecommons.org/licenses/by/4.0/](https://creativecommons.org/licenses/by/4.0/)\nDisclaimer: ECMWF does not accept any liability whatsoever for any error or\nomission in the data, their availability, or for any loss or damage arising from\ntheir use.\n\nUse of the third-party materials referred to above may be governed by separate\nterms and conditions or license provisions. Your use of the third-party\nmaterials is subject to any such terms and you should check that you can comply\nwith any applicable restrictions or terms and conditions before use.\n\n## Contact\n\nFor feedback and questions regarding the codebase or models, contact us at\n`weathernext@google.com`.\n\nAny information collected via email will be used in accordance with [Google's\nprivacy policy](http://policies.google.com/privacy).\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["convolutional-neural-network","neuralgcm","climate","distributed","jax"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/51545","html_url":"https://ost.ecosyste.ms/projects/51545"}