Skip to content

Convert ISO date string to Python datetime object#840

Merged
srherbener merged 6 commits intofeature/sprint-ioda-convertersfrom
feature/isodate2dt
Mar 11, 2022
Merged

Convert ISO date string to Python datetime object#840
srherbener merged 6 commits intofeature/sprint-ioda-convertersfrom
feature/isodate2dt

Conversation

@CoryMartin-NOAA
Copy link
Copy Markdown
Contributor

Description

This PR adds to ioda_conv_engines the capability to check:

  • Does the variable MetaData/dateTime exist?
  • If so, is it a string?
  • If so, convert it to datetime objects

Existing datetime objects are unaffected, and if the variable is defined as a integer with attributes describing the reference time, no changes occur.

Issue(s) addressed

Link the issues to be closed with this PR

Acceptance Criteria (Definition of Done)

Approved and tested by folks, note it won't work properly until changes are made to IODA

Dependencies

Needs changes to be made to IODA Python API to handle Python datetime objects before it will write to file properly.

Impact

None

Copy link
Copy Markdown
Contributor

@gthompsnJCSDA gthompsnJCSDA left a comment

Choose a reason for hiding this comment

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

Excuse me for asking a couple dumb questions...

This just permits the use of something like 1999-12-31T09:28:42Z which we previously had as a datetime value in an arbitrary length-string to become an actual date-time python object, right?
2.
Is there any protection against out-of-range values for some component, like in the above example but setting it to 99 seconds? In other words, should there be a try-except clause to capture dumb edge cases? Or would date-time objects in python take the 99 seconds and add to the minutes (and upward) while giving a final answer of 39 seconds?

It appears there is no loop over the entire dtvar as the IF-test on line 163 checks only the first element of the vector. Is this safe for entire vector?

Final comment is that I was under an impression that this would enforce anyone using older datetime variable into using the newer type with seconds (or minutes or hours ...) from an Epoch time. I guess this kinda acts as number of seconds since Epoch is zero and the Epoch time itself is the dateTime value given.

@CoryMartin-NOAA
Copy link
Copy Markdown
Contributor Author

@gthompsnJCSDA

  1. now this allows for the authors of converters to do 1 of 3 things (int64+units attribute, ISO strings, datetime objects) with the latter 2 converted to the first by the IODA API.
  2. When you define the object, python datetime is smart enough: t = dt.datetime(2022,3,11,30) will fail because hours (the 4th position) must be 0-23.
  3. This is a good point. I don't know if it is 100% necessary to check the entire vector, as that might slow things down. But I suspect the writer will then error if it is trying to convert something that can't be converted, or if it attempts to write the wrong type.

This is so that people don't have to change the time in their converters from ISO strings and it will force the new epoch convention with the default 1970 time.

@gthompsnJCSDA
Copy link
Copy Markdown
Contributor

@CoryMartin-NOAA Regarding your final comment about "forcing" to epoch of 1970. Is this actually needed to enforce? I just made some changes to Bo's modis-aod python script in which the incoming netCDF file is already using a specific reference time of seconds since 1993-01-01T00:00:00Z and has an array of seconds in double-precision floating point. The earlier converter was making those doubles transformed with datetime into ISO-8601 strings. I decided let's not waste any time at all and just allow the units of dateTime to be that 1993 date and then only needed to convert the double-precision times into int64 type. That should be saving a chunk of time. So then, in your coding is everything then forced into Epoch of 1970? Wouldn't that be wasted time for an incoming dataset already well structured to have its dateTime already fully standards compliant?

@gthompsnJCSDA gthompsnJCSDA self-requested a review March 11, 2022 16:27
@CoryMartin-NOAA
Copy link
Copy Markdown
Contributor Author

@gthompsnJCSDA if you (the converter developer) uses int64 and specifies the proper units, this is fine. But, another developer might just pass datetime objects or ISO strings, if those two are used, it doesn't actually know what your epoch is, so it uses the default. Does that make sense? I agree your approach is the best one, but not all datatypes will already have this convention and might just have ISO strings, or something else entirely.

@gthompsnJCSDA
Copy link
Copy Markdown
Contributor

SNIP... another developer might just pass datetime objects or ISO strings, if those two are used, it doesn't actually know what your epoch is...

I realize what you're saying and agree. Having opened a few python converters during this sprint, I see in the case of modis-aod and probably viirs-aod, that the original data are already nearly what we want and have been converted to strings for the older datetime variable. So that is now wasteful and take minimal effort to correct during this sprint (if others notice what is being done). I made this change myself to modis-aod that Bo is working on. Perhaps I need to bring up this idea during our meeting to see if people can just fix this while they edit variable names and such.

@srherbener
Copy link
Copy Markdown
Collaborator

Thanks for adding this in @CoryMartin-NOAA! The ioda feature/sprint-ioda-converters branch has been sync'd with the ioda develop branch after I merged in jcsda-internal/ioda/pull/636. Merging this PR in should complete the library changes needed to use python datetime objects in the python converters. Correct?

@CoryMartin-NOAA
Copy link
Copy Markdown
Contributor Author

@srherbener I think so yes, we can discuss dateTime with everyone at the top of the code sprint meeting.

@srherbener srherbener merged commit 5bf58ef into feature/sprint-ioda-converters Mar 11, 2022
@srherbener srherbener deleted the feature/isodate2dt branch March 11, 2022 17:35
PatNichols added a commit that referenced this pull request Jan 18, 2023
* Staging branch

* Retarget ioda clone to the sprint branch

* nlocs to locations (#825)

* SPRINT: Change METAR converter to align variable names with JEDI naming conventions (#838)

* clean up code a lot while also moving to JEDI naming conventions

* updated output test-reference file

* resolve various small coding_norms

* tiny change to global attr

* eliminate datetimeReference global attr

* updated test-ref file to remove datetimeReference global attr

* add comment to preQc value of 2 plus bring back datetimeReference attribute

* take away global attribute of Location

* Updated testoutput file for Greg

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Convert ISO date string to Python datetime object (#840)

* Print existing datetime var

* Convert ISO string to dt object

* Remove extra boolean

* Make error handling work

Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Feature/ioda sprint atms hdf5 (#844)

* fix a host of IODA conention issues to bring in compliance with v2

* revert last commit by using original file again

* initial try to bring converter up to IODA v2 standards

* put time into datetimeRange attribute for now

* removed unused large ATMS file

* add the new ATMS output with the latest IODA conventions in place

* update the satelliteIdentifier to not have units

* fix whitespace coding norm error

* change dateTime to seconds since 1970 epoch and nlocs dimension to int32

* add the new output file for the ctest

* add sensor WMO ID as a string and use group names inherited from IODA

* update the testoutput file for atms decode

* move the satellite platform to a global attribute

* reverse the conditional to make it less confusing fix coding norm issue

* fix a host of IODA conention issues to bring in compliance with v2

* revert last commit by using original file again

* again try to add the correct output file

* add nested list for channel dimension

* add final changes to align with current features in the IODA interface

* change use of datetimeRange to datetimeReference

* while we are at it add the datetimeRange from the data itself

* put and error exit if call tries to merge satellites into single IODA file

* Updated test reference with proper UTC dateTime values.

* Updated test reference for atms test.

Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>
Co-authored-by: Stephen Herbener <stephen.herbener@gmail.com>

* Sprint: Upgrade converters that use bufr2ioda.x to follow the JEDI Data Conventions (#856)

* allow units attribute to a variable to be optional

* allow units attribute to a variable to be optional

* skip units if set to none or empty quotes

* updates to aircar, airep, amdar to match naming conventions

* abbeviate degree for windDirection

* fix up windDirection and couple other items

* many yaml files changed for JEDI naming conventions

* adjust many files to align with JEDI naming conventions

* make all new test ref files for JEDI naming conventions during sprint

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* SPRINT:  Update a series of converters (bufr2ioda.x, see list below) to follow JEDI Data Conventions (#868)

* allow units attribute to a variable to be optional

* allow units attribute to a variable to be optional

* skip units if set to none or empty quotes

* updates to aircar, airep, amdar to match naming conventions

* abbeviate degree for windDirection

* fix up windDirection and couple other items

* many yaml files changed for JEDI naming conventions

* adjust many files to align with JEDI naming conventions

* make all new test ref files for JEDI naming conventions during sprint

* changed to align with JEDI Data Conventions

* serious changes to adhere to JEDI Data Conventions

* update testref files of a bunch of bufr2ioda.x output files for JEDI Data Conventions

* fix a few files to match testref

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Modify gsidiag converter to follow JEDI data convention and update th… (#859)

* Modify gsidiag converter to follow JEDI data convention and update the test reference.

* Code clean up

* Remove debugging line

* Fix platform and sensor type from string to integer and update test output

* Remove writing the attribute for dateTime and update test reference output

* Perform unit change for frequency and wavenumber to meet JEDI data convention and update output test reference

* Fix unit for one derived variable and update output test reference

* Remove debugging and commented outlines

Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Feature/sprint ioda converters yan (#853)

* Modified cryosat_ice2ioda.py and emc_ice2ioda.py to comply with code converntion and updated testoutput files.

* rerun build, make and ctest, updated testoutput/cryosat2_L2.nc and emc_ice_ioda2.nc

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* SPRINT: Upgrade conventional data BUFR-to-IODA converters (shown below) to follow the JEDI Data Conventions (#863)

* change AMDAR converter to align with JEDI data conventions

* change Buoy converter to align with JEDI data conventions

* change Ship converter to align with JEDI data conventions

* change SYNOP converter to align with JEDI data conventions

* eliminate units when they are supposed to be missing

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Create Feature/sprint ghcn for 6 land converters during the ioda-converter code spring (#854)

* Modified ghcn_snod2ioda.py and updated testoutput

* Updated smos_ssm2ioda.py and output results

* Update src/land/smap_ssm2ioda.py and testoutput

* update src/land/imsfv3_scf2ioda.py and testoutput

* update src/land/owp_snow_obs.py and testoutput result

* Update smap9km_ssm2ioda.py and corresponding result

* Fix satellite and sensor ID issue and update the results

* Address the issues araised by Cory Martin except for dateTime

* Fixed two wrong spelling in smap_ssm2ioda.py

* Update resulst for INIT64 for Location

* update copyright time period

* Modified str datetime into dataTime and the results.

* Removed one comment line

* modified filling vale for smap9km_ssm2ioda.py

* Fixed datetime with dateTime and updated the result

* Changed station_id to stationIdentification and update the result

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Feature/argo clim2ioda changes ne (#857)

* updates so far

* argoClim2ioda.py updates

* update testoutput because of dateTime int changes

* update to testoutput

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Modify marine/smos_sss, marine/smap_sss, and  marine/hgodas_sst converters to follow JEDI data convention (#858)

* Marine smos_sss and smap_sss converters update

* Marine/smos_sss2ioda.py and Marine/smap_sss2ioda.py

* remove commented out lines from smos_sss and smap_sss converters

* smos, smap, and hgodas converters update

* testoutput/ nc file updates

* Fixed double-wording in smap and ssmos converters

* Restart CI

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Feature/sprint modis aod converters hb (#851)

* Changes regarding iodaconv

* Update chem/modis_aod for JEDI IODA convention

* Resolove PreQC unit issues

* significant changes, cleaning up, etc.

* Update testoutput/modis_aod.nc after Greg's change

* Update modis aod test reference files

Co-authored-by: Greg Thompson <63315545+gthompsnJCSDA@users.noreply.github.com>
Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Remove two land converters with grib input (#883)

* Removed two land converters with grib input files

* Removed two land conveters from the test/CMakeLists.txt

* Removed the input and output files for two land converters

* SPRINT:  Upgrade many converters of satellite data bufr2ioda.x to align with JEDI Data Conventions (#874)

* allow units attribute to a variable to be optional

* allow units attribute to a variable to be optional

* skip units if set to none or empty quotes

* updates to aircar, airep, amdar to match naming conventions

* abbeviate degree for windDirection

* fix up windDirection and couple other items

* many yaml files changed for JEDI naming conventions

* adjust many files to align with JEDI naming conventions

* make all new test ref files for JEDI naming conventions during sprint

* start of changes for matching JEDI Data Conventions

* able to combine v2 into prior MHS file

* able to merge v2 yaml into HRS earlier file when updating to JEDI Data Conventions

* update testref files compliant with JEDI Data Conventions

* new addition of AVHRR testinput/output files and consistent with JEDI Data Conventions

* new addition of AVHRR testinput/output files and consistent with JEDI Data Conventions

* add ctest for AVHRR

* new addition of AIRS testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of AMSUA testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of ATMS testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of CRIS testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of SEVIRI (CSR) testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of SSMIS testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of IASI testinput/output yaml and ctest consistent with JEDI Data Conventions

* remove the v2 reference of filename because we will be using JEDI Data Conventions eventually

* eliminate channelBlock, scaleFactor, and start/end channel info for now

* fix up the test ref files

* major reduction in file sizes

* fix test filenames and such

* add in a missing test ref file

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Feature/sprint ioda greg bufr2ioda3 (#891)

* allow units attribute to a variable to be optional

* allow units attribute to a variable to be optional

* skip units if set to none or empty quotes

* updates to aircar, airep, amdar to match naming conventions

* abbeviate degree for windDirection

* fix up windDirection and couple other items

* many yaml files changed for JEDI naming conventions

* adjust many files to align with JEDI naming conventions

* make all new test ref files for JEDI naming conventions during sprint

* start of changes for matching JEDI Data Conventions

* able to combine v2 into prior MHS file

* able to merge v2 yaml into HRS earlier file when updating to JEDI Data Conventions

* update testref files compliant with JEDI Data Conventions

* new addition of AVHRR testinput/output files and consistent with JEDI Data Conventions

* new addition of AVHRR testinput/output files and consistent with JEDI Data Conventions

* add ctest for AVHRR

* new addition of AIRS testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of AMSUA testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of ATMS testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of CRIS testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of SEVIRI (CSR) testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of SSMIS testinput/output yaml and ctest consistent with JEDI Data Conventions

* new addition of IASI testinput/output yaml and ctest consistent with JEDI Data Conventions

* remove the v2 reference of filename because we will be using JEDI Data Conventions eventually

* eliminate channelBlock, scaleFactor, and start/end channel info for now

* fix up the test ref files

* major reduction in file sizes

* fix test filenames and such

* add in a missing test ref file

* revert back to develop version of MHS file

* fix the test ref files for splitting, filtering, and filter_split

* update another test ref file for bufr_mhs2ioda

* ensuring updated test ref file

* fixing input and output files (again)

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* SPRINT:  upgrade radiosonde python-eccodes bufr (WMO) converter to JEDI Data Conventions (#887)

* working update with JEDI Data Conventions

* add in bufr_sample and bufr_mnemonics for sonde data

* add sonde sample file (input and reference) containing about 13 launches

* adjust sonde bufr python-eccodes test

* adjust sonde bufr python-eccodes test

* take out verticalSignifance variable

* reduced to have only TWO sounding locations to keep files smallish

* fix renamed file

* numerous bug fixes especially treatment of badlly formed BUFR messages

* update test ref file after bug fixes

* minor changes for coding norms

* tiny adjustment for coding norms

* adjust for sourceFiles global attr

* fix longitude bug

* newer ref file, trying to resolve ctest failing

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Feature/sprint aeronet converters hb (#849)

* Update chem/aeronet_aod/aaod for JEDI convention

* Resolve PreQC unit issue

* Adress aeronet aod dimenssion issue

* Use MetaData/qualityFlags to store AAOD QC values.

Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Feature/sprint viirs aod converters (#850)

* Update chem/viirs_aod for JEDI IODA conventions

* Resolve PreQC unit issue

* Standardize VIIRS AOD converter

* Minnor change

* Minor change

* Clean up viirs aod converter

Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Sprint:  Update the GODAE (marine) converters listed below to adopt the JEDI Data Conventions (#895)

* initial update for JEDI Data Conventions godae ship and trak

* alter godae_profile script to follow JEDI Data Conventions

* prelim version of godae-bgc-argo script for JEDI Data Conventions, not working yet

* still doing debugging

* now working godae_bgc_argo and its test ref file

* some improvements to ship and argo

* improved version of godae_profile, nearly working

* more debug efforts

* Fixed the issues with data types and numpy arrays.

* minor update to unify 4 converters and update test ref files

* fix spelling mistake

* minor adjust qc FillValue

* change units of salinity

* retouch the ref files because ctests are failing for unknown reason

* rewritten AMV-satwinds ascii2ioda converter

* oops, I attempted to write to wrong branch

* tiny fixes for coding norms

* fix argo for coding norms, update units of salinity

* bug fix for qcName as int not float

* Updated godae_trak with testref from CI

* fix test ref file Location as int64

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Stephen Herbener <stephen.herbener@gmail.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Feature/sprint ioda converters fcvdb (#848)

* Update the src/land/ascat_ssm2ioda.py converters and the corresponding ctest
output file test/testoutput/ascat_ssm.nc to the latest IODA conventions as of
2022/03/09.
Two errors remain in the ioda-validate.x tests:
 ERROR: Variable 'MetaData/datetime' needs units, but the 'units' attribute does not exist in the file.
 ERROR: Variable 'PreQC/soilMoistureNormalized' needs units, but the 'units' attribute does not exist in the file.
And one warning:
  Warning: Variable 'MetaData/datetime' uses a superseded name. Replace with 'dateTime'
Those will be addressed in a coming PR that will change the ioda-validate executable.

* Restart CI

* finish updating for JEDI data conventions

* needed to add in dateTime units

* update test ref file with units of dateTime

* fix test ref file

* trigger build

* adjust platform and sensor global attrs

* revert back to the global attributes of sensor and platform

* fix a couple coding norm problems

Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>
Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Fabio L R Diniz <fabiolrdiniz@gmail.com>
Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

* Update three marine converters for ioda-converters code sprint (#896)

* Removed two land converters with grib input files

* Removed two land conveters from the test/CMakeLists.txt

* Removed the input and output files for two land converters

* Update hgodas_insitu2ioda.py

* Update hgodas_insitu2ioda.py and the results

* Update ndbc_hfradar2ioda.py and the results

* Use unitless for salinity

* Update glider2ioda.py and the results

* Update the converters and the results

* Replace degree_ with degrees_ for lat/lon

* Update varaibles name for ndbc_hfradar2ioda.py

* Use dt = np.full(len(qcs), 0, dtype=np.int64) as usggested

* fix coding norm (blank line had spaces)

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>

* SPRINT:  update 3 marine converters to follow JEDI Data Conventions (#899)

* initial update for JEDI Data Conventions godae ship and trak

* alter godae_profile script to follow JEDI Data Conventions

* prelim version of godae-bgc-argo script for JEDI Data Conventions, not working yet

* still doing debugging

* now working godae_bgc_argo and its test ref file

* some improvements to ship and argo

* improved version of godae_profile, nearly working

* more debug efforts

* Fixed the issues with data types and numpy arrays.

* minor update to unify 4 converters and update test ref files

* fix spelling mistake

* minor adjust qc FillValue

* change units of salinity

* retouch the ref files because ctests are failing for unknown reason

* updated the converter and test ref file of hgodas_adt

* updated the converter and test ref file of rads_adt

* beginning rewrite of gmao_obs2ioda

* gmao obs to IODA appears working with new Data Conventions used

* add a test for gmao_obs2ioda along with input file

* forgot to add input/out files to append list

* rewritten AMV-satwinds ascii2ioda converter

* oops, I attempted to write to wrong branch

* tiny fixes for coding norms

* tiny fixes for coding norms

* fix argo for coding norms, update units of salinity

* bug fix for qcName as int not float

* fixing norms

* fix test ref file Location as int64

* now fixing test ref files

* force float32 for ObsValue

* force float and int types

* alter test ref file again

* fix NaN values

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Stephen Herbener <stephen.herbener@gmail.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>
Co-authored-by: Fabio L R Diniz <fabiolrdiniz@gmail.com>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Update the SatWinds AMV (from SSEC) ascii2ioda convert to follow JEDI Data Conventions (#900)

* rewritten AMV-satwinds ascii2ioda converter

* add ctest for satwinds NESDIS ascii2ioda converter

* move satwind amv converter to conventional, add to CMakeLists.txt

* fix date info

* fix coding norms

* rename from nesdis to ssec as the source of the data

* a couple bug fixes such as missing qi column in input data and the channel references

* change name of testoutput file and fix ctest

* make in/out files smaller

* make in/out files even smaller

* minor noqa (no quality assurance) comment to meet coding norms

* fix typo is sourceFiles keyname

* upload new output file with corrected keyname

* align together with Lindsey version

* update test ref file

* Empty commit hoping to fix merge conflict with test ref file

* take out duplicate

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: BenjaminRuston <benr@ucar.edu>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Remove bias files from validation

* Update gsidiag converter conventional data and satellite winds to comply with JEDI data convention  (#867)

* Modify gsidiag converter to follow JEDI data convention and update the test reference.

* Code clean up

* Remove debugging line

* Fix platform and sensor type from string to integer and update test output

* Remove writing the attribute for dateTime and update test reference output

* Perform unit change for frequency and wavenumber to meet JEDI data convention and update output test reference

* Fix unit for one derived variable and update output test reference

* Modify GSI ncdiag convergers for satellite wind and conventional data  to follow JEDI convention, and update output reference test files

* Fix coding norm

* Changed "satelliteDerivedWindComputationMethod" to "windComputationMethod" and update test output file

* Switch to sensorCentralFrequency and update output file

* Update gsi ncdiag converter to comply with JEDI concention and output test references

Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Bugfix/ascii satwind datetime fix for SPRINT (#926)

* fix the datetime reference move a small block of code

* add new output for ctest with correct datetime

* pass the day and time information directly to datetime removing intermediate variables

* Feature/sprint ioda converters ne viirs modis l2 oc2ioda (#873)

* updates so far

* argoClim2ioda.py updates

* initial updates

* argoclim updates

* newest updates. should be final

* deleted commented code

* Revert "deleted commented code"

This reverts commit 8dade8c1419e4bfe97ec953fd9043d6363e15a70.

* deleted commented code

* more code comment deletions

* 2

* trying to get rid of gnssro changes

* update var names

* add updated modis_aqua_oc_l2.nc

* Organic -> organic

* update output again

* update viirs_jpss1_oc_l2.nc

* update. int64 and UNLIMITED confirmed

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Feature/sprint ioda converters ne viirs modis l3 oc2ioda (#929)

* initial changes

* newer updates

* new update

* update time

* update time again

* update time

* time update3

* update output

* get rid of comments

* update output. should be good now

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Sprint: update src/marine/gds2_sst2ioda.py code for JEDI Data Conventions (#937)

* initial commit with changes for JEDI data conventions

* various fixes during debug; nearly working; failing to write output file

* Fixed issue with improper attachment of dimensions to variables.

* fixed bug for location dimension (vector of strings) and added new testoutput files

* fix coding norm of unexpected space character

* Update src/marine/gds2_sst2ioda.py

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Stephen Herbener <stephen.herbener@gmail.com>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

* Changes to resolve conflicts with develop branch.

* Fixed errors introduced with the prior commit containing the resolution of merge conflicts with develop.

* Updated smap9k test reference file.

* Removed units attribute from vegetationOpacity variable according to the conventions specification. (#946)

* Update sfc_tv_obs_2018041500.nc4 to be consistent with #953 (#954)

* Add files via upload

* Update file ran via feature/sprint-ioda-converters

* Delete sfc_tv_obs_2018041500.nc4

* Add files via upload

* Updated test reference for surface virtual temperature test for the gsi ncdiag converter

Co-authored-by: Stephen Herbener <stephen.herbener@gmail.com>

* Make dateTime fill value consistent across platforms (#968)

* WIP: getting the converter library updated with latest ioda python API fixes.

* WIP: Fixed cases where direct assinment of int64 types to dateTime were crashing when
setting the fill value.

* Updated test reference files for those tests that failed due to only the dateTime fill value
not matching.

* When BUFR-formatted sonde data has "subsets" the prior code wasn't able to decipher them (#961)

* nearly working updated code to handle subsets of sondes in single BUFR msg

* more debugging

* continue debugging

* effort continues

* very very close to working; still getting an abort with no year/month/day problem

* a few more bug fixes after testing on more real-time data

* change some debug printing

* light changes for coding_norms

* make comments about data bounds per review request

* attempting to resolve dumb merge conflict

* BUFR lib name fixes

* temporary delete of test/testoutput/satwinds_ssec

* tiny changes per PR requests

* update reference file

* coding norms fix

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Ryan Honeyager <honeyage@ucar.edu>

* Needed to go with feature/sprint-ioda-converters branch code for setting up
fill values instead of the develop version of that code.

* Update the sprint branch with as much of ```develop``` branch as possible for November code sprint (#1119)

* Add ability to capture useful radiosonde QC info (#1015)

* add in important QC info for sondes

* newly updated testoutput file after changes

* need to abort out of BUFR messages that claim to contain compressed data

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>

* Bugfix/omi ompsnm converter get files correctly at beginning of window (#1017)

* fix to grab files at start of the window.

* fix missing space.

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Add a new group in the IODA format for L2 products with averaging kernel and slant columns (#1018)

* firt commit, add smoothing group

* group smoothing in lib

* correct changes

* restore

* add smoothing for mopitt

* test data

* change group name

* update test data

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Feature/modis aod from h4 (#942)

* change modis aod converter to take antive hdf4 files as input
this requires installing the pyhdf python package

* update test ref:wq

* fix coding norms

* fix cmakelist

* pyhdf in ci

* bug fix obsvar name

* bugfix for variable name + testoutput

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: Maryam Abdi <maryamao@ucar.edu>

* Add geometric height options for geovals (#1024)

* A fix for SYNOP data containing BUFR subsets (#1021)

* interim code, not yet debugged/working

* handling subsets, is it even needed

* placement of data into meta_data

* much more refactoring, taking out repfacs that make zero sense in synop data

* after more bug fixes to SYNOP converter

* after more bug fixes to SYNOP converter

* revert back reference file that uses bufr2ioda.x

* bug fix for virtual temp and surface pres

* fixing coding norms

Co-authored-by: gthompsnJCSDA <gthompsn@ucar.edu>

* Fix combine obsspace bug (#1027)

Co-authored-by: Patrick Nichols <patjnichols@gmail.com>

* Updated with ioda engines header file name change (Factory.h -> EngineUtils.h) (#1030)

* Modified tests for MacOS SIP compatibility. (#1011)

Co-authored-by: Patrick Nichols <patjnichols@gmail.com>

* Changes in L2 trace gas retrievals converters for column operator generalization (#1025)

* changes in iodaconv to make a better ufo L2 nadir operator

* fix typo

* change index

* beging work on amf, to finish

* move the amf calculation in ioda conv

* update tests

* fix coding norms

* fix exec speed

* remove amf variables and code clarity

* update testinput

* faster tropoomi converter execution

* fix type in pressure

* update test output

* fix coding norms

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Added satbias converter for gmi_gpm. (#1042)

* add ompslpnc for geos adas along with cleanup. (#1043)

* add ompslpnc for geos adas along with cleanup.

* fix coding norm.

* tropomi better flags handling (#1037)

* use better flags

* coding norms

* combine two bool arrays

* Update src/compo/tropomi_no2_nc2ioda.py

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

* Update src/compo/tropomi_no2_nc2ioda.py

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

* Update src/compo/tropomi_no2_nc2ioda.py

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>
Co-authored-by: Patrick Nichols <patjnichols@gmail.com>

* Add variable for GNSS bending angle data, save orginal GSI QC flags a… (#1038)

* Add variable for GNSS bending angle data, save orginal GSI QC flags and other corrections, and remove VarMetaData.

* Removed the change of 'GsiEffectiveQC'.

* Trigger a test.

* Fixed coding norms.

* Fixed coding norms. Again

Co-authored-by: Dan Holdaway <27729500+danholdaway@users.noreply.github.com>

* Replaced "land_type_index" by "land_type_index_NPOESS" (#921)

* Replaced "land_type_index" by "land_type_index_NPOESS" in "gsi_ncdiag.py".

* Updated  gsi_ncdiag.py.

* Updated gsi_ncdiag.py.

* Removed Forecast_adjusted and Forecast_unadjusted for GSI radiance outputs.

* Moved some radiance variables into the new group VarMetaData.

* Add variable for GNSS bending angle data, save orginal GSI QC flags and other corrections, and remove VarMetaData.

* Only changed land_type_index to land_type_index_NPOESS.

Co-authored-by: Patrick Nichols <patjnichols@gmail.com>

* add capability to create MOPITT IODA files for DA window  (#1039)

* save

* add test and change converter

* Update src/compo/mopitt_co_nc2ioda.py

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

* Update src/compo/mopitt_co_nc2ioda.py

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

* Update src/compo/mopitt_co_nc2ioda.py

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>

* change to time time range

Co-authored-by: Fabio L R Diniz <45880035+fabiolrdiniz@users.noreply.github.com>
Co-authored-by: Patrick Nichols <patjnichols@gmail.com>

* Feature/query cxx (#1006)

* First cut at calling the new nceplibs bufr query interface.

* Updated to handle multi-dimensional data. Fixed DatetimeVariable. Got bufr mhs example to work.

* Added support for CCITT IA5 string fields. Fixed many other fields that not not properly support queries.

* Added support for forfield. Cleaned up some uneccesarrily complicated data structures.

* Removed split map in favor of a list of splits to make code more readable.

* Fixed bug with transforms. Updated some YAML files.

* Updated the README file.

* Fixed bug were CCITT IA5 fields would fail because of a silly mistake (throwing exception unneccessarliy).

* Renamed for field to group_by field.

* Removed duplicate directory for transforms.

* incremental checkin, getting higher dimensional data working

* Added DataObject cpp

* Finished major code revisions and got things to compile for automatic dimensioning.

* Some bug fixes to get simple radiance data working.

* Enhanced the reading of th dimensions field.

* Got filtering and splitting to work again. Might need to be a little more careful with slice dimensions, but works with existing examples.

* Fixed a dimension naming issue with the way group_by location dimensions were being named. Fixed some compiler warnings.

* Added arguments to bufr2ioda so you can limit the amount of messages that are parsed.

* Changed dimensions attribute to list or single string.

* Fixed transforms.

* Fixed transfoms so they will not affect missing values.

* Fixed bug that happened when we tried to export an empty category.

* Fixed strange issue that happened while applying filters. Removed some redundant yaml files from testinput.

* Updated a bunch of unit tests so that they would work with the latest code.

* updated test output files to work with latest version of ioda

* Added unit test and now time the runtime.

* Fixed a couple more unit tests.

* Added .dump files to gitlfs

* removed uneeded file

* BUFR2IODA conversion for AMSU-A and MHS Radiance data (#713)

* Add bufr to ioda conversion for IASI, ERAS/DB AMSU-A and MHS for ncar-bufr2nc-fortarn utility

* Add tests and associated test input/output files for ncar-bufr2nc-fortarn utility

* Add NCEP BUFR tables for normal-feed and RARS/DB satellite radiance data

* Add YAML files, tests, and test reference for normal-feed and db/ears AMSU-A

* Fix coding norm

* Rename NCEP BUFR tables for satellite radiance data

* Add yaml files, tests, and test input/output files for MHS (normal-feed and RARS/DB)
t

* Update Split.cpp

* Update DataObject.cpp

* Update IodaEncoder.cpp

* Update bufr_ncep_1bamua.yaml

* Update bufr_ncep_1bmhs.yaml

* Update bufr_ncep_esamua.yaml

* Update bufr_ncep_esmhs.yaml

* Fixed coding norms issue.

* Fixed some little issues.

Co-authored-by: Ronald McLaren <ronald.mclaren@noaa.gov>

* Update README.md

Updated documentation for dimensions.

* Test and enhance two yaml files for adpsfc snow and sevcrs data (#736)

* Update snowadpsfc

* Update bufr_snow_adpsfc.yaml

* Update testoutput

* Update yaml files and testinput and testoutput data

* Reduce input data size to 20% and update output

* Reduce input data size to 250KB and update testoutput

* Reduce the size of test files for amsua, mhs and iasi.  Update the corresponding test output files (#764)

* Removed uneeded files I missed during merge.

* Initial checkin of query classes with a lot of placeholder code

* Got data collection mostly working.

* Starting to work end to end. Need to fix exportdims and revisit code that deals with group by fields.

* Fixed issue where targets and masks were being copied unecessarily.

* Feature/adpupa prepbufr (#794)

* Added adpupa prepbufr yamls w/o group_by field with input adpupa prepbufr file

* adpupa netCDF files  w/o group_by field

* Updates made after ioda-validate.x run.

* Changed Quality Mark group from "ObsQualityMark" to "QualityMarker"

* Got a bunch of unit tests working.

* add aircft profiles to feature/query

* Fixed non-working functional unit tests.

* Added unit test for simple groupby example.

* Made simple groupby test work. Fixed related bugs.

* Added unit test for bufr files with missing fields.

* Added unit test for sfcshp data

* accidentaly messed up the bufr-mhs test. this fixes it

* Integrated latest bug fixes from the feature/query branch.

* Fixed bug were we weren't checking for empty sequence counts.

* added adpupa tests

* Fixed bugs that prevented adpupa from working.

* Getting much closer to having adpupa groupby example working.

* fixed final bug to get adpupa groupby case to work the same way.

* Removed some uneeded code.

* Reduce the size of the ADPUPA test input furrther

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code. Fixed some copyright statements.

* Changed the way data provider works (no longer a singleton). Minor cleanup.

* Added print_queries tool to the ioda-converter project.

* Improved situation arrising from missing string fields.

* Improved detection of string fields.

* Moved table logic out of the print_quiries function. Fixed bug were idxs were not being displayed on queries.

* Replace nlocs with Location, reduce the size of ADPUPA.prepbufr and … (#884)

* Replace nlocs with Location.  Reduce the size of ADPUPA.prepbufr and update the test output.

* remove checking of satellite id in QC (#878)

* remove checking of satellite id in QC

* added checking of bits 1 and 4 in QC flag

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Feature/optional python qc (#881)

* Corrected bit checks due to reverse ordered bits

* add check if there any data to write out

* update ctest input and reference file

* add new test output verification

* corrected pycodestyle error

* added optional georeality QC checks similar to those present in FORTRAN converter

* pycodestyle corrections

* removed percent confidence check

* attempting fix of conflicts with existing code

* corrected syntax errors

* removed global variable

Co-authored-by: BenjaminRuston <benr@ucar.edu>

Co-authored-by: haydenlj <99764299+haydenlj@users.noreply.github.com>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: BenjaminRuston <benr@ucar.edu>
Co-authored-by: Ronald McLaren <ronald.mclaren@noaa.gov>

* Reverted ADPUPA bufr file to smaller one.

* Fixed compiler warnings

* Fixed code style (norm) issues.

* Added doc strings to query code.

* Feature/query cxx praveen (#893)

* adpupa prepbufr yaml for updated group_by field and corresponding testoutput file

* adpupa prepbufr yaml containing GSI mnemonics only and corresponding output file

* adpupa gsi prepbufr file with updated name, groups, units, with bufr2ioda_cxx.x generated netCDF file

* added TVO and CLTP to the adpupa prepbufr yaml, updated name and output netcdf files

* Updated dimensions into yaml

* Added group_by fields for ELV, TYP, and T29; and updated the nc files

* Added white space

* Change dimension name to following unified IODA naming convention  (#767)

* Reduce the size of test files for amsua, mhs and iasi.  Update the corresponding test output files

* Replace "nlocs" with "Location" and "nchans" with "Channel" (to following the unified IODA naming convention).

* Fix a typo and update test output accordingly

* Added white space

* Made updates to make everything consistent with query_cxx branch

Co-authored-by: Ronald McLaren <ronald.mclaren@noaa.gov>

* Fixed bug when there were more than one subset in the file. Added ability to print monotone output (so you can pipe to a text file).

* Updated print queries so it no longer uses colors but prints the dimensioning subpaths seperatly.

* Chenged some maps to unordered_maps as they are better performance wise.

* Feature/query cxx as (#914)

* Updated yaml, yamlinput, and yaml output for SatWind AVHRR NC005080 within the new feature/query_cxx branch.

* The bufr_ncep_sawtind_avhrr yaml has been updated to include and produce input and output with the same name scheme. Files have been renamed accordingly.

* Modified input and output fields of the yaml file.

* modified:   CMakeLists.txt
renamed and modified:    bufr_ncep_satwind_avhrr.yaml -> testinput/bufr_ncep_satwind_avhrr.yaml

The input fields and linked name fields for "time" has been updated as suggested.
The CMakeList has been updated to match with the new naming scheme.
The "dimensions" field has been updated as suggested.
And the yaml has now been moved from ./test to ./test/testinput.

* Removed indices for most variables, while adding in 2 more indices for GNAP and PCCF to get wind direction and wind speed generating application and percent confidence.

* Updated variables names to match the JEDI convention spreadsheet.

* Removed a default/backup configuration line.

* Modify unit attribute in BUFR2IODA converter and bug fix for satellite winds (#940)

* Make units attribute an optional variable

* Bug fix for AVHRR satellite wind test: (1) unit in yaml (2) output directory in yaml (3) test output file in CMakelist.txt

* Change the test input and output file names according to the following logic:
(1) for input, use the global dump file naming convention  (e.g. gdas.t00z.satwnd.tm00.bufr_d)
(2) for output change the input file name extension bufr_d to nc  (gdas.t00z.satwnd.tm00.nc)

* delete bufr_ncep_satwind_avhrr.nc

* Make sure the time info is consistent between the file name and the data in the file.

* adjust the order of files listed in the CMakeList.txt

* Change the way to test the empty string.

* Fixed issue where non-existing query with index would cause a crash. Also fixed bug where the suggested dimesioning paths would be messed up sometimes.

* Fixed some norm test failures.

* Fixed all the unit tests

* Made change so that there is always one group_by field whcih applies to all the variables.

* Removed uneeded test

* Improved some of the code to do with finding the data object to group against.

* Fixed bug in print queries were fixed repeats were being missed.

* update two yaml files via query_cxx (#906)

* update snow adpsfc yaml and the result

* Update sevcsr yaml file and the result

* Update bufr_ncep_read_2_dim_blocks.yaml

* Fix dateTim with DateTime, nchans with Channel

* Remove ncep for yaml and modify the CMakeLists.txt

* Update bufr_ncep_snow_adpsfc.yaml

* Update bufr_read_2_dim_blocks.yaml to follow JEDI convention and update the associated test output (bufr_read_2_dim_blocks.nc).

* Modified yaml, add sacle and update the result

* Changes cloudAmount unit and update the result

* Change cloudAmount to cloudCoverTotal

* Set BUFR variable: CLDMNT to cloudAmount since it is already in JEDI convention with optional dimenion as [location, channel]

Co-authored-by: Emily Liu <emily.liu@noaa.gov>

* Feature/query cxx mhs (#960)

* Update 1bmhs YAML and test output

* Update DB mhs YAML file and test output

* Modify longnames and update test output files

* Feature/query cxx amsua (#958)

* Update YAMLS and test output files for 1bamsua and esamsua

* Update YAML files for AMSU-A

* Remove unwanted test file for amsua-a

* fix spacing.

* add spacings between lines

* Change height to heightOfStation and update test output

* Fix longnames

* Feature/query cxx iasi (#966)

* Update IASI yaml and related testoutput

* Update IASI YAML

* Update IASI test file

* Fix a few errors in IASI YAML and update the test output

* Feature/query cxx nick e adpsfc (#904)

* adpsfc prepbufr and bufr

* recommended changes

* recommended updates 2 (* and deg)

* CMakelists.txt update

* update CMakeLists.txt

* adpsfc prepbufr recommended changes

* remove nc, add full adpsfcyaml

* adpsfc updates, plus CMakelists

* remove CLTP and VSSO

* decrease number of variables

* update output

* heightOfStation -> stationElevation

* get rid of oceanographic

* update heightofbaseofcloud description

* update with correct files

* updates to HOCB CLAM VSSO

* update thinned, has all subsets

* Fixed the unit tests

* reportid -> SID, CLAM[1] is CLAM, pW@Obs, percent ->1

* update output

* new output from updated bufr2ioda.x

* bufr: HSMSL+SELV=stationElevation, PB: percent->1

* get rid of units:"" and unitless.

* add dimensions. cloudAmountObserved. cloudCover/100

* moistureQM -> dewpointTemperatureQM

* cloudAmount no units

* updated bufr with new dim names

* update prep. few names. add dimens

* most updates for prep

* No more 'Seen'. Other updates

* delete metarsequence, Of not of

* Move VSSO to be with other variables related to clouds

* Rearrange the order of entries in the YAML

* fix spacing in the YAML

* Reorder entries in YAML

* fix spaceing

* Rearrange entries

* Modify variable names and bug fix for ADPSFC BUFR and PREPBUFR YAMLS. Test output files also updated.

* Update CMakelist.txt and add comments

* Remove obselete files

* Modify ADPSFC test output back to original

* Modify variable names for max/min Temperatures

* Add missing variables and rearranged entries.

* Update test output for ADPSFC

* Change heightOfStation to heightOfObservation

* Update ctest output file for prepbufr adpsfc

* get rid of v1 adpsfc. final recommended updates

* revert, keep gdas.t06z.adpsfc.tm00.bufr_d for adpsfc_snow

* re-add adpsfc_snow input bufr to CmakeLists.txt

* Add the correct input test file for adpsfc snow data

* update prepbufr file names, CMake, yaml obsdatain and out

* typo

* degrees_north and east -> degree_north and east

* delete 'adsfc' file, update with degree

Co-authored-by: Emily Liu <emily.liu@noaa.gov>
Co-authored-by: Ron McLaren <ronlaren@aol.com>

* Feature/query cxx atovs (#963)

* Update test input files so data from all related satellite platform are included.  Rearrange the entries in the YAML files.

* update tes output files so that the naming convention of the filename is consistent.

* Update test output for iodaconv fortran

* Updated DatetimeVariable.cpp code for optional value of Minute (#949)

* Updated DatetimeVariable.cpp code for optional value of Minute

* added a yaml file to test the DatetimeVariable.cpp code for optional MINU variable

Co-authored-by: Emily Liu <emily.liu@noaa.gov>

* Now uses OOPS logging.

* Fixed some comments

* cast time to seconds instead of dividing by 1000

* fixed norm test failure

* made exit into exception

* using back inserter to append to sequence path

* fixed error message.

* fixed error message.

* added prepbufr to git lfs

* removed line continuation characters.

* replaced 10e10 with missing value

* accidentally deleted line of code. added it back

* changed print time function back tot he original.

* using gsl::narrow instead of simpoe static cast

* Enhanced vector product function

* Pulled out missing value into a Constants.h file to avoid duplication.

* fixed some comments

* fixed file permissions

* Added try catch statements to main functions. Fixed warning.

* pre reserve some memory

* removed unused test from CMakeLists.txt file.

* Added include of unordered map as some compilers were not finding it.

* Reverted unintended changes to files in ncar-bufr2nc-fortran and lib-python

* Fixed bug that invovled parsing the bufr table data incorrectly. Basically we were not exiting trivial sequences properly when parsing the table.

* Fixed bug in print queries as it was not trimming subset trims properly and was getting confused.

* Fixed some warnings and errors that happen with the CLANG compiler.

* Enable the C++14 standard for C++ compiles. (#1036)

* Fixed some code review issues that Cory Martin broght up.

* updated docs for DataObject::print function

* commented in line that was accidentally commented out

* Revert "commented in line that was accidentally commented out"

This reverts commit c78b93eae745b64b45567cec0ec2388ec129d0fb.

* Added back missing tests from the develop branch.

* Moved test_iodaconv_generic_gnssro_bufr back to where it was before (positionaly).

* Fixed issue caused by code review comment fix that caused bufr2ioda.x to obfuscate excepotion descriptions.

* Fixed exception handler in print_queries.x.

* Fixed Mac SIP issues.

* Commented out Emily Liu's bufr2nc_fortran.x tests..

* trigger ci

* changes needed for new containers (#1056)

* changes needed for new containers

* debug

* debug

* debug

* First stab at fixing CI using new containers

* Fix jedi-cmake

* Try make instead of ctest

* Try ctest after make

* Try ctest -j4 for intel

* Try ctest -j8 for intel

* Remove comments from buildspecs

* More cleanup in CI/buildspec_gnu.yml

* Fix CDASH links

Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>

Co-authored-by: Emily Liu <emily.liu@noaa.gov>
Co-authored-by: emilyhcliu <36091766+emilyhcliu@users.noreply.github.com>
Co-authored-by: YoulongXia-NOAA <51668688+YoulongXia-NOAA@users.noreply.github.com>
Co-authored-by: PraveenKumar-NOAA <63739712+PraveenKumar-NOAA@users.noreply.github.com>
Co-authored-by: Nicholas.Esposito <Nicholas.Esposito@noaa.gov>
Co-authored-by: haydenlj <99764299+haydenlj@users.noreply.github.com>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: BenjaminRuston <benr@ucar.edu>
Co-authored-by: AshleyStanfield-NOAA <92459593+AshleyStanfield-NOAA@users.noreply.github.com>
Co-authored-by: NicholasEsposito-NOAA <62616739+nicholasesposito@users.noreply.github.com>
Co-authored-by: Stephen Herbener <stephen.herbener@gmail.com>
Co-authored-by: Cory Martin <cory.r.martin@noaa.gov>
Co-authored-by: Patrick Nichols <patjnichols@gmail.com>
Co-authored-by: Maryam Abdi-Oskouei <maryamao@ucar.edu>
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>

* change from two composition related ctest to nonzero tolerances (#1064)

* bugfix (#1065)

Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>

* fix typo index (#1057)

Co-authored-by: Maryam Abdi <maryamao@ucar.edu>
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>

* Feature/query dim naming bug (#1040)

* First cut at calling the new nceplibs bufr query interface.

* Updated to handle multi-dimensional data. Fixed DatetimeVariable. Got bufr mhs example to work.

* Added support for CCITT IA5 string fields. Fixed many other fields that not not properly support queries.

* Added support for forfield. Cleaned up some uneccesarrily complicated data structures.

* Removed split map in favor of a list of splits to make code more readable.

* Fixed bug with transforms. Updated some YAML files.

* Updated the README file.

* Fixed bug were CCITT IA5 fields would fail because of a silly mistake (throwing exception unneccessarliy).

* Renamed for field to group_by field.

* Removed duplicate directory for transforms.

* incremental checkin, getting higher dimensional data working

* Added DataObject cpp

* Finished major code revisions and got things to compile for automatic dimensioning.

* Some bug fixes to get simple radiance data working.

* Enhanced the reading of th dimensions field.

* Got filtering and splitting to work again. Might need to be a little more careful with slice dimensions, but works with existing examples.

* Fixed a dimension naming issue with the way group_by location dimensions were being named. Fixed some compiler warnings.

* Added arguments to bufr2ioda so you can limit the amount of messages that are parsed.

* Changed dimensions attribute to list or single string.

* Fixed transforms.

* Fixed transfoms so they will not affect missing values.

* Fixed bug that happened when we tried to export an empty category.

* Fixed strange issue that happened while applying filters. Removed some redundant yaml files from testinput.

* Updated a bunch of unit tests so that they would work with the latest code.

* updated test output files to work with latest version of ioda

* Added unit test and now time the runtime.

* Fixed a couple more unit tests.

* Added .dump files to gitlfs

* removed uneeded file

* BUFR2IODA conversion for AMSU-A and MHS Radiance data (#713)

* Add bufr to ioda conversion for IASI, ERAS/DB AMSU-A and MHS for ncar-bufr2nc-fortarn utility

* Add tests and associated test input/output files for ncar-bufr2nc-fortarn utility

* Add NCEP BUFR tables for normal-feed and RARS/DB satellite radiance data

* Add YAML files, tests, and test reference for normal-feed and db/ears AMSU-A

* Fix coding norm

* Rename NCEP BUFR tables for satellite radiance data

* Add yaml files, tests, and test input/output files for MHS (normal-feed and RARS/DB)
t

* Update Split.cpp

* Update DataObject.cpp

* Update IodaEncoder.cpp

* Update bufr_ncep_1bamua.yaml

* Update bufr_ncep_1bmhs.yaml

* Update bufr_ncep_esamua.yaml

* Update bufr_ncep_esmhs.yaml

* Fixed coding norms issue.

* Fixed some little issues.

Co-authored-by: Ronald McLaren <ronald.mclaren@noaa.gov>

* Update README.md

Updated documentation for dimensions.

* Test and enhance two yaml files for adpsfc snow and sevcrs data (#736)

* Update snowadpsfc

* Update bufr_snow_adpsfc.yaml

* Update testoutput

* Update yaml files and testinput and testoutput data

* Reduce input data size to 20% and update output

* Reduce input data size to 250KB and update testoutput

* Reduce the size of test files for amsua, mhs and iasi.  Update the corresponding test output files (#764)

* Removed uneeded files I missed during merge.

* Initial checkin of query classes with a lot of placeholder code

* Got data collection mostly working.

* Starting to work end to end. Need to fix exportdims and revisit code that deals with group by fields.

* Fixed issue where targets and masks were being copied unecessarily.

* Feature/adpupa prepbufr (#794)

* Added adpupa prepbufr yamls w/o group_by field with input adpupa prepbufr file

* adpupa netCDF files  w/o group_by field

* Updates made after ioda-validate.x run.

* Changed Quality Mark group from "ObsQualityMark" to "QualityMarker"

* Got a bunch of unit tests working.

* add aircft profiles to feature/query

* Fixed non-working functional unit tests.

* Added unit test for simple groupby example.

* Made simple groupby test work. Fixed related bugs.

* Added unit test for bufr files with missing fields.

* Added unit test for sfcshp data

* accidentaly messed up the bufr-mhs test. this fixes it

* Integrated latest bug fixes from the feature/query branch.

* Fixed bug were we weren't checking for empty sequence counts.

* added adpupa tests

* Fixed bugs that prevented adpupa from working.

* Getting much closer to having adpupa groupby example working.

* fixed final bug to get adpupa groupby case to work the same way.

* Removed some uneeded code.

* Reduce the size of the ADPUPA test input furrther

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code.

* Removed undesired include from legacy bufr code. Fixed some copyright statements.

* Changed the way data provider works (no longer a singleton). Minor cleanup.

* Added print_queries tool to the ioda-converter project.

* Improved situation arrising from missing string fields.

* Improved detection of string fields.

* Moved table logic out of the print_quiries function. Fixed bug were idxs were not being displayed on queries.

* Replace nlocs with Location, reduce the size of ADPUPA.prepbufr and … (#884)

* Replace nlocs with Location.  Reduce the size of ADPUPA.prepbufr and update the test output.

* remove checking of satellite id in QC (#878)

* remove checking of satellite id in QC

* added checking of bits 1 and 4 in QC flag

Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>

* Feature/optional python qc (#881)

* Corrected bit checks due to reverse ordered bits

* add check if there any data to write out

* update ctest input and reference file

* add new test output verification

* corrected pycodestyle error

* added optional georeality QC checks similar to those present in FORTRAN converter

* pycodestyle corrections

* removed percent confidence check

* attempting fix of conflicts with existing code

* corrected syntax errors

* removed global variable

Co-authored-by: BenjaminRuston <benr@ucar.edu>

Co-authored-by: haydenlj <99764299+haydenlj@users.noreply.github.com>
Co-authored-by: Stephen Herbener <32968781+srherbener@users.noreply.github.com>
Co-authored-by: BenjaminRuston <benr@ucar.edu>
Co-authored-by: Ronald McLaren <ronald.mclaren@noaa.gov>

* Reverted ADPUPA bufr file to smaller one.

* Fixed compiler warnings

* Fixed code style (norm) issues.

* Added doc strings to query code.

* Feature/query cxx praveen (#893)

* adpupa prepbufr yaml for updated group_by field and corresponding testoutput file

* adpupa prepbufr yaml containing GSI mnemonics only and corresponding output file

* adpupa gsi prepbufr file with updated name, groups, units, with bufr2ioda_cxx.x generated netCDF file

* added TVO and CLTP to the adpupa prepbufr yaml, updated name and output netcdf files

* Updated dimensions into yaml

* Added group_by fields for ELV, TYP, and T29; and updated the nc files

* Added white space

* Change dimension name to following unified IODA naming convention  (#767)

* Reduce the size of test files for amsua, mhs and iasi.  Update the corresponding test output files

* Replace "nlocs" with "Location" and "nchans" with "Channel" (to following the unified IODA naming convention).

* Fix a typo and update test output accordingly

* Added white space

* Made updates to make everything consistent with query_cxx branch

Co-authored-by: Ronald McLaren <ronald.mclaren@noaa.gov>

* Fixed bug when there were more than one subset in the file. Added ability to print monotone output (so you can pipe to a text file).

* Updated print queries so it no longer uses colors but prints the dimensioning subpaths seperatly.

* Chenged some maps to unordered_maps as they are better performance wise.

* Feature/query cxx as (#914)

* Updated yaml, yamlinput, and yaml output for SatWind AVHRR NC005080 within the new feature/query_cxx branch.

* The bufr_ncep_sawtind_avhrr yaml has been updated to include and produce input and output with the same name scheme. Files have been renamed accordingly.

* Modified input and output fields of the yaml file.

* modified:   CMakeLists.txt
renamed and modified:    bufr_ncep_satwind_avhrr.yaml -> testinput/bufr_ncep_satwind_avhrr.yaml

The input fields and linked name fields for "time" has been updated as suggested.
The CMakeList has been updated to match with the new naming scheme.
The "dimensions" field has been updated as suggested.
And the yaml has now been moved from ./test to ./test/testinput.

* Removed indices for most variables, while adding in 2 more indices for GNAP and PCCF to get wind direction and wind speed generating application and percent confidence.

* Updated variables names to match the JEDI convention spreadsheet.

* Removed a default/backup configuration line.

* Modify unit attribute in BUFR2IODA converter and bug fix for satellite winds (#940)

* Make units attribute an optional variable

* Bug fix for AVHRR satellite wind test: (1) unit in yaml (2) output directory in yaml (3) test output file in CMakelist.txt

* Change the test input and output file names according to the following logic:
(1) for input, use the global dump file naming convention  (e.g. gdas.t00z.satwnd.tm00.bufr_d)
(2) for output change the input file name extension bufr_d to nc  (gdas.t00z.satwnd.tm00.nc)

* delete bufr_ncep_satwind_avhrr.nc

* Make sure the time info is consistent between the file name and the data in the file.

* adjust the order of files listed in the CMakeList.txt

* Change the way to test the empty string.

* Fixed issue where non-existing query with index would cause a crash. Also fixed bug where the suggested dimesioning paths would be messed up sometimes.

* Fixed some norm test failures.

* Fixed all the unit tests

* Made change so that there is always one group_by field whcih applies to all the variables.

* Removed uneeded test

* Improved some of the code to do with finding the data object to group against.

* Fixed bug in print queries were fixed repeats were being missed.

* update two yaml files via query_cxx (#906)

* update snow adpsfc yaml and the result

* Update sevcsr yaml file and the result

* Update bufr_ncep_read_2_dim_blocks.yaml

* Fix dateTim with DateTime, nchans with Channel

* Remove ncep for yaml and modify the CMakeLists.txt

* Update bufr_ncep_snow_adpsfc.yaml

* Update bufr_read_2_dim_blocks.yaml to follow JEDI convention and update the associated test output (bufr_read_2_dim_blocks.nc).

* Modified yaml, add sacle and update the result

* Changes cloudAmount unit and update the result

* Change cloudAmount to cloudCoverTotal

* Set BUFR variable: CLDMNT to cloudAmount since it is already in JEDI convention with optional dimenion as [location, channel]

Co-authored-by: Emily Liu <emily.liu@noaa.gov>

* Feature/query cxx mhs (#960)

* Update 1bmhs YAML and test output

* Update DB mhs YAML file and test output

* Modify longnames and update test output files

* Feature/query cxx amsua (#958)

* Update YAMLS and test output files for 1bamsua and esamsua

* Update YAML files for AMSU-A

* Remove unwanted test file for amsua-a

* fix spacing.

* add spacings between lines

* Change height to heightOfStation and update test output

* Fix longnames

* Feature/query cxx iasi (#966)

* Update IASI yaml and related testoutput

* Update IASI YAML

* Update IASI test file

* Fix a few errors in IASI YAML and update the test output

* Feature/query cxx nick e adpsfc (#904)

* adpsfc prepbufr and bufr

* recommended changes

* recommended updates 2 (* and deg)

* CMakelists.txt update

* update CMakeLists.txt

* adpsfc prepbufr recommended changes

* remove nc, add full adpsfcyaml

* adpsfc updates, plus CMakelists

* remove CLTP and VSSO

* decrease number of variables

* update output

* heightOfStation -> stationElevation

* get rid of oceanographic

* update heightofbaseofcloud description

* update with correct files

* updates to HOCB CLAM VSSO

* update thinned, has all subsets

* Fixed the unit tests

* reportid -> SID, CLAM[1] is CLAM, pW@Obs, percent ->1

* update output

* new output from updated bufr2ioda.x

* bufr: HSMSL+SELV=stationElevation, PB: percent->1

* get rid of units:"" and unitless.

* add dimensions. cloudAmountObserved. cloudCover/100

* moistureQM -> dewpointTemperatureQM

* cloudAmount no units

* updated bufr with new dim names

* update prep. few names. add dimens

* most updates for prep

* No more 'Seen'. Other updates

* delete metarsequence, Of not of

* Move VSSO to be with other variables related to clouds

* Rearrange the order of entries in the YAML

* fix spacing in the YAML

* Reorder entries in YAML

* fix spaceing

* Rearrange entries

* Modify variable names and bug fix for ADPSFC BUFR and PREPBUFR YAMLS. Test output files also updated.

* Update CMakelist.txt and add comments

* Remove obselete files

* Modify ADPSFC test output back to original

* Modify variable names for max/min Temperatures

* Add missing variables and rearranged entries.

* Update test output for ADPSFC

* Change heightOfStation to heightOfObservation

* Update ctest output file for prepbufr adpsfc

* get rid of v1 adpsfc. final recommended updates

* revert, keep gdas.t06z.adpsfc.tm00.bufr_d for adpsfc_snow

* re-add adpsfc_snow input bufr to CmakeLists.txt

* Add the correct input test file for adpsfc snow data

* update prepbufr file names, CMake, yaml obsdatain and out

* typo

*…
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

Successfully merging this pull request may close these issues.

4 participants