Skip to content

Ingest suite to download raw obs and convert it to ioda format, and ingest it to R2D2 #770

Merged
mranst merged 20 commits intodevelopfrom
feature/omps-o3-ingest
May 8, 2026
Merged

Ingest suite to download raw obs and convert it to ioda format, and ingest it to R2D2 #770
mranst merged 20 commits intodevelopfrom
feature/omps-o3-ingest

Conversation

@mer-a-o
Copy link
Copy Markdown
Contributor

@mer-a-o mer-a-o commented Apr 16, 2026

Description

This PR adds an end-to-end "download-convert-ingest" pipeline with initial support for OMPS O3 Nadir Mapper (OMPS-O3-NM) data in the GEOS-CF interface.

Summary of updates

  • DownloadObs: downloads raw observation files from remote servers (e.g. via wget) for a given cycle window. Authenticates using ~/.netrc instead of a hardcoded Earthdata token.

  • ConvertObsToIoda: runs an ioda-converters script for the downloaded raw files to produce a single IODA-formatted NetCDF per cycle. The converter binary directory is configurable via converter_path, falling back to jedi_bundle/build/bin.

  • flow.cylc in obs ingest suite now supports optional DownloadObs -> ConvertObsToIoda -> IngestObs task chain, gated by a new download_convert_pipeline boolean flag. When the flag is false, the suite runs IngestObs alone (preserving existing behavior).

    • Suggestions for a better approach are welcome.
  • In IngestObs, a local acquisition method is added so IngestObs can pick up files produced by ConvertObsToIoda within the same cycle, in addition to the existing cp (and s3) path methods.

  • New obs configuration files (geos_cf)

    • download_observations/omps_o3_nm.yaml: wget pipeline config with filename pattern and date placeholders.
    • convert_observations/omps_o3_nm.yaml: ioda-converter script name, output filename template, and extra converter flags (-q, -e).
    • ingest_observations/omps_o3_nm.yaml: R2D2 ingest config using the new local retrieval method.

Dependencies

closes: #769

Comment thread src/swell/deployment/platforms/nccs_discover_sles15/modules
Copy link
Copy Markdown
Collaborator

@mranst mranst left a comment

Choose a reason for hiding this comment

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

I was able to run the default case 👍

Comment thread src/swell/deployment/platforms/nccs_discover_sles15/modules
Comment thread src/swell/suites/ingest_obs/suite_config.py
Comment thread src/swell/configuration/jedi/observation_ioda_names.yaml
Comment thread src/swell/configuration/jedi/observation_ioda_names.yaml
Comment thread src/swell/configuration/jedi/observation_ioda_names.yaml
Comment thread src/swell/configuration/jedi/observation_ioda_names.yaml Outdated
Comment thread src/swell/configuration/jedi/observation_ioda_names.yaml Outdated
Comment thread src/swell/suites/ingest_obs/suite_config.py Outdated
Comment thread src/swell/tasks/download_obs.py Outdated
@mer-a-o mer-a-o marked this pull request as ready for review May 4, 2026 19:30
@mer-a-o mer-a-o requested a review from jeromebarre May 4, 2026 19:44
@mer-a-o mer-a-o requested review from ftgoktas and mranst May 4, 2026 19:44
jeromebarre
jeromebarre previously approved these changes May 6, 2026
Copy link
Copy Markdown
Contributor

@jeromebarre jeromebarre left a comment

Choose a reason for hiding this comment

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

Looks good to me now!

Copy link
Copy Markdown
Collaborator

@mranst mranst left a comment

Choose a reason for hiding this comment

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

One fix needs to be made to the suite_config but otherwise looks good

Comment thread docs/examples/r2d2/ingest_obs.md
Comment thread src/swell/suites/ingest_obs/suite_config.py
@mer-a-o
Copy link
Copy Markdown
Contributor Author

mer-a-o commented May 7, 2026

@mranst This PR is ready for merge (if all your comments are answered).

@mranst mranst merged commit ef49e13 into develop May 8, 2026
2 checks passed
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.

Extend ingest_obs to download, convert to ioda, and ingest the obs to r2d2

4 participants