Copernicus SSH L3 NRT Observation Converter#1116
Open
mgharamti wants to merge 16 commits into
Open
Conversation
The read_csv_mod is slightly modified to support csv files with multiple header lines. The csv_open routine now has an optional argument to skip any lines on top of the actual header line that includes the fields. I've tested the changes with previous converters that use csv files and they are backward-compatible.
Converter that reads in near-real-time SSH from Copernicus and converts it to DART's obs sequence files. The converter writes out SSH in meters. The obs error standard deviation is configured such that it is large near the coast in shallow waters and gets smaller in the deep ocean.
…cus_SSH_L3_NRT
The observation error standard deviation is added as a namelist option and can be assigned uniformly by the user. Cleaned up the namelist file and removed binary data files.
…cus_SSH_L3_NRT
Add a python script to adjust ocean observations. The script can take in any `obs_seq` file. It needs to read the bathymetry from the model restart (currently uses ROMS). It applies: - a depth filter on the observations to remove shallow obs, and - also an error model to inflate the errors in coastal areas. The documentation of the converter is also updated. It now states that the errors from the converter are uniform and can be adjusted using the new python script.
hkershaw-brown
requested changes
May 22, 2026
Member
hkershaw-brown
left a comment
There was a problem hiding this comment.
Looks good Moha,
A few suggestions (typo, err message rather than err, 'with' for opening netcdf file)
Question on the QC before approving, it looks like all the QCs are set to 0. Is this what should be happening, or should it be the sat(iobs)%oqc?
Cheers,
Helen
| obs_seq.df = obs_final | ||
|
|
||
| obs_seq.update_attributes_from_df() | ||
| obs_seq._update_linked_list(obs_final) # private, no public API for this? |
Member
There was a problem hiding this comment.
I think obs_seq.update_attributes_from_df() calls _update_linked_list so you
don't need to call _update_linked_list directly. I will take a closer look running your example to see if there is anything funky going on.
Suggested change
| obs_seq._update_linked_list(obs_final) # private, no public API for this? |
Contributor
Author
There was a problem hiding this comment.
Sounds good. I wasn't sure about it too.
Incorporated the PR review comments. - Typos in input.nml - QC handling - Readme namelist options
…DART into Copernicus_SSH_L3_NRT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description:
This PR adds a new observation converter for the CMEMS along-track SSH product:
SEALEVEL_GLO_PHY_L3_NRT_008_044. The converter reads CMEMS CSV exports and generates DARTobs_seqfiles containing filtered sea level anomaly (SLA_FILTERED) observations asSATELLITE_SSH.This PR also adds:
models/ROMS_Rutgers/preprocess_ocean_obs.pywhich provides optional model-specific post-processing of the observations including:Additionally, this PR includes small updates (backwards compatible) to the DART CSV utilities module to improve handling of CMEMS CSV formatting, in particular the header with multiple lines.
Types of changes
Documentation changes needed?
Tests
I've tested the converter with a few CMEMS observation files. These can be found here:
/glade/work/gharamti/inacawo/data_snippets/SSH