Skip to content

Copernicus SST L3S Observation Converter#1109

Open
mgharamti wants to merge 8 commits into
NCAR:mainfrom
mgharamti:Copernicus_SST_L3S
Open

Copernicus SST L3S Observation Converter#1109
mgharamti wants to merge 8 commits into
NCAR:mainfrom
mgharamti:Copernicus_SST_L3S

Conversation

@mgharamti
Copy link
Copy Markdown
Contributor

@mgharamti mgharamti commented May 11, 2026

Description:

A new observation converter for a blended satellite Sea Surface Temperature product from the Copernicus Marine Environment Monitoring Service. The converter reads CMEMS NetCDF files and generates DART obs_seq files containing bias-corrected blended SST observations (in K) suitable for assimilation into ocean models such as ROMS. The PR also adds a readme file containing brief documentation for the new converter.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Documentation changes needed?

  • My change requires a change to the documentation.
    • I have updated the documentation accordingly.

Tests

I've tested the converter with several CMEMS observation files. These can be found here: /glade/work/gharamti/inacawo/data_snippets/SST

Checklist for merging

  • Add cmems_sst_to_obs to .gitignore

  • Updated changelog entry

  • Documentation updated

  • Update conf.py

Checklist for release

  • Merge into main
  • Create release from the main branch with appropriate tag
  • Delete feature-branch

Testing Datasets

  • Dataset needed for testing available upon request
  • Dataset download instructions included
  • No dataset needed

mgharamti and others added 5 commits April 15, 2026 16:50
Added a new satellite SST converter that
converts a netCDF-based blended L3S SST product
from Copernicus into DART's obs sequence files.

Temperature in the obs seq file is in C. The
obs error sd are read from the incoming data.
An SD lower bound is set to avoid over-fitting.
Observations with bad incoming QC are discarded.
Added an rst readme file. Also, included
the new page in the toctree.
Copy link
Copy Markdown
Member

@hkershaw-brown hkershaw-brown left a comment

Choose a reason for hiding this comment

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

Hi Moha,

Looking good.

Definite changes:

  • call check_namelist_read to catch invalid namelist entries
  • readme.rst add the info about the temp being in C in the obs seq to the docs
  • add this new converter to the list of available converters in the docs.

Then a few suggestions:
There's a couple of typos that I spotted.
A couple of your loops are looping in the slow order. I am not sure if you want to keep this order to have the obs in a certain order in obs_seq.
Defaults matching in the docs/example input.nml and the code

Cheers,
Helen

Comment thread observations/obs_converters/cmems_sst_l3s/cmems_sst_to_obs.f90 Outdated
Comment thread observations/obs_converters/cmems_sst_l3s/work/input.nml Outdated
Comment on lines +224 to +225
do ilon = 1, nlon
do ilat = 1, nlat
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Same comment on loop ordering, typically you want the inner loop to be the fastest varying.

Note I'm not sure if the observation sequence order is better for science reasons to loop along latitude first.

Comment thread observations/obs_converters/cmems_sst_l3s/cmems_sst_to_obs.f90 Outdated
- Observation time and location

and writes them into a DART observation sequence file using the
``SATELLITE_BLENDED_SST`` observation kind.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Trying to use type for observation (I know kind is all over the place).

Suggested change
``SATELLITE_BLENDED_SST`` observation kind.
``SATELLITE_BLENDED_SST`` observation type.

Comment thread observations/obs_converters/cmems_sst_l3s/readme.rst Outdated
Comment thread observations/obs_converters/cmems_sst_l3s/cmems_sst_to_obs.f90
Comment on lines +44 to +45
Only observations with quality level greater than a specified threshold
(default: > 3) are retained.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is a nitpick, but from the docs it seems like you can change the specified threshold, whereas it is a hardcoded parameter.

integer, parameter :: OBS_QC_LOW_QUALITY = 3

Suggested change
Only observations with quality level greater than a specified threshold
(default: > 3) are retained.
Only observations with quality level greater than 3 are retained.

Comment thread observations/obs_converters/cmems_sst_l3s/work/input.nml Outdated
Comment thread index.rst
@hkershaw-brown
Copy link
Copy Markdown
Member

Also @todo add cmems_sst_to_obs executable to .gitignore

@hkershaw-brown hkershaw-brown added the release! bundle with next release label May 21, 2026
mgharamti added 2 commits May 21, 2026 15:22
Cleaned up some parts of the code, the namelist and the docs.
@mgharamti
Copy link
Copy Markdown
Contributor Author

Helen, thanks for the helpful comments. I believe I addressed all of them.

Copy link
Copy Markdown
Member

@hkershaw-brown hkershaw-brown left a comment

Choose a reason for hiding this comment

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

Approved!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release! bundle with next release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants