Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python converter for RRFS/ [3D]-RTMA MSONET prepBUFR data #123

Open
6 tasks
PraveenKumar-NOAA opened this issue Aug 12, 2024 · 7 comments
Open
6 tasks

Python converter for RRFS/ [3D]-RTMA MSONET prepBUFR data #123

PraveenKumar-NOAA opened this issue Aug 12, 2024 · 7 comments
Assignees

Comments

@PraveenKumar-NOAA
Copy link
Contributor

Description

Write a Python converter for the MSONET prepBUFR data that converts a BUFR file into an IODA file for the following subset:

| MSONET | A48117 | MESONET SURFACE REPORTS (COOPERATIVE NETWORKS) |

  • Use Python API to convert a BUFR file into an IODA-formatted netCDF file
  • Ioda obs validation using ioda-validate.x
  • Perform validation for the observations using the input BUFR and output IODA file
  • Add output(s) to the testoutput directory
  • Add tests to the CMakeLists.txt files
  • Have the tests pass

Requirements

  • All important mnemonics required by the RRFS/ [3D]-RTMA users need to be known.

Acceptance Criteria

  • It will be finished when all files have been checked and tests have passed.
@PraveenKumar-NOAA PraveenKumar-NOAA self-assigned this Aug 12, 2024
@guoqing-noaa
Copy link
Collaborator

@PraveenKumar-NOAA I have a question. Are the data you mentioned in this PR included in the regular prepbufr files?
If yes, can the current bufr2ioda.x handle it?

Can this yaml file be able to used to convert the mesonet data?
https://github.com/rrfsx/rrfs-workflow/blob/main/parm/rrfs/prepbufr_mesonet.yaml

@PraveenKumar-NOAA
Copy link
Contributor Author

PraveenKumar-NOAA commented Aug 13, 2024

@guoqing-noaa yes, MSONET data will be used here from the prepbufr file, and BUFR2IODA can handle it.
Use the following YAML to convert the MSONET prepbufr data into NetCDF format:
https://github.com/NOAA-EMC/RDASApp/blob/develop/rrfs-test/IODA/yaml/bufr_ncep_prepbufr_msonet.yaml

@guoqing-noaa
Copy link
Collaborator

@PraveenKumar-NOAA Thanks for more information.
So I wonder why we need an extra Python converter?

@PraveenKumar-NOAA
Copy link
Contributor Author

PraveenKumar-NOAA commented Aug 13, 2024

@guoqing-noaa great question, thanks. The bufr2ioda converter which uses a query interface and is still under development. It is used to convert a BUFR file into a NetCDF file based on a description a user creates in a YAML or a Python script. We are testing its capability using both, a yaml and a Python script. It seems that Python based converter is more flexible for the queries, derived variables, and unit conversions.

@guoqing-noaa
Copy link
Collaborator

@PraveenKumar-NOAA
Thanks for the more information. Could you give us some specific examples of what the flexibilities are?
Correct me if I am wrong, but I don't think we want to "enhance" the prepbufr contents or add derived variables. I would think we want to keep the observations as-is.

@PraveenKumar-NOAA
Copy link
Contributor Author

@guoqing-noaa please find below an example for adpupa prepbufr:
https://github.com/JCSDA-internal/ioda-converters/blob/develop/test/testinput/bufr_ncep_prepbufr_adpupa.yaml
https://github.com/NOAA-EMC/GDASApp/blob/develop/ush/ioda/bufr2ioda/bufr2ioda_adpupa_prepbufr.py

For further clarification, we can chat separately including bufr2ioda developers.

@PraveenKumar-NOAA
Copy link
Contributor Author

Following validation plots were created for the pressure and wind observations using the RRFS test data, dated 2022052619:

pressure (POB):
IODA plot:
ioda-api_pressure

windEastward (UOB):
IODA plot:
ioda-api_windEastward

There plots are in perfect agreement with the BUFR plots and IODA plots created using the ioda-converters YAML, which can be seen here:
#38

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

No branches or pull requests

2 participants