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

Feature 1355 ioda #1587

Merged
merged 35 commits into from
Dec 3, 2020
Merged

Feature 1355 ioda #1587

merged 35 commits into from
Dec 3, 2020

Conversation

hsoh-u
Copy link
Collaborator

@hsoh-u hsoh-u commented Dec 1, 2020

Pull Request Testing

  • Describe testing already performed for these changes:

  • Recommend testing for the reviewer to perform, including the location of input datasets:

  • Will this PR result in changes to the test suite? [Yes or No]

    Yes because new unit tests were added
    No for the existing unit tests

  • After merging, should the reviewer DELETE the feature branch from GitHub? [No]

Pull Request Checklist

See the METplus Workflow for details.

  • Complete the PR definition above.
  • Ensure the PR title matches the feature or bugfix branch name.
  • Define the PR metadata, as permissions allow.
    Select: Reviewer(s), Project(s), and Milestone
  • After submitting the PR, select Linked Issues with the original issue number.

Testing

  • unit test is added (unit_ioda2nc.xml)
    • two config files for unit test were added: IODA2NCConfig_mask & IODA2NCConfig_summary
  • data files are available at
    • dakota: /d3/projects/MET/MET_test_data/unit_test/obs_data/ioda
    • kiowa: /d1/projects/MET/MET_test_data/unit_test/obs_data/ioda
    • dakoda: /d3/projects/MET/MET_IODA_development (from Create ioda2nc tool for IODA obs file format. #1142)
      • none of them are supported because "datetime@MetaData" variable is missing
      • It has the global attribute "date_time"
  • note: "units" attribute is ignored because of unknown encoding.
  • time summary is supported
  • Support filtering by station_id, message type and other mask (grid, ply line)
  • The metadata is configurable (metadata_map)
    • they are message_type, station_id, pressure or height of the obs data, and station elevation.

Example of commands:

[from unit test]
export MASK_GRID=''
export MASK_POLY=''
export MESSAGE_TYPE=''
export STATION_ID='"KEKA"'
./bin/ioda2nc
/d3/projects/MET/MET_test_data/unit_test/obs_data/ioda/ioda.NC001007.2020031012.nc
ioda.NC001007.2020031012.mask_sid.nc
-config /d3/personal/hsoh/git/work/features/feature_1355_ioda/MET/test/config/IODA2NCConfig_mask
-v 2

./bin/ioda2nc
/d3/projects/MET/MET_test_data/unit_test/obs_data/ioda/odb_sonde_16019.nc4
ioda2nc/odb_sonde_16019_all.nc
-v 2

./bin/ioda2nc
/d3/projects/MET/MET_test_data/unit_test/obs_data/ioda/ioda.NC001007.2020031012.nc
ioda.NC001007.2020031012.summary.nc
-config /d3/personal/hsoh/git/work/features/feature_1355_ioda/MET/test/config/IODA2NCConfig_summary
-v 2

@hsoh-u hsoh-u added this to the MET 10.0 milestone Dec 1, 2020
Copy link
Collaborator

@JohnHalleyGotway JohnHalleyGotway left a comment

Choose a reason for hiding this comment

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

Compiled code for this PR on kiowa. Had to commit a handful of changes to get 'make install test' to run. Also added some .gitignore files to ignore expected file name. I did run all the unit tests on the merged code on kiowa and they do all run, including the newly added ones for ioda2nc:

/d1/projects/MET/MET_pull_requests/met-10.0.0_beta2/feature_1355/MET-feature_1355_ioda_into_develop

@JohnHalleyGotway JohnHalleyGotway merged commit 724ec47 into develop Dec 3, 2020
@JohnHalleyGotway JohnHalleyGotway deleted the feature_1355_ioda branch December 3, 2020 20:49
@JohnHalleyGotway JohnHalleyGotway linked an issue Dec 3, 2020 that may be closed by this pull request
19 tasks
@JohnHalleyGotway JohnHalleyGotway removed a link to an issue Dec 3, 2020
19 tasks
JohnHalleyGotway added a commit that referenced this pull request Dec 7, 2020
* Task 1455 doc (#1550)

* first stab at converting to sphinx

* removing all slashes

* adding new link to README.rst file

* working on lists

* Made formatting changes

* Finished fcst section

* fixing spelling, bolding and italics issues

* updating web links

* working on formatting

* updating formatting

* formatting

* first attempt to clean up formatting completed.

* adding README to the index file

* fixing warning errors

* Bringing README_TC into sphinx.  Updating section headers

* Adding README_TC

* Made formatting updates to README.rst

* corrected section under wavelet

* small changes

* removing met/data/config/README since it is now in met/docs/Users_Guide

* Added some formatting for headers

* fixing chapters & sections

* Fixed warnings from building

Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>

* Add debug level 4 message to list out the number of GRIB2 records inventoried. This helps debugging issues with MET potentially not reading all input GRIB2 records on WCOSS.

* Update Makefile.am

PR #1550 broke the build. It removed the data/config/README file but left a reference to it in Makefile.am. I'm removing that reference directly in the develop branch to get the Docker build, nightly regression test, and nightly Fortify build working.

* Bugfix 1554 develop ncdump (#1556)

* Task 1455 doc (#1557)

* first stab at converting to sphinx

* removing all slashes

* adding new link to README.rst file

* working on lists

* Made formatting changes

* Finished fcst section

* fixing spelling, bolding and italics issues

* updating web links

* working on formatting

* updating formatting

* formatting

* first attempt to clean up formatting completed.

* adding README to the index file

* fixing warning errors

* Bringing README_TC into sphinx.  Updating section headers

* Adding README_TC

* Made formatting updates to README.rst

* corrected section under wavelet

* small changes

* removing met/data/config/README since it is now in met/docs/Users_Guide

* Added some formatting for headers

* fixing chapters & sections

* Fixed warnings from building

* adding in code blocks

* removing slashes

* changes

* Made changes to formatting

* removing For example code blocks

* major updates

* fist pass at document conversion complete.

* cleaning up questions about dashes

* Made some formatting modifications

* Removing README_TC because it is being replaced by README_TC.rst in met/docs/Users_Guide

* Removing the reference to the README_TC file

* Making title capitalization consistent with README

* Added a space in timestring

* changing to 'time string' with a space between the words.

* adding a link to the new README_TC location in met/docs/Users_Guide

* Modified references to README and README_TC

Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>

* Bugfix 1562 develop grid_diag (#1564)

* Per #1562, add the same grid_diag fix for the develop branch.

* Per #1562, removing the poly = CONUS.poly mask from GridDiagConfig_TMP. That settting masked a problem in the handling of missing data. Exercising the mask.poly option is tested in another unit test. This will change the output and break the nightly build, but that's good since we'll do more thorough testing.

* Per #1508, change the verbosity in unit_tc_gen.xml from -v 2 to -v 5 to print out some additional log messages that may help in debugging the intermittent file list failure.

* Removed references data/config/README

* Feature 1528 plot_point_obs (#1560)

* Per #1528, adding default config file for PlotPointObs tool.

* Per #1528, added line_width to config file.

* Per #1528, adding PlotPointObs config file and it actually compiles. Now I need to do all the work.

* Per #1528, making some progress adding Observation objects and storing the unique locations in a set. Next, I need to parse the options from the config file.

* Per #1528, add config constants for plot_point_obs options and update PlotInfo to include an on/off flag and colorbar flag.

* Per #1528, update plot_point_obs config file options and plot_point_obs_conf_info.h/.cc to process them.

* Per #1528, add a couple more config keys for Plot-Point-Obs.

* Per #1528, add an obs_gc array to the default Plot-Point-Obs config file.

* Per #1528, make a few local plotting functions global so that Plot-Point-Obs can call them.

* Per #1528, lots of changes to Plot-Point-Obs. Getting closer. Still need to finish up coding, add tests, and update the documentation.

* Per #1528, I found that PlotInfo.colorbar_spacing was never actually used in the code. So I removed it from the MODE and PlotPointObs config files and removed it from the PlotInfo object.

* Per #1528, add timestring_to_time_t() utility function to vx_cal library.

* Per #1528, cleanup... just removed commented out code.

* Per #1528, update plot_point_obs.cc to parse/process the observation valid time correctly.

* For #1528, change the library order to make the linker happy.

* Per #1528, I had changed message_type to msg_typ but failed to updated the default config file.

* Per #1527, making the usage statement slightly more concise.

* Per #1528, changing the default line_color and fill_color entries to be empty arrays.

* Per #1528, add in support for the convert and data censoring logic.

* Per #1528, update the documentation for plot_point_obs to reflect the new usage.

* 1528 Consider making the plotting options of plot_point_obs more configurable (#1559)

* #1528 Added get_dim_size

* #1528 Added qty_list

* #1528 Get the quality flag string. Get the character dimensions from the variable

* Per #1528, slight refomatting of source code for consistent line lengths.

* Per #1528, setting the default dotsize to 1.0, as it was previously (not 10!).

* Per #1528, fix logic so that if a fill color table is specified fill_point is set to true. Also adjust margins.

* Per #1528, add a new call to plot_point_obs in unit_plot_point_obs.xml to exercise the new config file options.

* Per #1528, only make the margins bigger if we're actually plotting a colorbar. Otherwise, retain the previous margin sizes.

* Update met/data/config/PlotPointObsConfig_default

Co-authored-by: jprestop <jpresto@ucar.edu>

* Update PlotPointObsConfig_default

* Update test/config/PlotPointObsConfig

Co-authored-by: jprestop <jpresto@ucar.edu>

* Consistent formatting

* Per #1528, based on Michelle's feedback, add the -title string option to the plot_point_obs usage statement.

Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: hsoh-u <hsoh@ucar.edu>
Co-authored-by: jprestop <jpresto@ucar.edu>

* Feature 1568 ncl (#1570)

* Per #1568, add python script to convert NCL *.rgb colormaps to MET *.ctable color tables. Also store 270 new or updated colortables that are the output from this script. Note that some of the existing colortables have changed ever so slightly. That's the result of some imprecise rounding earlier and more precise rounding now.

* Per #1568, update and rerun the rgb2ctable.py conversion script to write a header at the top of each colortable file to list the source NCL colormap.

* Updated README and README_TC references in test/config and test/config/ref_config areas

* Updated reference formatting and modified some versions to be consistent with other section of the User's Guide (#1577)

* Feature 1574 rotlatlon (#1576)

* Feature 1474 README (#1582)

* Changed name of README and README_TC, modified references to those, and cleaned up some formatting.

* Fixed formatting and language

* Update data_io.rst

* Update data_io.rst

* Update config_options_tc.rst

Co-authored-by: johnhg <johnhg@ucar.edu>

* Added tilda files and temp files surrounded by # to .gitignore

* Task 1455 doc (#1585)

* first stab at converting to sphinx

* removing all slashes

* adding new link to README.rst file

* working on lists

* Made formatting changes

* Finished fcst section

* fixing spelling, bolding and italics issues

* updating web links

* working on formatting

* updating formatting

* formatting

* first attempt to clean up formatting completed.

* adding README to the index file

* fixing warning errors

* Bringing README_TC into sphinx.  Updating section headers

* Adding README_TC

* Made formatting updates to README.rst

* corrected section under wavelet

* small changes

* removing met/data/config/README since it is now in met/docs/Users_Guide

* Added some formatting for headers

* fixing chapters & sections

* Fixed warnings from building

* adding in code blocks

* removing slashes

* changes

* Made changes to formatting

* removing For example code blocks

* major updates

* fist pass at document conversion complete.

* cleaning up questions about dashes

* Made some formatting modifications

* Removing README_TC because it is being replaced by README_TC.rst in met/docs/Users_Guide

* Removing the reference to the README_TC file

* Making title capitalization consistent with README

* Added a space in timestring

* changing to 'time string' with a space between the words.

* adding a link to the new README_TC location in met/docs/Users_Guide

* Modified references to README and README_TC

* small formatting changes

* small formatting changes

* fixing tabs

* fixing spacing around number 11

* removing parenthesis around reference dates.

* adding parenthesis back in.

* fixing references

* updating references

* Update appendixC.rst

Removed space from "HAUSDOR FF"

* Update plotting.rst

Changed a couple of references of Plot_Point_Obs to Plot-Point-Obs

* Update point-stat.rst

Added oxford commas

Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>

* Feature 1355 ioda (#1587)

* #1355 Added makefile for ioda2.nc

* #1355 Added ioda2nc

* #1355 Added unit_ioda2nc.xml

* #1355 Added yyyymmddThhmmss_to_unix and is_yyyymmddThhmmss

* #1355 Added yyyymmddThhmmss_to_unix and is_yyyymmddThhmmss

* #1355 Added parse_conf_metadata_map and parse_conf_obs_name_map

* #1355 Added conf_key_obs_name_map, conf_key_metadata_map, and conf_key_missing_thresh

* #1355 Exception handlijng at get_att_value_chars

* #1355 Initial release

* #1355 Initial release

* #1355 Cleanup

* #1355 Corretced NC_BYTE value

* #1355 Initial release

* #1355 Added IODA2NCConfig_efault

* #1355 Added IODA2NCConfig_default

* #1355 Turn off time_summary

* #1355 Changed missing_thresh +-1e9

* #1355 Terminate string

* #1355 Corrected echo statement

* #1355 Removed unused variable

* #1355 Make the string null terminated

* #1355 Move the IODA2NCConfig_default to above to avoid merge conflict

* #1355 To aoide merge conflict

* #1355 To avoid a merge conflict

* #1355 To avoid a merge conflict

* #1355 To avoid a merge conflict

* #1355 To avoid a merge conflict

* #1355 To avoid a merge conflict

* #1355 To avoid a merge conflict

* #1355 To avoid a merge conflict

* Per #1355, add .gitignore file for ioda2nc.

* Per #1355, had to add test stub for the new ioda2nc tool to enable 'make test' to run.

* Per #1355, tweak met/scripts/Makefile to NOT ignore the ENABLE_PYTHON configuration option when constructing the list of tests.

* Per #1355, ignore the scripts/ioda2nc file.

Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>

* Per #1590, change V10.0 to V10.0.0 to make use of X.Y.Z version numbering. (#1591)

* Task_1455_doc (#1595)

* first stab at converting to sphinx

* removing all slashes

* adding new link to README.rst file

* working on lists

* Made formatting changes

* Finished fcst section

* fixing spelling, bolding and italics issues

* updating web links

* working on formatting

* updating formatting

* formatting

* first attempt to clean up formatting completed.

* adding README to the index file

* fixing warning errors

* Bringing README_TC into sphinx.  Updating section headers

* Adding README_TC

* Made formatting updates to README.rst

* corrected section under wavelet

* small changes

* removing met/data/config/README since it is now in met/docs/Users_Guide

* Added some formatting for headers

* fixing chapters & sections

* Fixed warnings from building

* adding in code blocks

* removing slashes

* changes

* Made changes to formatting

* removing For example code blocks

* major updates

* fist pass at document conversion complete.

* cleaning up questions about dashes

* Made some formatting modifications

* Removing README_TC because it is being replaced by README_TC.rst in met/docs/Users_Guide

* Removing the reference to the README_TC file

* Making title capitalization consistent with README

* Added a space in timestring

* changing to 'time string' with a space between the words.

* adding a link to the new README_TC location in met/docs/Users_Guide

* Modified references to README and README_TC

* small formatting changes

* small formatting changes

* fixing tabs

* fixing spacing around number 11

* removing parenthesis around reference dates.

* adding parenthesis back in.

* fixing references

* updating references

* Update appendixC.rst

Removed space from "HAUSDOR FF"

* Update plotting.rst

Changed a couple of references of Plot_Point_Obs to Plot-Point-Obs

* Update point-stat.rst

Added oxford commas

* bolding Config and italizing directory names.

* Modified format

* italicizing directories.

* removed extra tool

* italicizing directories

* bolding

* Update plotting.rst

Changed Plot_Point_Obs to Plot-Point-Obs

Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>

* Per #1598, update comment in all the MET config files. (#1599)

* Feature 1494 ens_stat (#1600)

Merging into the develop branch to get these changes included for the met-10.0.0-beta2 development release. These are good and worthwhile changes to make on their own. However, I do still need @j-opatz to confirm that they actually fix the original issue with python embedding in ensemble-stat!

* Per #1494, add DataPlane::is_all_bad_data() function to determine whether the field is all bad data.

* Per #1494, update the process_data_plane() function in 2 ways. First, change its return from void to bool. And simply return false, if the raw input data is all bad data. Second, print debug(4) log messages to list out the range of valid data and timing information. It'll be really nice to make this consistent across all the input file types.

* Per #1494, update the logic for all the calls to process_data_plane() to account for the fact that it now returns a bool instead of void.

* Per #1494, refine the Data plane debug(4) log messages.

* Per #1494, work on log message.

* Per #1494, updated vx_data2d_python library to call the common process_data_plane() function to apply data shifting, censoring, conversion, and check for all missing data.

* Per #1494, just fixing a small typo in an unrelated source code file that I ran across when testing for met-help.

Co-authored-by: lisagoodrich <33230218+lisagoodrich@users.noreply.github.com>
Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: hsoh-u <hsoh@ucar.edu>
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.

2 participants