Skip to content

Conversation

JohnHalleyGotway
Copy link
Collaborator

@JohnHalleyGotway JohnHalleyGotway commented Jul 23, 2025

Expected Differences

Two files are modified:

  • stat_job.cc has two changes:

    • Fixes the out_cnt_logic to out_wind_logic typo
    • Removes the check for only WDIR output. The aggr_mpr_wind_lines() function is called for WDIR, VCNT, and VL1L2 output line types. And -out_wind_logic should be reported for all. Rather than checking 3 possible output line types, just remove the check, since checking that out_fcst_wind_thresh or out_obs_wind_thresh is actually set is sufficient and much simpler. If the user has specified those wind thresholds, then we should report the logic being applied to them.
  • aggr_stat_line.cc adds back in the check for zero length vectors but only applies it when WDIR output is requested.

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

    If yes, please describe:

  • Do these changes modify the structure of existing or add new output data types (e.g. statistic line types or NetCDF variables)? [Yes or No]

    If yes, please describe:

Pull Request Testing

  • Describe testing already performed for these changes:

    • Compiled this branch in seneca:
cd /d1/projects/MET/MET_pull_requests/met-12.1.0/coordinated/MET-bugfix_3210_main_v12.1_WDIR
  • Ran this WDIR job using the current main_v12.1 branch:
/d1/projects/MET/MET_regression/main_v12.1/latest/bin/stat_analysis \
-lookin out/point_stat/point_stat_360000L_20070331_120000V_mpr.txt \
-job aggregate_stat -line_type MPR -out_line_type WDIR -interp_mthd NEAREST -vx_mask DTC165 -by VX_MASK

To produce this output where TOTAL = 934:

     COL_NAME: VX_MASK TOTAL      FBAR      OBAR       ME MAE
ROW_MEAN_WDIR: DTC165    934 261.49258 264.80429 NA        NA
    AGGR_WDIR: DTC165    934 269.22981 272.7173  -3.48749  NA
  • Re-ran using this bugfix branch:
bin/stat_analysis  \
-lookin out/point_stat/point_stat_360000L_20070331_120000V_mpr.txt \
-job aggregate_stat -line_type MPR -out_line_type WDIR -interp_mthd NEAREST -vx_mask DTC165 -by VX_MASK

To produce this output where TOTAL = 934 for AGGR_WDIR and TOTAL = 685 for ROW_MEAN_WDIR:

     COL_NAME: VX_MASK TOTAL      FBAR      OBAR       ME      MAE
ROW_MEAN_WDIR: DTC165    685 257.69798 264.80429 -1.75316 47.69439
    AGGR_WDIR: DTC165    934 269.22981 272.7173  -3.48749 NA
  • Ran this job to confirm that when WDIR output is NOT requested, all pairs are used (e.g. TOTAL = 934).
bin/stat_analysis  -lookin out/point_stat/point_stat_360000L_20070331_120000V_mpr.txt -job aggregate_stat -line_type MPR -out_line_type VCNT,VL1L2 -interp_mthd NEAREST -vx_mask DTC165 -by VX_MASK
  • Finally, ran this job to confirm that the filtering options do work:
bin/stat_analysis \
-lookin out/point_stat/point_stat_360000L_20070331_120000V_mpr.txt \
-job aggregate_stat -line_type MPR -out_line_type WDIR -interp_mthd NEAREST -vx_mask DTC165 -by VX_MASK \
-out_wind_thresh gt0 -out_wind_logic INTERSECTION

To produce this output where TOTAL = 685 for both.

     COL_NAME: VX_MASK TOTAL      FBAR      OBAR       ME      MAE
ROW_MEAN_WDIR: DTC165    685 257.69798 264.80429 -1.75316 47.69439
    AGGR_WDIR: DTC165    685 268.23214 272.7173  -4.48516 NA
  • Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:

    Review code changes. Review my small doc update. Run any additional tests you'd like.

  • Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [Yes]
    Yes, I added more detail in the STAT-Analysis WDIR section.

  • Do these changes include sufficient testing updates? [Yes]
    Yes, added one new STAT-Analysis job to an existing config file to compute WDIR on all inputs... immediately before computing it only on the non-zero ones.

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

    If yes, describe the new output and/or changes to the existing output:

    The modified STAT-Analysis output will be flagged as a difference.

  • Will this PR result in changes to existing METplus Use Cases? [No]

    If yes, create a new Update Truth METplus issue to describe them.

  • Do these changes introduce new SonarQube findings? [No]

    If yes, please describe:
    One code smell is flagged in "New Code" but the overall number of code smells for main_v12.1 remain unchanged at 15,585.

  • Please complete this pull request review by [Thurs 7/24].

Pull Request Checklist

See the METplus Workflow for details.

  • Review the source issue metadata (required labels, projects, and milestone).
  • 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) and Development issue
    Select: Milestone as the version that will include these changes
    Select: METplus-X.Y Support project for bugfix releases or MET-X.Y Development project for the next coordinated release
  • After submitting the PR, select the ⚙️ icon in the Development section of the right hand sidebar. Search for the issue that this PR will close and select it, if it is not already selected.
  • 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.

…alysis aggregates MPR lines to compute WDIR output. In main_v11.0, that job automatically removes 0 vectors when computing ROW_MEAN_WDIR output.
@JohnHalleyGotway JohnHalleyGotway marked this pull request as ready for review July 23, 2025 20:53
This was referenced Jul 23, 2025
Copy link

@michelleharrold michelleharrold left a comment

Choose a reason for hiding this comment

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

I reviewed the code changes and documentation. I also went through the run commands on seneca. Looks good to me!

@JohnHalleyGotway
Copy link
Collaborator Author

@michelleharrold, FYI, one more piece of good news, I did do a small comparison between the WDIR and VCNT output statistics and found them to be consistent:

  1. Created WDIR output using MPR inputs, excluding any 0 vectors:
bin/stat_analysis  -lookin out/point_stat/point_stat_360000L_20070331_120000V_mpr.txt -job aggregate_stat -line_type MPR -interp_mthd NEAREST -vx_mask DTC165 -by VX_MASK -out_wind_thresh gt0 -out_wind_logic INTERSECTION -out_line_type WDIR

To get:

     COL_NAME: VX_MASK TOTAL      FBAR      OBAR       ME      MAE
ROW_MEAN_WDIR: DTC165    685 257.69798 264.80429 -1.75316 47.69439
    AGGR_WDIR: DTC165    685 268.23214 272.7173  -4.48516 NA
  1. Created VCNT output using MPR inputs, excluding any 0 vectors:
bin/stat_analysis  -lookin out/point_stat/point_stat_360000L_20070331_120000V_mpr.txt -job aggregate_stat -line_type MPR -interp_mthd NEAREST -vx_mask DTC165 -by VX_MASK -out_wind_thresh gt0 -out_wind_logic INTERSECTION -out_line_type VCNT

To get:

TOTAL_DIR DIR_ME   ... DIR_MAE
685       -1.75316 ... 47.69439

Note that the ME values of -1.75316 and MAE values of 47.69439 match in the ROW_MEAN_WDIR and VCNT outputs, which serves as a good sanity check.

…ince the local v_info object was declared outside the loop, when d_diff is bad data, the values from the previous iteration were being using. This cause the TOTAL_DIR value to be reported as the TOTAL value and not properly skip over the zero length vectors as it should... and as Point-Stat does.
@JohnHalleyGotway
Copy link
Collaborator Author

@michelleharrold I need to request a re-review of this PR after finding/fixing one additional bug in the aggregation of MPR inputs and writing VCNT outputs. I found that aggregating MPR inputs DID NOT produce the exact same VCNT output that is computed by Point-Stat. This problem is fixed by this commit. Note that I did add this detail to the #3210 issue:

3. When aggregating vector MPR inputs and writing VCNT outputs, the counts in the TOTAL_DIR column do not match the output from Point-Stat. Instead, TOTAL_DIR = TOTAL when it should be that TOTAL_DIR = TOTAL minus the number pairs containing zero length vectors.

There is logic to check that the direction difference (d_diff variable) is valid, and only set it the partial sums if that's the case. BUT the problem is that when it's bad data, the code DOES NOT reset the v_info values... so the values from the previous loop iteration are used when d_diff is bad data.

The fix is just moving the declaration of v_info inside of the loop. That way, it's reinitialized to default, empty values each iteration rather than needing to worry about values from previous iterations affecting the current one.

@JohnHalleyGotway JohnHalleyGotway merged commit 689dc05 into main_v12.1 Jul 24, 2025
38 of 40 checks passed
@github-project-automation github-project-automation bot moved this from 🔎 In review to 🏁 Done in METplus-6.1 Development Jul 24, 2025
JohnHalleyGotway added a commit that referenced this pull request Jul 24, 2025
* Bugfix #3165 main v12.1 intel compilation (#3167)

* Per #3165, correct two poorly formed OpenMP pragma statements.

* Per #3165, add missing array include to ensemble_stat, point_stat, and plot_point_obs that's appearently needed when compiling with the Intel OneAPI compilers and with the --disable-opemp configuration option.

* Per #3165, move 'using namespace std' after the includes in the all the test code and enum_parser.yy to avoid Intel OneAPI compilation warnings about it being implicitly defined.

* Per #3165, only compile the kdtree test programs when ENABLE_UGRID is true.

* Per #3165, only compile the kdtree test programs when ENABLE_UGRID is true.

* Per #3165, move 'using namespace std' after the includes in the all the test code.

* Per #3165, add DISABLE_OPENMP option to compilation script

* Per #3165, updating beta2 reference to rc1

* Per #3165, fix typo in internal/test_util/libcode/vx_grid/Makefile.am

* Per #3165, removing typo in acorn config file

* Per #3165, Test whether disabling custom reductions from the vx_series_data library enables MET to compile on WCOSS2 with Intel classic compilers.

---------

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

* Hotfix to main_v12.1 to update the rc1 release note contents and date.

* Updating versions for atlas and eckit

* per #3175, replace bits/stdc++.h include that is GCC-specific with regex which works with other compilers (#3177)

* Per #3179, update the logic to not search the parent when parsing file_type from climatology dictionaries. (#3180)

* Bugfix #3179 main_v12.1 climo_file_type TAKE 2 (#3182)

* Per #3179, update the logic to not search the parent when parsing file_type from climatology dictionaries.

* Per #3179, modify the climo_name file_type logic to parse it from the top-level climo dictionary rather than parsing it separately for each field array entry.

---------

Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>

* Update install_met_env.wcoss2

Removing "-rc1"

* Bugfix #3164 main_v12.1 slice range (#3184)

* #3164 The range selection is inclusive like GRIB (the upper offset was not included before)

* #3164 CHnaged warning to error for bad offset for Z

* #3164 Changed index offsets to value notations

* #3164 Support @level1-@lavel2

---------

Co-authored-by: Howard Soh <hsoh@seneca.rap.ucar.edu>

* Per dtcenter/METbaseimage#32, hotfix to the MET main_v12.1 branch to make the docker build enviornment more portable.

* Adding modulefile for new machine ursa

* Adding config file for new machine ursa

* Feature dtcenter/METbaseimage#32 main_v12.1 release docker (#3195)

* Per dtcenter/METbaseimage#32, port over changes from main_v12.0 to main_v12.1, but update the schedule to rebuild images weekly rather than daily.

* Better comment

* Feature #3198 main_v12.1 scan_for_CVEs (#3201)

* Per #3198, port over CVE scanning logic from METbaseimage to MET.

* Per #3198, use SOURCE_BRANCH instead of GITHUB_NAME for the scan_docker_image.sh script.

* Fix typo

* Update CVE log message

* Per #3198, update the versions listed in the release-docker-images.yml workflow for the develop branch.

* Bugfix #3206 main_v12.1 AW_MEAN (#3207)

* Unrelated to #3206, increase the METbaseimage version number from v3.4 to v3.4.1 so that the resulting Docker images contain 0 critical vulnerabilities.

* Per #3206, update met_regrid_area_weighted() function to fix bug when OMP_NUM_THREADS is set very large. Need to use a reduction for vectors of doubles to prevent two threads from updating the same to_data value at the same time.

* Per #3206, add comment.

* Bugfix #3210 main_v12.1 WDIR (#3211)

* Fix jobstring to write -out_wind_logic correctly instead of reporting the value for cnt_logic instead.

* Restore logic in aggr_mpr_wind_lines() removed for #2395 when STAT-Analysis aggregates MPR lines to compute WDIR output. In main_v11.0, that job automatically removes 0 vectors when computing ROW_MEAN_WDIR output.

* Per #3210, update the revision history

* Per #3210, update the WDIR documentation

* Per #3210, add one more WDIR job to STAT-Analysis using all inputs, not just the non-zero MPR vectors.

* Unrelated to #3210, but noted by @CPKalb, note that MET can read raw WRF output.

* Per #3210, solve one additional bug in the MPR -> VCNT aggregation. Since the local v_info object was declared outside the loop, when d_diff is bad data, the values from the previous iteration were being using. This cause the TOTAL_DIR value to be reported as the TOTAL value and not properly skip over the zero length vectors as it should... and as Point-Stat does.

---------

Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>

---------

Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>
Co-authored-by: Howard Soh <hsoh@ucar.edu>
Co-authored-by: Howard Soh <hsoh@seneca.rap.ucar.edu>
JohnHalleyGotway added a commit that referenced this pull request Aug 12, 2025
* Bugfix #3165 main v12.1 intel compilation (#3167)

* Per #3165, correct two poorly formed OpenMP pragma statements.

* Per #3165, add missing array include to ensemble_stat, point_stat, and plot_point_obs that's appearently needed when compiling with the Intel OneAPI compilers and with the --disable-opemp configuration option.

* Per #3165, move 'using namespace std' after the includes in the all the test code and enum_parser.yy to avoid Intel OneAPI compilation warnings about it being implicitly defined.

* Per #3165, only compile the kdtree test programs when ENABLE_UGRID is true.

* Per #3165, only compile the kdtree test programs when ENABLE_UGRID is true.

* Per #3165, move 'using namespace std' after the includes in the all the test code.

* Per #3165, add DISABLE_OPENMP option to compilation script

* Per #3165, updating beta2 reference to rc1

* Per #3165, fix typo in internal/test_util/libcode/vx_grid/Makefile.am

* Per #3165, removing typo in acorn config file

* Per #3165, Test whether disabling custom reductions from the vx_series_data library enables MET to compile on WCOSS2 with Intel classic compilers.

---------

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

* Hotfix to main_v12.1 to update the rc1 release note contents and date.

* Updating versions for atlas and eckit

* per #3175, replace bits/stdc++.h include that is GCC-specific with regex which works with other compilers (#3177)

* Per #3179, update the logic to not search the parent when parsing file_type from climatology dictionaries. (#3180)

* Bugfix #3179 main_v12.1 climo_file_type TAKE 2 (#3182)

* Per #3179, update the logic to not search the parent when parsing file_type from climatology dictionaries.

* Per #3179, modify the climo_name file_type logic to parse it from the top-level climo dictionary rather than parsing it separately for each field array entry.

---------

Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>

* Update install_met_env.wcoss2

Removing "-rc1"

* Bugfix #3164 main_v12.1 slice range (#3184)

* #3164 The range selection is inclusive like GRIB (the upper offset was not included before)

* #3164 CHnaged warning to error for bad offset for Z

* #3164 Changed index offsets to value notations

* #3164 Support @level1-@lavel2

---------

Co-authored-by: Howard Soh <hsoh@seneca.rap.ucar.edu>

* Per dtcenter/METbaseimage#32, hotfix to the MET main_v12.1 branch to make the docker build enviornment more portable.

* Adding modulefile for new machine ursa

* Adding config file for new machine ursa

* Feature dtcenter/METbaseimage#32 main_v12.1 release docker (#3195)

* Per dtcenter/METbaseimage#32, port over changes from main_v12.0 to main_v12.1, but update the schedule to rebuild images weekly rather than daily.

* Better comment

* Feature #3198 main_v12.1 scan_for_CVEs (#3201)

* Per #3198, port over CVE scanning logic from METbaseimage to MET.

* Per #3198, use SOURCE_BRANCH instead of GITHUB_NAME for the scan_docker_image.sh script.

* Fix typo

* Update CVE log message

* Per #3198, update the versions listed in the release-docker-images.yml workflow for the develop branch.

* Bugfix #3206 main_v12.1 AW_MEAN (#3207)

* Unrelated to #3206, increase the METbaseimage version number from v3.4 to v3.4.1 so that the resulting Docker images contain 0 critical vulnerabilities.

* Per #3206, update met_regrid_area_weighted() function to fix bug when OMP_NUM_THREADS is set very large. Need to use a reduction for vectors of doubles to prevent two threads from updating the same to_data value at the same time.

* Per #3206, add comment.

* Bugfix #3210 main_v12.1 WDIR (#3211)

