{"id":17980747,"url":"https://github.com/nvidia/earth2mip","last_synced_at":"2025-10-29T06:16:14.391Z","repository":{"id":193373226,"uuid":"683192493","full_name":"NVIDIA/earth2mip","owner":"NVIDIA","description":"Earth-2 Model Intercomparison Project (MIP) is a python framework that enables climate researchers and scientists to inter-compare AI models for weather and climate.","archived":false,"fork":false,"pushed_at":"2024-12-06T05:49:20.000Z","size":17222,"stargazers_count":245,"open_issues_count":28,"forks_count":54,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-28T00:04:58.644Z","etag":null,"topics":["climate","deep-learning","weather"],"latest_commit_sha":null,"homepage":"https://nvidia.github.io/earth2mip/","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/NVIDIA.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-25T20:22:59.000Z","updated_at":"2025-10-22T08:28:17.000Z","dependencies_parsed_at":"2023-09-24T09:18:09.199Z","dependency_job_id":"3af8d83e-a501-4e37-93cf-8ad96b8ee7af","html_url":"https://github.com/NVIDIA/earth2mip","commit_stats":{"total_commits":221,"total_committers":11,"mean_commits":20.09090909090909,"dds":0.6199095022624435,"last_synced_commit":"18482abdd7be3acaa0c9b5b400260bae582ed3a8"},"previous_names":["nvidia/earth2mip"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/NVIDIA/earth2mip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fearth2mip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fearth2mip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fearth2mip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fearth2mip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NVIDIA","download_url":"https://codeload.github.com/NVIDIA/earth2mip/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIA%2Fearth2mip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281571672,"owners_count":26524062,"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","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"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"}},"keywords":["climate","deep-learning","weather"],"created_at":"2024-10-29T18:06:11.351Z","updated_at":"2025-10-29T06:16:14.362Z","avatar_url":"https://github.com/NVIDIA.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Earth-2 MIP (Beta)\n\n\u003c!-- markdownlint-disable --\u003e\n[![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![GitHub](https://img.shields.io/github/license/NVIDIA/earth2mip)](https://github.com/NVIDIA/earth2mip/blob/master/LICENSE.txt)\n[![Documentstion](https://img.shields.io/website?up_message=online\u0026up_color=green\u0026down_message=down\u0026down_color=red\u0026url=https%3A%2F%2Fnvidia.github.io%2Fearth2mip%2F\u0026label=docs)](https://nvidia.github.io/earth2mip/)\n[![codecov](https://codecov.io/gh/NickGeneva/earth2mip/graph/badge.svg?token=0PDBMHCH2C)](https://codecov.io/gh/NickGeneva/earth2mip/tree/main)\n[![Python versionm: 3.10, 3.11, 3.12](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue\n)](https://github.com/NVIDIA/earth2mip)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\u003c!-- markdownlint-enable --\u003e\n\nEarth-2 Model Intercomparison Project (MIP) is a Python based AI framework that\nenables climate researchers and scientists to explore and experiment with the use of AI\nmodels for weather and climate.\nIt provides reference workflows for understanding how AI models capture the physics of\nthe Earth's atmosphere and how they can work with traditional numerical weather\nforecasting models.\nFor instance, the repo provides a uniform interface for running inference using\npre-trained model checkpoints and scoring the skill of such models using certain\nstandard metrics.\nThis repository is meant to facilitate the weather and climate community to come up with\ngood reference baseline of events to test the models against and to use with a variety\nof data sources.\n\n## Installation\n\nEarth-2 MIP will be installable on PyPi upon general release.\nIn the mean time, one can install from source:\n\n```bash\ngit clone git@github.com:NVIDIA/earth2mip.git\n\ncd earth2mip \u0026\u0026 pip install .\n```\n\nSee [installation documentation](https://nvidia.github.io/earth2mip/userguide/install.html)\nfor more details and other options.\n\n## Getting Started\n\nEarth-2 MIP provides a set of examples which can be viewed on the [examples documentation](https://nvidia.github.io/earth2mip/examples/index.html)\npage which can be used to get started with various workflows.\nThese examples can be downloaded both as Jupyer Notebooks and Python scripts.\nThe source Python scripts can be found in the [examples](./examples/) folders.\n\n### Basic Inference\n\nEarth-2 MIP provides high-level APIs for running inference with AI models.\nFor example, the following can be used to run Pangu weather using an initial state from\nthe climate data store (CDS):\n\n```bash\npython\n\u003e\u003e\u003e import datetime\n\u003e\u003e\u003e from earth2mip.networks import get_model\n\u003e\u003e\u003e from earth2mip.initial_conditions import cds\n\u003e\u003e\u003e from earth2mip.inference_ensemble import run_basic_inference\n\u003e\u003e\u003e time_loop  = get_model(\"e2mip://dlwp\", device=\"cuda:0\")\n\u003e\u003e\u003e data_source = cds.DataSource(time_loop.in_channel_names)\n\u003e\u003e\u003e ds = run_basic_inference(time_loop, n=10, data_source=data_source, time=datetime.datetime(2018, 1, 1))\n\u003e\u003e\u003e ds.chunk()\n\u003cxarray.DataArray (time: 11, history: 1, channel: 69, lat: 721, lon: 1440)\u003e\ndask.array\u003cxarray-\u003cthis-array\u003e, shape=(11, 1, 69, 721, 1440), dtype=float32, chunksize=(11, 1, 69, 721, 1440), chunktype=numpy.ndarray\u003e\nCoordinates:\n  * lon      (lon) float32 0.0 0.25 0.5 0.75 1.0 ... 359.0 359.2 359.5 359.8\n  * lat      (lat) float32 90.0 89.75 89.5 89.25 ... -89.25 -89.5 -89.75 -90.0\n  * time     (time) datetime64[ns] 2018-01-01 ... 2018-01-03T12:00:00\n  * channel  (channel) \u003cU5 'z1000' 'z925' 'z850' 'z700' ... 'u10m' 'v10m' 't2m'\nDimensions without coordinates: history\n```\n\nAnd you can get ACC/RMSE like this:\n```\n\u003e\u003e\u003e from earth2mip.inference_medium_range import score_deterministic\n\u003e\u003e\u003e import numpy as np\n\u003e\u003e\u003e scores = score_deterministic(time_loop,\n    data_source=data_source,\n    n=10,\n    initial_times=[datetime.datetime(2018, 1, 1)],\n    # fill in zeros for time-mean, will typically be grabbed from data.\n    time_mean=np.zeros((7, 721, 1440))\n)\n\u003e\u003e\u003e scores\n\u003cxarray.Dataset\u003e\nDimensions:        (lead_time: 11, channel: 7, initial_time: 1)\nCoordinates:\n  * lead_time      (lead_time) timedelta64[ns] 0 days 00:00:00 ... 5 days 00:...\n  * channel        (channel) \u003cU5 't850' 'z1000' 'z700' ... 'z300' 'tcwv' 't2m'\nDimensions without coordinates: initial_time\nData variables:\n    acc            (lead_time, channel) float64 1.0 1.0 1.0 ... 0.9686 0.9999\n    rmse           (lead_time, channel) float64 0.0 2.469e-05 0.0 ... 7.07 2.998\n    initial_times  (initial_time) datetime64[ns] 2018-01-01\n\u003e\u003e\u003e scores.rmse.sel(channel='z500')\n\u003cxarray.DataArray 'rmse' (lead_time: 11)\u003e\narray([  0.        , 150.83014446, 212.07880612, 304.98592282,\n       381.36510987, 453.31516952, 506.01464974, 537.11092269,\n       564.79603347, 557.22871627, 586.44691243])\nCoordinates:\n  * lead_time  (lead_time) timedelta64[ns] 0 days 00:00:00 ... 5 days 00:00:00\n    channel    \u003cU5 'z500'\n```\n\n### Supported Models\n\nThese notebooks illustrate how-to-use with a few models and this can serve as reference\nto bring in your own checkpoint as long as it's compatible. There may be additional work\nto make it compatible with Earth-2 MIP.\nEarth-2 MIP leverages the model zoo in [Modulus](https://github.com/NVIDIA/modulus) to\nprovide a reference set of base-line models.\nThe goal is to enable to community to grow this collection of models as shown in the\ntable below.\n\n\u003c!-- markdownlint-disable --\u003e\n| ID | Model | Architecture | Type | Reference | Source | Size |\n|:-----:|:-----:|:-------------------------------------------:|:--------------:|:---------:|:-------:|:---:|\n| fcn | FourCastNet | Adaptive Fourier Neural Operator  | global weather | [Arxiv](https://arxiv.org/abs/2202.11214)   | [modulus](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/modulus/models/modulus_fcn) | 300Mb |\n| dlwp |  Deep Learning Weather Prediction  |  Convolutional Encoder-Decoder | global weather |   [AGU](https://doi.org/10.1029/2020MS002109)   | [modulus](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/modulus/models/modulus_dlwp_cubesphere) |  50Mb |\n| pangu | Pangu Weather (Hierarchical 6 + 24 hr)  |  Vision Transformer | global weather |  [Nature](https://doi.org/10.1038/s41586-023-06185-3) | onnx | 2Gb |\n| pangu_6 | Pangu Weather 6hr Model  |  Vision Transformer | global weather |  [Nature](https://doi.org/10.1038/s41586-023-06185-3) | onnx | 1Gb |\n| pangu_24 | Pangu Weather 24hr Model |  Vision Transformer | global weather |  [Nature](https://doi.org/10.1038/s41586-023-06185-3) | onnx | 1Gb |\n| fcnv2_sm |  FourCastNet v2 | Spherical Harmonics Fourier Neural Operator | global weather |  [Arxiv](https://arxiv.org/abs/2306.03838)  | [modulus](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/modulus/models/modulus_fcnv2_sm) | 3.5Gb |\n| graphcast |  Graphcast, 37 levels, 0.25 deg | Graph neural network | global weather |  [Science](https://www.science.org/doi/10.1126/science.adi2336)  | [github](https://github.com/google-deepmind/graphcast) | 145MB |\n| graphcast_small |  Graphcast, 13 levels, 1 deg | Graph neural network | global weather |  [Science](https://www.science.org/doi/10.1126/science.adi2336)  | [github](https://github.com/google-deepmind/graphcast) | 144MB |\n| graphcast_operational |  Graphcast, 13 levels, 0.25 deg| Graph neural network | global weather |  [Science](https://www.science.org/doi/10.1126/science.adi2336)  | [github](https://github.com/google-deepmind/graphcast) | 144MB |\n| precipitation_afno | FourCastNet Precipitation | Adaptive Fourier Neural Operator  | diagnostic | [Arxiv](https://arxiv.org/abs/2202.11214)   | [modulus](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/modulus/models/modulus_diagnostics) | 300Mb |\n| climatenet | ClimateNet Segmentation Model | Convolutional Neural Network | diagnostic | [GMD](https://doi.org/10.5194/gmd-14-107-2021)   | [modulus](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/modulus/models/modulus_diagnostics) | 2Mb |\n\u003c!-- markdownlint-enable --\u003e\n\n\\* = coming soon\n\nSome models require additional dependencies not installed by default.\nRefer to the [installation instructions](https://nvidia.github.io/earth2mip/userguide/install.html)\nfor details.\n\n*Note* : Each model checkpoint may have its own unique license. We encourage users to\nfamiliarize themselves with each to understand implications for their particular use\ncase.\n\nWe want to integrate your model into the scoreboard to show the community!\nThe best way to do this is via [NVIDIA Modulus](https://github.com/NVIDIA/modulus).\nYou can contribute your model (both the training code as well as model checkpoint) and\nwe can ensure that it is maintained as part of the reference set.\n\n## Contributing\n\nEarth-2 MIP is an open source collaboration and its success is rooted in community\ncontribution to further the field.\nThank you for contributing to the project so others can build on your contribution.\nFor guidance on making a contribution to Earth-2 MIP, please refer to the\n[contributing guidelines](./CONTRIBUTING.md).\n\n## More About Earth-2 MIP\n\nThis work is inspired to facilitate similar engagements between teams here at\nNVIDIA - the ML experts developing new models and the domain experts in Climate science\nevaluating the skill of such models.\nFor instance, often necessary input data such as normalization constants and\nhyperparameter values are not packaged alongside the model weights.\nEvery model typically implements a slightly different interface. Scoring routines are\nspecific to the model being scored and may not be consistent across groups.\n\nEarth-2 MIP addresses  these challenges and bridges the gap between the domain experts\nwho most often are assessing ML models, and the ML experts producing them.\nCompared to other projects in this space, Earth-2 MIP focuses on scoring models\non-the-fly.\nIt has python APIs suitable for rapid iteration in a jupyter book, CLIs for scoring\nmodels distributed over many GPUs, and a flexible\nplugin framework that allows anyone to use their own ML models.\nMore importantly Earth-2 MIP aspires to facilitate exploration and collaboration within\nthe climate research community to evaluate the potential of AI models in climate and\nweather simulations.\n\nPlease see the [documentation page](https://nvidia.github.io/earth2mip/) for in depth\ninformation about Earth-2 MIP, functionality, APIs, etc.\n\n## Communication\n\n- [Github Discussions:](https://github.com/NVIDIA/earth2mip/discussions) Discuss new ideas, model integration, support etc.\n- [GitHub Issues:](https://github.com/NVIDIA/earth2mip/issues) Bug reports, feature requests, install issues, etc.\n\n## License\n\nEarth-2 MIP is provided under the Apache License 2.0, please see\n[LICENSE.txt](./LICENSE.txt) for full license text.\n\n### Additional Resources\n\n- [Earth-2 Website](https://www.nvidia.com/en-us/high-performance-computing/earth-2/)\n- [NVIDIA Modulus](https://github.com/NVIDIA/modulus)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvidia%2Fearth2mip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnvidia%2Fearth2mip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvidia%2Fearth2mip/lists"}