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 1546 CI testing #2029

Merged
merged 147 commits into from
Jan 27, 2022
Merged

Feature 1546 CI testing #2029

merged 147 commits into from
Jan 27, 2022

Conversation

georgemccabe
Copy link
Collaborator

@georgemccabe georgemccabe commented Jan 27, 2022

Expected Differences

  • Do these changes introduce new tools, command line arguments, or configuration file options? [Yes]

    This PR implements automation via GitHub Actions to run unit tests and compare the results to the latest truth or reference output.
  • Push events on feature/bugfix branches will trigger the compilation of the MET tools to ensure changes did not break them.
  • Pull requests into develop or main_vX.Y branches will trigger all of the unit tests and comparing the results to truth data.
  • Push events on branches that end with -ref triggers all of the unit tests and an automatic update of the truth data set on DockerHub so subsequent tests will use the new results as truth.
  • Keywords in the last commit message before a push event can override some of these settings and trigger different events. For example, adding "ci-run-unit" in a commit message will run the unit tests and diff logic on a normal push event.
  • Do these changes modify the structure of existing or add new output data types (e.g. statistic line types or NetCDF variables)? [Yes]

@JohnHalleyGotway spent some time rearranging unit test XML files to improve the efficiency of the automated runs. Each unit test group now writes to an output directory that matches the name of the test. Some test files that take a long time have been split up into multiple test files so they can be run in parallel. Others have been split up so that they can be run directly after other test files that produce output that is needed as input for the tests. More work can be done to improve the speed of the unit tests. See the comments in the corresponding GitHub issue #1546 for more details.

Pull Request Testing

  • Describe testing already performed for these changes:

Triggered many GitHub Actions workflows to ensure that the expected behavior occurs.

  • Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:
  • Review the event rules (on keyword in .github/workflows/unit_test.yml) and the job control rules (in .github/jobs/set_job_control.sh) to ensure that the expected behavior will run based on what triggered the workflow.
  • Review the commit keywords to see if any other desired overrides should be provided
  • Review the Actions log output for the run triggered by this pull request to ensure it looks as expected
  • After this pull request is merged, review the log for the workflow triggered by the push to the develop branch
  • If the develop branch run looks good, create a pull request from develop into develop-ref (may have to resolve conflicts first, see https://metplus.readthedocs.io/en/develop/Contributors_Guide/add_use_case.html#create-a-pull-request-from-develop-into-develop-ref for tips). This PR can be merged without review since the rules for a PR into a -ref branch do not run the unit tests.
  • Review the logs for workflow triggered on the push to the develop-ref branch to ensure that the truth data is updated properly.
  • Trigger a workflow from the push on a new feature branch using the "ci-run-unit" keyword and ensure that the diff tests result in no differences.
  • Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [No]

We will want to document how all of this new functionality works, but we should first determine if what is implemented is sufficient or if changes should be made. We should create a new GitHub issue for writing up documentation for this to add to the MET Contributor's Guide.

  • Do these changes include sufficient testing updates? [Yes]

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

  • Changes to unit test structure will cause differences
  • Changes to the unit tests to avoid writing output files that contain bad characters such as colon (:) that cause failures in creating GitHub Actions artifacts because they voilate NTFS file name rules
  • Changes to recent pull request merges that have not yet been added to the develop-ref branch.
  • Please complete this pull request review by 2022/01/28.

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)
    Select: Organization level software support Project or Repository level development cycle Project
    Select: Milestone as the version that will include these changes
  • After submitting the PR, select Linked issues with the original issue number.
  • After the PR is approved, merge your changes. If permissions do not allow this, request that the reviewer do the merge.
  • Close the linked issue and delete your feature or bugfix branch from GitHub.

…at is needed to run MET unit tests and diff logic in Docker
… if the docker commands fail. The scripts are now called in separate steps that generate their own log files so these groups are no longer needed anyway.
… MET and tools needed to run unit tests into seperate Dockerfiles
…rom a Dockerfile so that it can be called from Dockerfile and Dockerfile.copy
…cker image instead of cloning the repository
…. This was not needed in Dockerfile because the commands were chained together with &&, but in a script execution will continue after a failed command
…local source code, set environment variables that set docker build args in workflow yml
…hat should trigger compilation test and make change that should break compilation
@georgemccabe georgemccabe added this to the MET 10.1.0 milestone Jan 27, 2022
@georgemccabe georgemccabe linked an issue Jan 27, 2022 that may be closed by this pull request
22 tasks
@georgemccabe
Copy link
Collaborator Author

It looks like the pull request check is not showing up on this pull request. This may be due to the fact that the develop branch does not yet have the workflow files so it doesn't include it in the list of checks for that branch. The documentation pull request check is shown, which was already in the develop branch at the time of this PR. The workflow that kicked off from the pull request is here: https://github.com/dtcenter/MET/actions/runs/1757053931
After this PR is merged, we could use the next pull request into develop to test that the pull request check is included.

… so that an error will occur if MET_TEST_MET_PYTHON_EXE is set when running a test that needs it to be set
@georgemccabe
Copy link
Collaborator Author

There were a few failures in the pull request unit test run due to changes that were merged in from develop. I made the updates to the feature branch, then closed and reopened this pull request to trigger the pull request workflow. Here is the new workflow: https://github.com/dtcenter/MET/actions/runs/1757642185

@georgemccabe
Copy link
Collaborator Author

In the MET engineering meeting today, @jprestop reminded me that the event triggering rules should be set so that changes to the documentation (met/docs/**) should not trigger the unit test workflow. We should add this to the event rules. We had discussed only triggering on changes under met/src, but there may be other files outside of that directory that may warrant a new run.

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.

I approve of these changes. Thanks so much @georgemccabe for leading the way on this!

I downloaded the logs.zip and diff.zip artifacts and inspected the differences flagged in logs/comp_dir.log. They fall into the following categories:

  1. The truth data is "missing" 217 files while the new output data is missing "201". These changes are all expected.
  • In 3 output filenames, colons are changed to underscores.
  • 12 new output files are added to the python output directory for the new tests added by Feature 1844 python embedding #2010.
  • 4 new instances of CONUS.nc appear in the ref_config output which were added to enable unit_ref_config.xml to be split out into multiple jobs which run concurrently.
  • All remaining differences are due to the output directory name changing.
head -221 logs/comp_dir.log | tail -217 > missing_from_truth
head -423 logs/comp_dir.log  | tail -201 > missing_from_output
cat missing_from_truth | sed 's%stat_analysis_[a-z]s%stat_analysis%g' | sed 's%ref_config_lead_[0-9][0-9]%ref_config%g' | sed 's/_indy//g' | sed 's/climatology_[0-9].[0-9]deg/climatology/g' | sort > missing_from_truth_MOD
cat missing_from_output | sort > missing_from_output_MOD
diff missing_from_truth_MOD missing_from_output_MOD

And here's those diffs:

<     ascii2nc/qc_out_2012-09-07_00_00_00.GRM_P_FCST.nc 
---
>     ascii2nc/qc_out_2012-09-07_00:00:00.GRM_P_FCST.nc 
94,111c94,95
<     pcp_combine/wrfout_d01_2008-08-08_12_00_00_PLEV_APCP06.nc 
<     plot_data_plane/wrfout_d01_2008-08-08_12_00_00_PLEV_NC_PINTERP_PRES_SFC.ps 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V.stat 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V_ecnt.txt 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V_ens.nc 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V_orank.nc 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V_orank.txt 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V_phist.txt 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V_relp.txt 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V_rhist.txt 
<     python/ensemble_stat/ensemble_stat_FILE_LIST_20120410_120000V_ssvar.txt 
<     python/nam_and_ndas.20120409.t12z.prepbufr_CONFIG.ps 
<     python/pb2nc_TMP.nc 
<     python/point_stat_GRIB1_NAM_GDAS_WINDS_120000L_20120409_120000V.stat 
<     ref_config/gen_vx_mask/CONUS.nc 
<     ref_config/gen_vx_mask/CONUS.nc 
<     ref_config/gen_vx_mask/CONUS.nc 
<     ref_config/gen_vx_mask/CONUS.nc 
---
>     pcp_combine/wrfout_d01_2008-08-08_12:00:00_PLEV_APCP06.nc 
>     plot_data_plane/wrfout_d01_2008-08-08_12:00:00_PLEV_NC_PINTERP_PRES_SFC.ps 
  1. There are 16 additional errors that look like this:
ERROR: NetCDF file size difference exceeds 1 %

The size of the NetCDF file created via GHA differs from kiowa or seneca, perhaps due to differing block sizes. But none of the data actually differed. So these diffs can be ignored.

  1. 5 png images differed. I manually spot-checked them and saw no discernible difference in the plots. So these diffs can be ignored.

Once this PR has been merged into develop, recommend merging develop into develop-ref to regenerate the truth data used for future unit test difference comparisons.

@JohnHalleyGotway JohnHalleyGotway merged commit 3097278 into develop Jan 27, 2022
@JohnHalleyGotway JohnHalleyGotway deleted the feature_1546_unit_xmls branch January 27, 2022 21:50
JohnHalleyGotway added a commit that referenced this pull request Jan 27, 2022
Co-authored-by: Julie Prestopnik <[email protected]>
Co-authored-by: johnhg <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: j-opatz <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: jprestop <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: hsoh-u <[email protected]>
Co-authored-by: George McCabe <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: MET Tools Test Account <[email protected]>
Co-authored-by: mo-mglover <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
georgemccabe added a commit that referenced this pull request Jan 27, 2022
Co-authored-by: Julie Prestopnik <[email protected]>
Co-authored-by: johnhg <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: j-opatz <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: jprestop <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: hsoh-u <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: MET Tools Test Account <[email protected]>
Co-authored-by: mo-mglover <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
georgemccabe added a commit that referenced this pull request Jan 28, 2022
Co-authored-by: Julie Prestopnik <[email protected]>
Co-authored-by: johnhg <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: j-opatz <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: jprestop <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: hsoh-u <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: MET Tools Test Account <[email protected]>
Co-authored-by: mo-mglover <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
JohnHalleyGotway added a commit that referenced this pull request Feb 3, 2022
* Per #1906, modify code to pass entire path to make_temp_file_name instead of only the filename so that the function can tell whether or not the file exists. (#1952)

Co-authored-by: Julie Prestopnik <[email protected]>

* Feature 1761 percent thresh (#1956)

* Per issue #1761 in set_perc() adding code to get FBIAS numeric value, like 1.0 or 0.9, etc. SL

* Per issue #1761: in set_perc(), modified actual percentile calculation at end to use the extracted FBIAS numeric value (float). SL

* Per issue #1761: modified the check on the perc_thresh_freq_bias, just has to be > 0 now. SL

* Per issue #1761: cleaned up code in set_perc(). SL

* Per #1761, updates to Simple_Node::set_perc() to handle variable frequency bias amounts.
Changes include:
- Reverting the formatting of this back to how it originally was in the develop branch. In general, just match the formatting of the existing file, so as the minimize the number of difference lines.
- Add logic to adjust the percentile to be found based on the requested FBIAS value. Multiplying or dividing the percentile by the FBIAS value depends on the inequality type and whether we're bias adjusting the forecast or observation data.
- Adjust the log messages slightly.

Please be aware that I'm not totally confident in these changes. They warrant much more testing. This logic is very, very confusing.

* Per #1761, call compute_percentile() when double-checking the percentile values.

* Per #1761, remove unused variable.

* Per #1761, add warning for percentiles > 100.

* Per #1761. In set_perc(), after testing cleaned up code. SL

* Per issue #1761: adding new config file for testing dynamic FBIAS values. SL

* Per issue #1761: added new unit test for dynamic FBIAS values when running grid_stat. SL

* Per issue #1761, modified FBIAS section to indicated that the user can use dynamic values that are not 1.0. SL

* Update met/docs/Users_Guide/config_options.rst

Co-authored-by: johnhg <[email protected]>

* Update met/docs/Users_Guide/config_options.rst

Co-authored-by: johnhg <[email protected]>

* Update met/docs/Users_Guide/config_options.rst

Co-authored-by: johnhg <[email protected]>

* Update test/config/GridStatConfig_fbias_perc_thresh

Co-authored-by: johnhg <[email protected]>

* Update test/config/GridStatConfig_fbias_perc_thresh

Co-authored-by: johnhg <[email protected]>

* Update test/config/GridStatConfig_fbias_perc_thresh

Co-authored-by: johnhg <[email protected]>

* Update test/config/GridStatConfig_fbias_perc_thresh

Co-authored-by: johnhg <[email protected]>

* Per issue #1761, set nc_pairs_flag = FALSE. SL

Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>

* Feature 1905 ens_ctrl (#1955)

Co-authored-by: j-opatz <[email protected]>

* Hotfix after merging changing for #1761. Updating the list of expected output files.

* Per #1905, committing a hotfix directly to the develop branch. Reverting the logic for computing the ensemble range back to what it was previously. The new version produced very slight differences in the 6-th or 7-th decimal place when compared to previous results. There's not good reason for these changes which were caused by the order of operations in casting from doubles to floats. Reverting back to the old logic prevents diffs for anyone else downstream and is the prudent choice.

* Feature 1957 ascii2nc_python (#1958)

* Feature 1949 cf netcdf documentaton (#1951)

* #1949 Added CF compliant NetCDF into data IO

* #1949 Added commas

* #1948 Some corrections for typo and added the links for CF attributes

* #1948 Added Performance with NetCDF input data

* #1949 Corrected tyoe and applied Juloie's suggestions

Co-authored-by: Howard Soh <[email protected]>

* Feature 1968 ens_ctrl (#1969)

* Feature 1809 gen prob (#1967)

* Feature 1970 v10.1.0-beta4 (#1973)

* Fix tiny typo in plot_data_plane usage statement.

* Hotfix for the develop branch to get met-10.1.0-beta4 compiling on WCOSS. The intel compiler does not allow adjacent >> characters when defining maps.

* Updating the beta4 release date from 11/16 to 11/17 since the beta4 release needs to be recreated.

* Update the MET PR template to list expected changes up front.

* Bugfix 1976 develop cdist (#1979)

* #1936 Excludes precip3hr, precip6hr, precip12hr, and precip10min from required variables for MESONET

* Per #1985, correcting typo found while creating V10.0.1 in the develop branch as well.

* Per #1985, VERY minor change to fix alignment of titles in Point-Stat... updating the develop branch.

* #1936 Added an unit test for newer MESONET file

* Feature 1989 sort (#1990)

* Feature 1991 VCNT (#1992)

* Feature 1993 grid_mask (#1994)

* #1844 Added vx_pointdata_python

* #1844 Added vx_pointdata_python to PYTHON_LIBS & make file for vx_pointdata_python

* #1844 Added vx_pointdata_python to SUBDIRS

* #1844 Initial release

* #1844 Added met_point_data.cc & met_point_data.h

* #1844 NcHeaderData is renamed to MetPointHeader and moved to met_point_dataq.h

* #1844 NcPointObsData is derived from MetPointObsData. Many methods are moved to the base class MetPointObsData

* #1844 Moved varianbles and methods to the base class MetPointData

* #1844 override the obs_data pointer to the derived class

* #1844 Added pyobject_as_bool & pyobject_as_string_array

* #1844 Cleanup include statements and addpointdata_python.h if python is enabled

* #18443 Support python embedding

* #1844 Initial release

* #1844 Make buf_size const

* Add GitHub Actions workflow to trigger METplus testing workflow (#2002)

* changed names of inputs to send to METplus to match changes to METplus repo

* #1965 Excludes the duplicated variable names from multiple input files

* #1965 Processed with the raw variable names and update them when the output is saved.

* #1965 Added unit test ioda2nc_same_input

* #1965 Processed with the raw variable names and update them when the output is saved.

* #1965 Added unit test ioda2nc_same_input

* #1965 initialize var_idx

* Update the development environment for seneca to add /usr/local/nco/bin and /usr/local/netcdf/bin to the path. Also define MET_TEST_RSCRIPT to point to a new enough version of RSCRIPT that has the ncdf4 package 1.17 or later.

* send email address of user who triggered event to METplus workflow as input

* Fixup the Rscript diffing logic to support running the nightly build on seneca. The problem here is that the ncdiff -x -v command line options that worked in version 4.7.0 NO LONGER work in 4.9.2. Added a check to skip over the time_bounds variable when processing the ncdiff output.

* No real changes here. Just formatting

* Feature 1974 message_type_group_map (#1999)

Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>

* Feature 1996 uninitialized variables (#2004)

Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>

* Feature 1695 ensemble single file (gen_ens_prod) (#2001)

Co-authored-by: johnhg <[email protected]>

* Feature 1965 NB faile with time summary by ioda2nc (#2008)

Co-authored-by: Howard Soh <[email protected]>

* Feature 1810 shapes (#2005)

* #1844 Added log message for use_var_id

* #1844 Get use_var_id for python embedding

* #1844 Initial release

* #1844 Added met_point_obs.py and read_met_point_obs.py

* #1844 Added 4 unit test for python embedding of MET point data

* More changes to test_util.R to account for differences between 4.7.0 and 4.9.2 of ncdiff. The earlier version reported 0 diffs for the time_bounds, lat, lon, latitude, and longitude variables while the newer version reports their raw values. Simply ignore these variables for now. This isn't a great solution but when we reimplement this testing logic in python, we can address this issue then.

* #1844 Added python embedding for point observation data

* Feature 1926 gridstat openmp (#1977)

Co-authored-by: johnhg <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: Julie Prestopnik <[email protected]>

* feature 1695 ensemble single file (ensemble_stat) (#2007)

Co-authored-by: johnhg <[email protected]>

* Committing directly to the develop branch. Removing many, many instances of MET_BUILD_BASE and a couple instances of MET_BASE from the examples listed in Appendix A. The inconsistent use of these variables will only cause confusion. Removing them will help avoid that confusion. Big picture... MET_BASE defines the installed 'share/met' directory. It can be used to reference the location of map or polyline files. MET_BUILD_BASE is only used in the context of the test scripts. There, it's defined as the top-level source code directory in which the code was compiled. Its used to reference the location of sample data files or Rscript included in the tarball. I left a couple references to these variables in Appendix A where thier use is not confusing. But I removed all instances which are used to the define the location of the 'bin' directory. Instead, let's just assume the MET binaries are already in their path... or the user knows where to find them.

* feature 2011 v10.1.0-beta5 (#2014)

* feature 1695 fix issues with ensemble changes (#2012)

Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>

* Hotfix for #1695 committed directly to the develop branch. The new Ensemble-Stat config files added for this issue don't define a random number generator seed. This results in different output for each run and prevents the regression test from producing repeatable results. Defining the seed here to fix that.

* Adding George to email list for the nightly build.

* Fix the links for the met-10.1.0-beta5 release notes.

* #1844 Make met_point_obs as abstract class

* #1844 correctedb for loop end condition on processing obs bdata

* Feature 1546 unit_tests (#2021)

* #2020 Added SonarQube related varibales

* #2020 Initial release

* #2015 Avoid the repeasted debug message if derived varibales are disabled

* #1996 Initialize right and left

* #1966 Call clear() instead of reset memory for Header variable

* #1966 Make sure the levels from variable  does not exceed the maxLevel

* #1966 Removed unreachable codes

* #1966 Do not write into NetcDF if empty data

* #2015 Corrected "retained or derived" count

* Feature 1546 CI testing (#2029)

Co-authored-by: John Halley Gotway <[email protected]>

* fixed broken workflow by setting environment variable expected for docker build script

* add missing docker tag from push command

* added correct docker tag value

* fixed incorrect truth data version for updating -ref reference data

* Updating develop with changes to the unit tests names. Renaming unit_test.yml to a more generic testing.yml name since it compiles AND/OR runs unit tests. Also make the job names more concise so its easier to see what's running in the action summary window on GitHub.

* fixed directory to copy truth data into -- copy command was copying the content of the directory, not including the directory itself

* Per #1907, added warning about switch from Ensemble-Stat to Gen-Ens-Prod (#2032)

Co-authored-by: Julie Prestopnik <[email protected]>

* 2028 Check null for header data

* Removed un-reachable code

* #2028 Check if the pointer (d) is null

* #2015 Changed warning to debug message

* #2028 Passing two dimensionl cur and dim array

* #2028 Set obs_data

* Feature 2003 briercl (#2034)

Co-authored-by: jprestop <[email protected]>
Co-authored-by: Julie Prestopnik <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: j-opatz <[email protected]>
Co-authored-by: hsoh-u <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: George McCabe <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: MET Tools Test Account <[email protected]>
Co-authored-by: mo-mglover <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
JohnHalleyGotway added a commit that referenced this pull request Feb 12, 2022
* Per #1906, modify code to pass entire path to make_temp_file_name instead of only the filename so that the function can tell whether or not the file exists. (#1952)

Co-authored-by: Julie Prestopnik <[email protected]>

* Feature 1761 percent thresh (#1956)

* Per issue #1761 in set_perc() adding code to get FBIAS numeric value, like 1.0 or 0.9, etc. SL

* Per issue #1761: in set_perc(), modified actual percentile calculation at end to use the extracted FBIAS numeric value (float). SL

* Per issue #1761: modified the check on the perc_thresh_freq_bias, just has to be > 0 now. SL

* Per issue #1761: cleaned up code in set_perc(). SL

* Per #1761, updates to Simple_Node::set_perc() to handle variable frequency bias amounts.
Changes include:
- Reverting the formatting of this back to how it originally was in the develop branch. In general, just match the formatting of the existing file, so as the minimize the number of difference lines.
- Add logic to adjust the percentile to be found based on the requested FBIAS value. Multiplying or dividing the percentile by the FBIAS value depends on the inequality type and whether we're bias adjusting the forecast or observation data.
- Adjust the log messages slightly.

Please be aware that I'm not totally confident in these changes. They warrant much more testing. This logic is very, very confusing.

* Per #1761, call compute_percentile() when double-checking the percentile values.

* Per #1761, remove unused variable.

* Per #1761, add warning for percentiles > 100.

* Per #1761. In set_perc(), after testing cleaned up code. SL

* Per issue #1761: adding new config file for testing dynamic FBIAS values. SL

* Per issue #1761: added new unit test for dynamic FBIAS values when running grid_stat. SL

* Per issue #1761, modified FBIAS section to indicated that the user can use dynamic values that are not 1.0. SL

* Update met/docs/Users_Guide/config_options.rst

Co-authored-by: johnhg <[email protected]>

* Update met/docs/Users_Guide/config_options.rst

Co-authored-by: johnhg <[email protected]>

* Update met/docs/Users_Guide/config_options.rst

Co-authored-by: johnhg <[email protected]>

* Update test/config/GridStatConfig_fbias_perc_thresh

Co-authored-by: johnhg <[email protected]>

* Update test/config/GridStatConfig_fbias_perc_thresh

Co-authored-by: johnhg <[email protected]>

* Update test/config/GridStatConfig_fbias_perc_thresh

Co-authored-by: johnhg <[email protected]>

* Update test/config/GridStatConfig_fbias_perc_thresh

Co-authored-by: johnhg <[email protected]>

* Per issue #1761, set nc_pairs_flag = FALSE. SL

Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>

* Feature 1905 ens_ctrl (#1955)

Co-authored-by: j-opatz <[email protected]>

* Hotfix after merging changing for #1761. Updating the list of expected output files.

* Per #1905, committing a hotfix directly to the develop branch. Reverting the logic for computing the ensemble range back to what it was previously. The new version produced very slight differences in the 6-th or 7-th decimal place when compared to previous results. There's not good reason for these changes which were caused by the order of operations in casting from doubles to floats. Reverting back to the old logic prevents diffs for anyone else downstream and is the prudent choice.

* Feature 1957 ascii2nc_python (#1958)

* Feature 1949 cf netcdf documentaton (#1951)

* #1949 Added CF compliant NetCDF into data IO

* #1949 Added commas

* #1948 Some corrections for typo and added the links for CF attributes

* #1948 Added Performance with NetCDF input data

* #1949 Corrected tyoe and applied Juloie's suggestions

Co-authored-by: Howard Soh <[email protected]>

* Feature 1968 ens_ctrl (#1969)

* Feature 1809 gen prob (#1967)

* Feature 1970 v10.1.0-beta4 (#1973)

* Fix tiny typo in plot_data_plane usage statement.

* Hotfix for the develop branch to get met-10.1.0-beta4 compiling on WCOSS. The intel compiler does not allow adjacent >> characters when defining maps.

* Updating the beta4 release date from 11/16 to 11/17 since the beta4 release needs to be recreated.

* Update the MET PR template to list expected changes up front.

* Bugfix 1976 develop cdist (#1979)

* #1936 Excludes precip3hr, precip6hr, precip12hr, and precip10min from required variables for MESONET

* Per #1985, correcting typo found while creating V10.0.1 in the develop branch as well.

* Per #1985, VERY minor change to fix alignment of titles in Point-Stat... updating the develop branch.

* #1936 Added an unit test for newer MESONET file

* Feature 1989 sort (#1990)

* Feature 1991 VCNT (#1992)

* Feature 1993 grid_mask (#1994)

* #1844 Added vx_pointdata_python

* #1844 Added vx_pointdata_python to PYTHON_LIBS & make file for vx_pointdata_python

* #1844 Added vx_pointdata_python to SUBDIRS

* #1844 Initial release

* #1844 Added met_point_data.cc & met_point_data.h

* #1844 NcHeaderData is renamed to MetPointHeader and moved to met_point_dataq.h

* #1844 NcPointObsData is derived from MetPointObsData. Many methods are moved to the base class MetPointObsData

* #1844 Moved varianbles and methods to the base class MetPointData

* #1844 override the obs_data pointer to the derived class

* #1844 Added pyobject_as_bool & pyobject_as_string_array

* #1844 Cleanup include statements and addpointdata_python.h if python is enabled

* #18443 Support python embedding

* #1844 Initial release

* #1844 Make buf_size const

* Add GitHub Actions workflow to trigger METplus testing workflow (#2002)

* changed names of inputs to send to METplus to match changes to METplus repo

* #1965 Excludes the duplicated variable names from multiple input files

* #1965 Processed with the raw variable names and update them when the output is saved.

* #1965 Added unit test ioda2nc_same_input

* #1965 Processed with the raw variable names and update them when the output is saved.

* #1965 Added unit test ioda2nc_same_input

* #1965 initialize var_idx

* Update the development environment for seneca to add /usr/local/nco/bin and /usr/local/netcdf/bin to the path. Also define MET_TEST_RSCRIPT to point to a new enough version of RSCRIPT that has the ncdf4 package 1.17 or later.

* send email address of user who triggered event to METplus workflow as input

* Fixup the Rscript diffing logic to support running the nightly build on seneca. The problem here is that the ncdiff -x -v command line options that worked in version 4.7.0 NO LONGER work in 4.9.2. Added a check to skip over the time_bounds variable when processing the ncdiff output.

* No real changes here. Just formatting

* Feature 1974 message_type_group_map (#1999)

Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>

* Feature 1996 uninitialized variables (#2004)

Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>

* Feature 1695 ensemble single file (gen_ens_prod) (#2001)

Co-authored-by: johnhg <[email protected]>

* Feature 1965 NB faile with time summary by ioda2nc (#2008)

Co-authored-by: Howard Soh <[email protected]>

* Feature 1810 shapes (#2005)

* #1844 Added log message for use_var_id

* #1844 Get use_var_id for python embedding

* #1844 Initial release

* #1844 Added met_point_obs.py and read_met_point_obs.py

* #1844 Added 4 unit test for python embedding of MET point data

* More changes to test_util.R to account for differences between 4.7.0 and 4.9.2 of ncdiff. The earlier version reported 0 diffs for the time_bounds, lat, lon, latitude, and longitude variables while the newer version reports their raw values. Simply ignore these variables for now. This isn't a great solution but when we reimplement this testing logic in python, we can address this issue then.

* #1844 Added python embedding for point observation data

* Feature 1926 gridstat openmp (#1977)

Co-authored-by: johnhg <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: Julie Prestopnik <[email protected]>

* feature 1695 ensemble single file (ensemble_stat) (#2007)

Co-authored-by: johnhg <[email protected]>

* Committing directly to the develop branch. Removing many, many instances of MET_BUILD_BASE and a couple instances of MET_BASE from the examples listed in Appendix A. The inconsistent use of these variables will only cause confusion. Removing them will help avoid that confusion. Big picture... MET_BASE defines the installed 'share/met' directory. It can be used to reference the location of map or polyline files. MET_BUILD_BASE is only used in the context of the test scripts. There, it's defined as the top-level source code directory in which the code was compiled. Its used to reference the location of sample data files or Rscript included in the tarball. I left a couple references to these variables in Appendix A where thier use is not confusing. But I removed all instances which are used to the define the location of the 'bin' directory. Instead, let's just assume the MET binaries are already in their path... or the user knows where to find them.

* feature 2011 v10.1.0-beta5 (#2014)

* feature 1695 fix issues with ensemble changes (#2012)

Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>

* Hotfix for #1695 committed directly to the develop branch. The new Ensemble-Stat config files added for this issue don't define a random number generator seed. This results in different output for each run and prevents the regression test from producing repeatable results. Defining the seed here to fix that.

* Adding George to email list for the nightly build.

* Fix the links for the met-10.1.0-beta5 release notes.

* #1844 Make met_point_obs as abstract class

* #1844 correctedb for loop end condition on processing obs bdata

* Feature 1546 unit_tests (#2021)

* #2020 Added SonarQube related varibales

* #2020 Initial release

* #2015 Avoid the repeasted debug message if derived varibales are disabled

* #1996 Initialize right and left

* #1966 Call clear() instead of reset memory for Header variable

* #1966 Make sure the levels from variable  does not exceed the maxLevel

* #1966 Removed unreachable codes

* #1966 Do not write into NetcDF if empty data

* #2015 Corrected "retained or derived" count

* Feature 1546 CI testing (#2029)

Co-authored-by: John Halley Gotway <[email protected]>

* fixed broken workflow by setting environment variable expected for docker build script

* add missing docker tag from push command

* added correct docker tag value

* fixed incorrect truth data version for updating -ref reference data

* Updating develop with changes to the unit tests names. Renaming unit_test.yml to a more generic testing.yml name since it compiles AND/OR runs unit tests. Also make the job names more concise so its easier to see what's running in the action summary window on GitHub.

* fixed directory to copy truth data into -- copy command was copying the content of the directory, not including the directory itself

* Per #1907, added warning about switch from Ensemble-Stat to Gen-Ens-Prod (#2032)

Co-authored-by: Julie Prestopnik <[email protected]>

* 2028 Check null for header data

* Removed un-reachable code

* #2028 Check if the pointer (d) is null

* #2015 Changed warning to debug message

* #2028 Passing two dimensionl cur and dim array

* #2028 Set obs_data

* Feature 2003 briercl (#2034)

* do not run testing workflow if changes are isolated to the met/docs directory

* Per #2013, changed source and README.  ci-run-unit (#2039)

* Feature 1055 read rot latlon (#2041)

* CI: output summary of differences in GHA log to easily see results without having to download the log artifact

* #2027 Added a debug message

* #2027 ci-run-unit Changed wind thres

* #2027 ci-run-unit Increased the precision to debug message

* print end of script after error summary, ci-run-unit

* #2027 Increased the buffer and cheking the status of sprintf

* Feature 1998 standard sections (#2038)

* fixing section headers to be consistent with METplus #1998

* fixing section headers to be consistent with METplus #1998

* fixing section headers to be consistent with METplus #1998 missed one

* fixing section headers to be consistent with METplus #1998 try again

* fixing section headers to be consistent with METplus #1998 I had it right the first time

* fixing section headers to be consistent with METplus #1998

* fixing section headers to be consistent with METplus #1998 fixing mistake

* fixing section headers to be consistent with METplus #1998

* fixing section headers to be consistent with METplus #1998

* fixing section headers to be consistent with METplus #1998

* fixing section headers to be consistent with METplus #1998

* fixing section header underscore to dash #1998

* updating TOC vs ref 1998

* updating TOC vs ref 1998 completed

* trying to fix link #1998

* trying to fix link adding reference back in #1998

* updating TOC again underscore vs dash #1998

* updating TOC again underscore vs dash #1998

* updating TOC vs ref 1998 try

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998 take 2

* standardizing TOC sections #1998 take 3

* re-standardizing TOC sections #1998

* re-standardizing TOC sections #1998

* re-standardizing TOC sections #1998

* re-standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998

* updating questions into the TOC.  test #1998

* updating questions into the TOC. #1998

* standardizing TOC sections #1998

* standardizing TOC sections #1998 fixing typo

* standardizing TOC sections #1998 fixing typo

* standardizing TOC sections #1998 fixing typo

* standardizing TOC sections #1998 fixing typo

* standardizing TOC sections #1998 fixing typo

* standardizing TOC sections #1998 fixing typo

* cleaning up questions. removing section title from questions.

* adding a period #1989.

* adding the line breaks back in to match other formatting within MET #1989.

* Changed some "^^^" to "----"

* Changed "###" to "***"

Co-authored-by: jprestop <[email protected]>

* Update met_stats.cc

#2047 Removed the debug message

* Update met_stats.cc

Removing variable that was set but never used because SonarQube might complain about that, like Fortify does.

* Feature 2040 parse timing (#2048)

Co-authored-by: Julie Prestopnik <[email protected]>

* CI: Add logic to auto update input data (#2046)

* Bugfix 2045 develop hira (#2049)

Co-authored-by: jprestop <[email protected]>
Co-authored-by: Julie Prestopnik <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: Seth Linden <[email protected]>
Co-authored-by: j-opatz <[email protected]>
Co-authored-by: hsoh-u <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: George McCabe <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: MET Tools Test Account <[email protected]>
Co-authored-by: mo-mglover <[email protected]>
Co-authored-by: John Halley Gotway <[email protected]>
Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: davidalbo <[email protected]>
Co-authored-by: lisagoodrich <[email protected]>
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.

Implement Continuous Integration with GitHub Actions in MET
2 participants