* Fix jobstring to write -out_wind_logic correctly instead of reporting the value for cnt_logic instead.

* Restore logic in aggr_mpr_wind_lines() removed for #2395 when STAT-Analysis aggregates MPR lines to compute WDIR output. In main_v11.0, that job automatically removes 0 vectors when computing ROW_MEAN_WDIR output.

* Per #3210, update the revision history

* Per #3210, update the WDIR documentation

* Per #3210, add one more WDIR job to STAT-Analysis using all inputs, not just the non-zero MPR vectors.

* Unrelated to #3210, but noted by @CPKalb, note that MET can read raw WRF output.

* Per #3210, solve one additional bug in the MPR -> VCNT aggregation. Since the local v_info object was declared outside the loop, when d_diff is bad data, the values from the previous iteration were being using. This cause the TOTAL_DIR value to be reported as the TOTAL value and not properly skip over the zero length vectors as it should... and as Point-Stat does.

---------

Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>

* Feature #3191 v12.1.0 (#3217)

* Per #3191, update GitHub actions logic prior to the MET-12.1.0 release to use consistent indentation, switch to using , update scan_docker_image.sh to fail on critical CVEs, update the cve scanning function to print a summary, and update the versions of MET to be rebuilt on schedule.

* Per #3191, update the METbaseimage version from 'v3.4.1' to '3.4-latest' to enable security updates in METbaseimage to be incorparated into future rebuilds of the MET image.

* Per #3191, consolidate MET-12.1.0 release notes.

* Per #3191, more updates to docs for the 12.1.0 release.

* Per #3191, add back in the MET-12.0.Z release notes since we only remove old release notes when we increase the major version number.

* Per #3191, refine GHA job logic and log formatting.

* Per #3191, switch to using ENV a=b instead of deprecated ENV a b

* In installation.rst change python 3.10 to 3.12

* change release date

---------

Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

---------

Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>
Co-authored-by: Howard Soh <hsoh@ucar.edu>
Co-authored-by: Howard Soh <hsoh@seneca.rap.ucar.edu>
Co-authored-by: metplus-bot <97135045+metplus-bot@users.noreply.github.com>
JohnHalleyGotway added a commit that referenced this pull request Aug 28, 2025
* Bugfix #3165 main v12.1 intel compilation (#3167)

* Per #3165, correct two poorly formed OpenMP pragma statements.

* Per #3165, add missing array include to ensemble_stat, point_stat, and plot_point_obs that's appearently needed when compiling with the Intel OneAPI compilers and with the --disable-opemp configuration option.

* Per #3165, move 'using namespace std' after the includes in the all the test code and enum_parser.yy to avoid Intel OneAPI compilation warnings about it being implicitly defined.

* Per #3165, only compile the kdtree test programs when ENABLE_UGRID is true.

* Per #3165, only compile the kdtree test programs when ENABLE_UGRID is true.

* Per #3165, move 'using namespace std' after the includes in the all the test code.

* Per #3165, add DISABLE_OPENMP option to compilation script

* Per #3165, updating beta2 reference to rc1

* Per #3165, fix typo in internal/test_util/libcode/vx_grid/Makefile.am

* Per #3165, removing typo in acorn config file

* Per #3165, Test whether disabling custom reductions from the vx_series_data library enables MET to compile on WCOSS2 with Intel classic compilers.

---------

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

* Hotfix to main_v12.1 to update the rc1 release note contents and date.

* Updating versions for atlas and eckit

* per #3175, replace bits/stdc++.h include that is GCC-specific with regex which works with other compilers (#3177)

* Per #3179, update the logic to not search the parent when parsing file_type from climatology dictionaries. (#3180)

* Bugfix #3179 main_v12.1 climo_file_type TAKE 2 (#3182)

* Per #3179, update the logic to not search the parent when parsing file_type from climatology dictionaries.

* Per #3179, modify the climo_name file_type logic to parse it from the top-level climo dictionary rather than parsing it separately for each field array entry.

---------

Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>

* Update install_met_env.wcoss2

Removing "-rc1"

* Bugfix #3164 main_v12.1 slice range (#3184)

* #3164 The range selection is inclusive like GRIB (the upper offset was not included before)

* #3164 CHnaged warning to error for bad offset for Z

* #3164 Changed index offsets to value notations

* #3164 Support @level1-@lavel2

---------

Co-authored-by: Howard Soh <hsoh@seneca.rap.ucar.edu>

