Skip to content

Hunt for Tropical Cyclones pt. 1#760

Merged
NickGeneva merged 114 commits intoNVIDIA:mainfrom
mariusaurus:mkoch/tc_hunt_1
Apr 16, 2026
Merged

Hunt for Tropical Cyclones pt. 1#760
NickGeneva merged 114 commits intoNVIDIA:mainfrom
mariusaurus:mkoch/tc_hunt_1

Conversation

@mariusaurus
Copy link
Copy Markdown
Collaborator

@mariusaurus mariusaurus commented Mar 18, 2026

Earth2Studio Pull Request

Description

  • Adds a new recipes/tc_tracking recipe that generates ensemble forecasts (using FCN3 or AIFS-ENS) and tracks tropical cyclones within the predictions by integrating TempestExtremes as a downstream diagnostic tool.
  • Implements an asynchronous CPU/GPU execution mode where TempestExtremes runs cyclone detection on CPU in parallel with GPU inference, resulting in virtually no computational overhead from the tracking process.
  • Uses in-memory file handling (/dev/shm) to avoid writing large atmospheric field data to disk, which would otherwise slow down inference significantly and become prohibitive at scale.
  • Includes a stability check mechanism for detecting and recovering from numerical instabilities in long-range FCN3 forecasts.
  • Includes a comprehensive README with setup instructions (container and uv), configuration reference, and an example workflow. Also serves as a reference for integrating other custom downstream analysis tools into Earth-2 Studio prediction pipelines.
  • Includes an end-to-end test (test/test_tc_hunt.sh) that runs a five-member ensemble forecast of Hurricane Helene with FCN3 and verifies that track files are produced correctly.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.
  • The CHANGELOG.md is up to date with these changes.
  • An issue is linked to this pull request.
  • Assess and address Greptile feedback (AI code review bot for guidance; use discretion, addressing all feedback is not required).

Dependencies

Licences for all Python dependencies declared in pyproject.toml.
Information sourced from PyPI on 2026-04-09.

Core Dependencies

Package Licence PyPI
earth2studio Apache-2.0 link
huggingface-hub Apache-2.0 link
hydra-core MIT link
importlib-metadata Apache-2.0 link
more-itertools MIT link
omegaconf BSD link
ruamel-yaml MIT link
scipy BSD-3-Clause link
setuptools MIT link
tqdm MPL-2.0 AND MIT link
zarrdump BSD-3-Clause link

Optional – plot

Package Licence PyPI
cartopy BSD-3-Clause link
ipykernel BSD-3-Clause link
matplotlib PSF-2.0 (matplotlib licence) link
moviepy MIT link

Optional – dev

Package Licence PyPI
ninja Apache-2.0 / BSD link
pre-commit MIT link
pytest MIT link

mariusaurus and others added 30 commits December 1, 2025 07:52
@mariusaurus
Copy link
Copy Markdown
Collaborator Author

@greptileai

Comment thread recipes/tc_tracking/src/tempest_extremes.py Outdated
Comment thread recipes/tc_tracking/src/tempest_extremes.py
@mariusaurus
Copy link
Copy Markdown
Collaborator Author

@greptileai

Comment thread recipes/tc_tracking/src/tempest_extremes.py
Comment thread recipes/tc_tracking/uv.lock Outdated
Comment thread recipes/tc_tracking/pyproject.toml Outdated
Comment thread recipes/tc_tracking/pyproject.toml Outdated
Comment thread recipes/tc_tracking/src/modes/generate_tc_hunt_ensembles.py Outdated
Comment thread recipes/tc_tracking/src/modes/generate_tc_hunt_ensembles.py Outdated
Comment thread recipes/tc_tracking/src/tc_hunt_utils.py
Comment thread recipes/tc_tracking/src/modes/generate_tc_hunt_ensembles.py Outdated
Comment thread recipes/tc_tracking/src/tempest_extremes.py Outdated
Comment thread recipes/tc_tracking/src/tempest_extremes.py
Comment thread recipes/tc_tracking/src/tempest_extremes.py
Comment thread docs/userguide/about/install.md Outdated
Comment thread recipes/tc_tracking/README.md Outdated
@NickGeneva
Copy link
Copy Markdown
Collaborator

/blossom-ci

Copy link
Copy Markdown
Collaborator

@NickGeneva NickGeneva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for first PR.
My suggestion for next PR is to make AIFS / FCN potentially different install groups or something to lift the flash attention requirement 😆 . Something to consider maybe.

@NickGeneva
Copy link
Copy Markdown
Collaborator

/blossom-ci

@NickGeneva
Copy link
Copy Markdown
Collaborator

/blossom-ci

@NickGeneva
Copy link
Copy Markdown
Collaborator

/blossom-ci

@NickGeneva NickGeneva merged commit 6fb1c28 into NVIDIA:main Apr 16, 2026
7 checks passed
@NickGeneva NickGeneva mentioned this pull request Apr 16, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants