-
Notifications
You must be signed in to change notification settings - Fork 164
Initial IODA to obs_seq.out file converter #936
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
Conversation
…on which reads a ioda file into a pandas dataframe.
…tructs a pyDARTdiags ObsSequence object from a pandas dataframe that is in the obs_seq layout.
…king, iodaDF to obsqDF conversion is in progress
… generic and configurable
…produce a file. Next step is to replace hard-coded sections with generic, configurable code.
… or the location values are missing (NaN).
… the dataframe filter that removes rows according to columns with missing data (nan's).
|
I built the converters with following commands:
|
|
This is really nice Steve, I've been running it on various conventional obs. @srherbener @fcvdb so you could switch out in the obsq.radiosonde.yaml, height for pressure if you wanted the vertical location of the obs in pressure? e.g. I can do this and get an obs sequence out, but I am I interpreting the ioda file correctly? Some observations have a vertical coordinate in pressure, some in height (some maybe both?) INFO: Converted 127651 observations -- this is with vertical coordinate pressure |
I'm not sure why the prepBUFR to IODA converter is writing out both height and pressure. Perhaps this was done because both of those are measurements from an instrument (ie, observed quantities). If it was me, I would place the variable intended to be the vertical coordinate in the MetaData group, and the other one in the ObsValue group to help clarify which one is the vertical coordinate. Perhaps @fcvdb can shed more light on why both height and pressure appear in the MetaData group. The new IODA to obs_seq converter removes rows from the internal pandas dataframe that have missing values (NaNs) for any of the location, height, timestamp, and observation values. I think this can explain why the obs counts are different between using height vs pressure for the vertical coordinate. My inclination would be to go with the vertical coordinate that yields the most converted obs (ie pressure in this case). @fcvdb would that make sense? |
|
@hkershaw-brown I have removed the partial python test, and updated the documentation. In the pytools.rst I added a section for "Available Tool Packages" and included pyjedi documentation. I was anticipating adding in documentation for pyqceff too, but I was hoping for you to fill that in. I'm okay if you don't like the organization I made on the pytools.rst page, and I'm open to another approach if that's what you want. Thanks! |
|
@hkershaw-brown this is perfect Steve. Sorry I have not got to releasing this yet, various CISL events have been talking up time this week. |
|
@hkershaw-brown no worries. Just wanted to let you know I finished the changes you requested. I'm fine with this PR waiting while you take care of some other things. No need to rush. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great stuff Steve!
Description:
This PR contains a python based converter that transfers obs data from a JEDI IODA file to a DART obs_seq.out file. The converter is working on a simple radiosonde test case (included) and represents a good starting point for developing conversion for different obs types (aircraft, radiance, etc.).
Note that we haven't finalized what to do with the input ioda radiosonde test file (netcdf) yet, so at this time it hasn't been included in this PR.
Fixes issue
Partially addresses jcsda-internal/ioda/issues/1499
Types of changes
Documentation changes needed?
Tests
I have run several manual checks and tests. For example, the converter produces an obs_seq.out file that the obs_sequence_tool can properly read. Here is the print output from the obs_sequence tool using the file produced by the converter in the included test:
Note that some data, such as the timestamp information, appears to have been transferred correctly. The test input ioda file contains radiosonde data for the time window: Apr, 14, 2018 21Z to Apr, 15, 2018, 03Z.
More checking is needed but this is a good starting point for further converter development.
Checklist for merging
Checklist for release
Testing Datasets