* Per dtcenter/METbaseimage#32, hotfix to the MET main_v12.1 branch to make the docker build enviornment more portable.

* Adding modulefile for new machine ursa

* Adding config file for new machine ursa

* Feature dtcenter/METbaseimage#32 main_v12.1 release docker (#3195)

* Per dtcenter/METbaseimage#32, port over changes from main_v12.0 to main_v12.1, but update the schedule to rebuild images weekly rather than daily.

* Better comment

* Feature #3198 main_v12.1 scan_for_CVEs (#3201)

* Per #3198, port over CVE scanning logic from METbaseimage to MET.

* Per #3198, use SOURCE_BRANCH instead of GITHUB_NAME for the scan_docker_image.sh script.

* Fix typo

* Update CVE log message

* Per #3198, update the versions listed in the release-docker-images.yml workflow for the develop branch.

* Bugfix #3206 main_v12.1 AW_MEAN (#3207)

* Unrelated to #3206, increase the METbaseimage version number from v3.4 to v3.4.1 so that the resulting Docker images contain 0 critical vulnerabilities.

* Per #3206, update met_regrid_area_weighted() function to fix bug when OMP_NUM_THREADS is set very large. Need to use a reduction for vectors of doubles to prevent two threads from updating the same to_data value at the same time.

* Per #3206, add comment.

* Bugfix #3210 main_v12.1 WDIR (#3211)

* Fix jobstring to write -out_wind_logic correctly instead of reporting the value for cnt_logic instead.

* Restore logic in aggr_mpr_wind_lines() removed for #2395 when STAT-Analysis aggregates MPR lines to compute WDIR output. In main_v11.0, that job automatically removes 0 vectors when computing ROW_MEAN_WDIR output.

* Per #3210, update the revision history

* Per #3210, update the WDIR documentation

* Per #3210, add one more WDIR job to STAT-Analysis using all inputs, not just the non-zero MPR vectors.

* Unrelated to #3210, but noted by @CPKalb, note that MET can read raw WRF output.

* Per #3210, solve one additional bug in the MPR -> VCNT aggregation. Since the local v_info object was declared outside the loop, when d_diff is bad data, the values from the previous iteration were being using. This cause the TOTAL_DIR value to be reported as the TOTAL value and not properly skip over the zero length vectors as it should... and as Point-Stat does.

---------

Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>

* Feature #3191 v12.1.0 (#3217)

* Per #3191, update GitHub actions logic prior to the MET-12.1.0 release to use consistent indentation, switch to using , update scan_docker_image.sh to fail on critical CVEs, update the cve scanning function to print a summary, and update the versions of MET to be rebuilt on schedule.

* Per #3191, update the METbaseimage version from 'v3.4.1' to '3.4-latest' to enable security updates in METbaseimage to be incorparated into future rebuilds of the MET image.

* Per #3191, consolidate MET-12.1.0 release notes.

* Per #3191, more updates to docs for the 12.1.0 release.

* Per #3191, add back in the MET-12.0.Z release notes since we only remove old release notes when we increase the major version number.

* Per #3191, refine GHA job logic and log formatting.

* Per #3191, switch to using ENV a=b instead of deprecated ENV a b

* In installation.rst change python 3.10 to 3.12

* change release date

---------

Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Bugfix #3219 main_v12.1 python (#3220)

* Per #3219, add GlobalPython:set_args() function to store the Python path prior to calling Py_InitializeFromConfig() and then restore the Python path afterwards. For Python 3.10, the call to Py_InitializeFromConfig() resets the Python path while in Python 3.12 it does not.

* Per #3219, update logic to eliminate duplicated log messages.

* Hotfix to `release-docker-images.yml` to disable fail-fast.

* Per #3228, updates for the METv12.1.1 bugfix release, including release notes, doc version, code version, and the release docker images workflow. (#3229)

Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>

---------

Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>
Co-authored-by: Howard Soh <hsoh@ucar.edu>
Co-authored-by: Howard Soh <hsoh@seneca.rap.ucar.edu>
Co-authored-by: metplus-bot <97135045+metplus-bot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: 🏁 Done
Development

Successfully merging this pull request may close these issues.

Bugfix: Fix STAT-Analysis handling of zero-length vectors when aggregating MPR inputs and writing WDIR or VCNT outputs
2 participants