NOAA-EMC / GDASApp

Global Data Assimilation System Application
GNU Lesser General Public License v2.1
14 stars 28 forks source link

IODA converters for the QC'ed NCODA insitu observation #1035

Closed guillaumevernieres closed 2 months ago

guillaumevernieres commented 3 months ago

For this issue, we will leverage utils/obsproc/NetCDFToIodaConverter.h to create an RTOFSInSitu binary to ioda converter.

What needs to be done

Create an RTOFSInSitu class as a child of NetCDFToIodaConverter. Examples can be found here https://github.com/NOAA-EMC/GDASApp/tree/develop/utils/obsproc

Steps

1 - Create the RTOFSInSitu.h with empty or minimalist stubs for the constructor and the only method that needs to be implemented, providerToIodaVars. All the other necessary methods required for basic QC and to generate the ioda file are inherited from the base class. 2 - Make sure the above builds within the cmake build system of the GDASApp 3 - Add a ctest for RTOFSInSitu (see examples in the code on how to do this). This will require adding the example RTOFS binary file to the GDASApp data tarbal. DO NOT commit/add binary files to this repository 4 - Once the ctest can run the empty stub, start working on reverse engineering the RTOFS binary reader

Test case

Zulema prepared a test case, including the Fortran reading code here: Hera:

 /scratch2/NCEPDEV/ocean/Guillaume.Vernieres/rtofs-obs

Orion:

/work2/noaa/da/gvernier/data/rtofs-obs
guillaumevernieres commented 2 months ago

Tarballs of RTOFS qc'ed obs are here:

/NCEPDEV/emc-ocean/5year/Dan.Iredell/wcoss2.prod/rtofs.20240402/ocnqc.tar
guillaumevernieres commented 2 months ago

From @ilianagenkova , path to the RTOFS qc'ed obs:

/lfs/h1/ops/prod/com/rtofs/v2.3/rtofs.20240501/ncoda/ocnqc/*
guillaumevernieres commented 2 months ago

I'm closing this @givelberg , this was mostly done in your last PR. I'll detail the next steps in a different issue.