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

Enhance Stat-Analysis to write the GO Index and CBS Index into a new SSIDX STAT line type. #1788

Closed
23 tasks done
JohnHalleyGotway opened this issue May 11, 2021 · 6 comments · Fixed by #1892
Closed
23 tasks done
Assignees
Labels
MET: Library Code requestor: DTC/AF V&V Air Force Verification and Validation Project required: FOR DEVELOPMENT RELEASE Required to be completed in the development release for the assigned project type: enhancement Improve something that it is currently doing
Milestone

Comments

@JohnHalleyGotway
Copy link
Collaborator

JohnHalleyGotway commented May 11, 2021

Describe the Enhancement

This enhancement is recommended for the DTCenter Air Force LIS project. The Stat-Analysis tool supports the skill score index and GO index job types. The GO Index is just a special version of the skill score index job. As of MET version 10.0.0, Stat-Analysis simply prints the output for this job to the screen or to an output file. This task is to create a new .stat line type to store the relevant output.

Still need to decide exactly what columns should be written to this new line type. Could be as little as the final score, or as complex, as the individual scores/weights for each component. So this may end up being a fixed number of columns or variable length and based on the number of user-defined components in the configurable Skill Score index.

Be sure to define related issues for METdatadb and METviewer, as noted below.

Time Estimate

3 days.

Sub-Issues

Consider breaking the enhancement down into sub-issues.
No sub-issues, but this work will also satisfy a related GitHub issue: #1031

Relevant Deadlines

October 2021

Funding Source

2712221

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required: John HG
  • Select scientist(s) or no scientist required: Michelle and/or Tara

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Review projects and select relevant Repository and Organization ones or add "alert:NEED PROJECT ASSIGNMENT" label
  • Select milestone to next major version milestone or "Future Versions"

Define Related Issue(s)

Consider the impact to the other METplus components.

Enhancement Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s), Project(s), Milestone, and Linked issues
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@JohnHalleyGotway JohnHalleyGotway added type: enhancement Improve something that it is currently doing component: library code priority: medium Medium Priority alert: NEED MORE DEFINITION Not yet actionable, additional definition required alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle requestor: DTC/AF V&V Air Force Verification and Validation Project labels May 11, 2021
@JohnHalleyGotway JohnHalleyGotway added this to the MET 10.1.0 milestone May 11, 2021
@JohnHalleyGotway JohnHalleyGotway changed the title Enhance Stat-Analysis to write the GO Index and CBS Score into a new .stat line type. Enhance Stat-Analysis to write the GO Index and CBS Score into a new STAT line type. May 11, 2021
@TaraJensen TaraJensen added priority: high and removed priority: medium Medium Priority labels May 12, 2021
@TaraJensen TaraJensen added this to To do in MET-10.1.0-beta1 (6/13/21) via automation May 12, 2021
@TaraJensen TaraJensen added required: FOR DEVELOPMENT RELEASE Required to be completed in the development release for the assigned project and removed alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle labels May 17, 2021
@JohnHalleyGotway JohnHalleyGotway self-assigned this May 20, 2021
@JohnHalleyGotway
Copy link
Collaborator Author

John HG and Michelle discussed this over G-Chat on 5/26/21. Here are some takeaways:

  • Stat-Analysis currently supports -job go_index which is defined by STATAnalysisConfig_GO_Index.
  • Consider defining STATAnalysisConfig_WMO_Index to define the WMO Index (i.e. CBS score) components.
  • Also add -job wmo_index as a shortcut for using that config file.
  • Enhance STAT-Analysis to write a new line type (maybe SSINDEX or SSIDX?) to store the output of -job go_index, wmo_index, and ss_index.
    • Could set DESC = GO_INDEX, WMO_INDEX, or SS_INDEX
  • This is computed once for each model initialization and the skill scores are computed relative to a reference model. The AF often defines their reference using a persistence forecast. Need to determine if that functionality needs to be supported. If so, it could be done via METplus wrappers.
  • Question: How can/should a CI be computed for WMO_INDEX? Would it be computed for a single initialization or not? Where would CI's be computed, MET or METviewer?
  • Question: How much detail should the new line type contain? Just the final score or the definition of and skill score for each component?
    • That'd be a lot of "data" columns with strings. How would that be loaded by METdatadb and plotted by METviewer?
    • Recommend asking for input from UK MetOffice.

@JohnHalleyGotway JohnHalleyGotway added this to To do in MET-10.1.0-beta2 (9/01/21) via automation Jun 11, 2021
JohnHalleyGotway added a commit that referenced this issue Jul 16, 2021
…e. This is currently just a copy of the GO Index.
JohnHalleyGotway added a commit that referenced this issue Jul 19, 2021
…that line type replace the job_ss_columns and job_go_columns arrays.
@JohnHalleyGotway
Copy link
Collaborator Author

@michelleharrold question for you. In MET version 10.0.0, using the "-by" job command option in Stat-Analysis for the go_index and ss_index job types produces the following warning message:

WARNING: The -by option is ignored for the "go_index" job type.

While I'm working on this logic, should I attempt to make "-by" work here? For example, that'd enable you to compute the GO Index or CBS Score for multiple masking regions and model initializations in a single job:

-by VX_MASK,FCST_INIT_BEG

Would that functionality be useful the DTC AF projects?

@michelleharrold
Copy link

@JohnHalleyGotway -- if adding the -by functionality is not a huge lift, that would be useful for DTC AF projects. Thanks!

@JohnHalleyGotway
Copy link
Collaborator Author

While meeting with the UK Met Office, they clarified that we should call this the "CBS Index" rather than the "CBS Score". I'm relieved to hear this recommendation because this name is much more consistent with the existing -job go_index and -job ss_index options. @michelleharrold can I add support for -job cbs_index instead of -job cbs_score?

JohnHalleyGotway added a commit that referenced this issue Aug 26, 2021
JohnHalleyGotway added a commit that referenced this issue Aug 26, 2021
JohnHalleyGotway added a commit that referenced this issue Aug 27, 2021
JohnHalleyGotway added a commit that referenced this issue Aug 27, 2021
@JohnHalleyGotway JohnHalleyGotway linked a pull request Aug 27, 2021 that will close this issue
12 tasks
JohnHalleyGotway added a commit that referenced this issue Aug 27, 2021
…t the line_type seperately for each term, if requested.
JohnHalleyGotway added a commit that referenced this issue Aug 27, 2021
…t. For each input STATLine, instead of checking all the index terms, stop searching after the first match. This assumes that each input line should be used for only one of the terms... and I think that's a pretty reasonable assumption.
@JohnHalleyGotway JohnHalleyGotway removed the alert: NEED MORE DEFINITION Not yet actionable, additional definition required label Aug 27, 2021
JohnHalleyGotway added a commit that referenced this issue Aug 30, 2021
JohnHalleyGotway added a commit that referenced this issue Aug 30, 2021
…ting when computing the skill score index. Also update the Stat-Analysis chapter of the User's Guide.
JohnHalleyGotway added a commit that referenced this issue Aug 30, 2021
* Per #1788, add initial definition of the SSIDX line type.

* Per #1788, add a STAT-Analysis config file for computing the CBS Score. This is currently just a copy of the GO Index.

* Per #1788, add hooks for computing -job cbs_score.

* Per #1788, since we're adding a new SSIDX line type, the columns for that line type replace the job_ss_columns and job_go_columns arrays.

* Per #1788, rename cbs_score to cbs_index per UK Met Office instruction on 7/22/21. This convention is also consistent with the existing go_index and ss_index jobs.

* Per #1788 rename STATAnalysisConfig_CBS_Score to STATAnalysisConfig_CBS_Index

* Per #1788, update Makefile to handle name change.

* Per #1788, add support for SSIDX stat line type.

* Per #1788, define 4 output SSIDX columns.

* Per #1788, define an SSIndexInfo struct for stashing/writing SS Index values.

* Per #1788, write the SSIDX columns. However we don't need to function to write the whole row since it's only written by Stat-Analysis.

* Per #1788, create an AggrSSIndexInfo struct to keep track of unique stat header column input values.

* Per #1788, update the stat-analysis job code to make use of the new structs.

* Per #1788 fix typo.

* Per #1788, remove GO Index defintion from the code comments. That detail belongs elsewhere.

* Per #1788, since coding up the GO Index several CNT and CTC columns have been added. Adding them here to let them be included as part of the Skill Score index computations.

* Per #1788, update check_hdr_str() to print the name of the problematic header columns.

* Per #1788, add a set(one) member function to multiple array classes. This calls clear or erase on the array prior to adding a single element. Add this for StringArray, NumArray, and ThreshArray, and CRCArray.

* Per #1788, update the compute_ss_index() function in stat_analysis to make the code more concise by calling the newly adding singular set functions for arrays.

* Per #1788, add FCST_MODEL and REF_MODEL output columns to the SSIDX line type.

* Per #1788, add a new N_INIT column to the SSIDX line type to report the number of initialization times represented by this skill score. Also define the SSIDXData struct to store the skill score index job output.

* Per #1788, update STATAnalysisJob to explicitly set the job type directly rather than parsing a string.

* Per #1788, major change here adding skill_score_index_job.h/.cc to handle the computation of the skill score indices.

* Per #1788, update stat_analysis source code to make use of the new classes in skill_score_index_job.h/.cc.

* Per #1788, write a log message listing the model initialization times over which the skill score index is computed.

* Per #1788, tweak log message.

* Per #1788, compute n_term as the max lenght of the required arrays.

* Per #1788, drop in the ACTUAL definition of the GO index provide by the DTC AF project team. Also simplify the existing arrays down to lenght one if the value remains constant.

* Per #1788, correct CBS Index config file. Some parameters had 40 elements while others only had 32.

* Per #1788, do not write SSIDX output if there are no valid terms found.

* Per #1788, format the values in the skill score index log messages, replacing -9999 with NA.

* Per #1788, update the get_stat() member functions. For 0 pairs, return bad data for all statistics other than TOTAL.

* Per #1788, working on readability of the warning and error messages.

* Per #1788, define the ss_index_name directly in the STATAnalysis config file to make it really easy to modify.

* Per #1788, store the ss_index_name configuration option in the StatJob class. Also support a command line -ss_index_name option to override the config file value.

* Per #1788, change from name to ss_index_name variable to be a bit more descriptive in the variable names.

* Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.

* Per #1788, simply the skill score index job handling logic a bit. We only need to update the default job once, not twice.:

* Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument."

This reverts commit cde0be0.

* Revert "Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.""

This reverts commit bbfd838.

* Per #1788, I'd pruned too much code from stat_analysis.cc which caused the processing of config file jobs to fail. Fixing that here.

* Per #1788, switch Z0 to L0 to match the sample data for computing CBS Index.

* Per #1788, make it so that cbs_index and go_index work from config file.

* Per #1788, update the documentation for the skill score index changes.

* Per #1788, just move some variable definitions further down since they're only used sometimes.

* Per #1788, make job output description into a numbered section.

* Per #1788, little tweak.

* Per #1788, update the STATAnalysisConfig files to add ss_index_name and hss_ec_value, as needed.

* Per #1788, add new unit tests to exercise recent ss_index changes and update the Stat-Analysis documentation.

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Update met/docs/Users_Guide/stat-analysis.rst

Sorry for the typos! Thanks for catching them.

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

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Per #1788, fix typo in error message.

* Per #1788, fix a bug for ss_index... changing 'add' to 'set'. Also set the line_type seperately for each term, if requested.

* Per #1788, tweak the ss_index logic slightly to make it more efficient. For each input STATLine, instead of checking all the index terms, stop searching after the first match. This assumes that each input line should be used for only one of the terms... and I think that's a pretty reasonable assumption.

* Per #1788, minor tweaks to the STAT-Analysis docs.

* Per #1788, add ss_index_vld_thresh option to existing STAT-Analysis config files.

* Per #1788, add StatAnalysisJob ss_index_vld_thresh entry and parse it from the STAT-Analysis config file.

* Per #1788, update stat_analysis code to check ss_index_vld_thresh setting when computing the skill score index. Also update the Stat-Analysis chapter of the User's Guide.

* Per #1788, tweak one test to exercise a non-default ss_index_vld_thresh value.

Co-authored-by: jprestop <jpresto@ucar.edu>
MET-10.1.0-beta2 (9/01/21) automation moved this from In progress to Done Aug 30, 2021
JohnHalleyGotway added a commit that referenced this issue Aug 31, 2021
* Update install_met_env.kiowa

Commented out items and added text to description

* #1817 Added to_north argument at two_to_one()

* #1817 Calls two_to_one() with false for the third argument, to_north, if latitude moves north to south

* Feature 1819 automation doc warnings (#1836)

* Removing "/lib" that should not be there.

* #1508 checking stat() methoid returns no error before looking at FILE flag

* Enable PDF creation

* Modify inputenc, fontenc latex_elements

* Fix typo in conf.py

* Replace unicode with ascii

* Replace unicode exponent with math mode

* Change eqnarray to align

* Replace gif images with png for PDF

* Fix png file names

* Escape underscore in variable name in math mode

* Escape underscore in variable name in math mode

* Remove underscores from variables in math mode

* Replace bar with overline in some equations

* Test derefencing underscores in tables

* Test math changes in grid stat

* Test math formatting

* Test math formatting

* #1838 Added log message for lat/lon values

* #1838 Give warning if the first and lat lat/lon is same

* #1838 Support the double data type variable on reading float type values

* Feature 1833 develop discussions (#1849)

* Per #1833, changed references to met_help to Discussions.

* Per #1833, fixed typo and removed an unnecessary word

* #1852 Removed unused nc_buf_size. Make cur and dim to the same size (called API handles 2D or 3D)

* #1852 Check the start and count before calling NetCDF API

* Feature 1746 wavelet stat (#1851)

* For issue #1746 modified code to allow users to pass in an empty list (or NA) for forecast and observation thresholds in order to skip applying the threhsolds, but it will still compute stats with the raw fields. SL

* For issue #1746, added new unit test that uses a config file that has empty lists for the forecast and observation thresholds. SL

* For issue #1746 Added some content related to allowing users to set forecast and observation cat thresholds to an empty list in order to skip the binary masking (and consider all grid-points for stats). SL

* Per #1746, cleaning up for consistent indentation.

* Per #1746, cleaning up for consistent indentation.

* Per #1746, add a revision history note, update the plotting range in the postscript output to be [-n,n] where n is the maximum value of the maximum absolute difference and 1.0, and also fix a bug. When the NA threshold comes AFTER a real threshold, the resulting data and difference values were not being updated.

* Per #1746, change the Wavelet-Stat config file values in the the wvlt_plot dictionary by setting plot_min = plot_max = 0.0. That enables the default logic of the tool to take effect. Choose the plotting range of the wavelet plots as [-n,n], where n is the maximum of 1.0 and the maximum absolute difference.

* Per #1746, used apply_fcst_thresh where it should have been apply_obs_thresh.

* Per issue #1746, modified some content related to users being able to skip applying the categorical threhsolds by putting an empty list or NA in the configuration file. SL

* Per issue #1746 Added some warnings if the forecast threshold is set to NA but the observation threshold is not NA (a numeric threshold) and vice versa. SL

* Per #1746, fix a couple of typos and tweak wording in the wavelet-stat chapter.

* Per #1746, loop over each pair of fcst/obs thresholds to check for inconsistent use of the NA threshold type.

* Per #1746, a bit of code cleanup replacing calls to n_elements() with n() to make the code more concise.

* Per #1746, need to reinitialize apply_fcst_thresh and apply_obs_thresh to true inside the loop since the NA threshold can appear anywhere in the list of thresholds.

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

* Add sphinx.ext.pngmath to conf.py

* Fix typo in conf.py

* Add sphinx.ext.mathjax to conf.py

* Add sphinx.ext.imgmath to conf.py

* Fix typo in conf.py

* Change math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Add sphinx.ext.imgmath to conf.py

* Modify math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Temporarily disable equations with errors

* Update README.md

* Modify math formatting in Appendix C

* Add usepackage{amssymb} to conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Fix warnings in wavelet-stat.rst

* Omit Indices and tables in PDF version of User Guide

* Modify math formatting in Appendix G

* Modify math formatting in Appendix E

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Change release date in conf.py

* #1852 get_string_val: check if 2D variable. Also checking if the variable does not have dimension (#1860)

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

* Feature 1453 create pdf user guide (#1859)

* Enable PDF creation

* Modify inputenc, fontenc latex_elements

* Fix typo in conf.py

* Replace unicode with ascii

* Replace unicode exponent with math mode

* Change eqnarray to align

* Replace gif images with png for PDF

* Fix png file names

* Escape underscore in variable name in math mode

* Escape underscore in variable name in math mode

* Remove underscores from variables in math mode

* Replace bar with overline in some equations

* Test derefencing underscores in tables

* Test math changes in grid stat

* Test math formatting

* Test math formatting

* Add sphinx.ext.pngmath to conf.py

* Fix typo in conf.py

* Add sphinx.ext.mathjax to conf.py

* Add sphinx.ext.imgmath to conf.py

* Fix typo in conf.py

* Change math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Add sphinx.ext.imgmath to conf.py

* Modify math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Temporarily disable equations with errors

* Modify math formatting in Appendix C

* Add usepackage{amssymb} to conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Fix warnings in wavelet-stat.rst

* Omit Indices and tables in PDF version of User Guide

* Modify math formatting in Appendix G

* Modify math formatting in Appendix E

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Change release date in conf.py

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

* Feature 1853 rps doc (#1861)

* Per #1853, adding RPS docs from Eric.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, adding a manual page break after the ROC image to get it to stay in the right spot.

* Per #1853, backing out last change which didn't make the ROC image stay in the right spot.

* #1855 Removed break after return (SobarQube)

* #1855 Removed break after exit

* 1855 Added return at MetNcPointObsOut::write_to_netcdf

* #1855 Avoid releasing memory twice

* #1855 Removed unused code

* #1855 Corrected syntax error

* #1855 Changed the second call of close() to release _ncFile

* #1855 Deleted break after exit

* #1855 Chamnged while to if

* #1855 Added constructor TCLineCounts and initialized the members

* #1855 Added break statement back for case '-'

* #1855 Check the new size before extending to avoid thereference of the  null pointer

* #1855 Changed count to processed_count for log messages. Initialized variables at get_filtered_nc_data\*()

* #1855 Corected the number of memory copy

* #1855 Exit with an error message if both fgi & bgi are null

* #1855 Clear Lead_Times before extening. Formatting for error messages

* Add definition for the compilation environment on seneca.

* #1855 Extend Lead_Times for new times

* #1855 Removed break after exit

* #1855 define "c" dynamically

* #1855 Move the log message within if statement to avoid dereferencing a null pointer

* Feature 1843 scatter index (#1863)

* Added scatter index variables: SI, SI_BCL, SI_BCU to cnt columns. SL

* Per issue #1843 Added Scatter Index variables (SI, SI_BCL, SI_BCU) to the CNT stat type. SL

* Added Scatter Index (SI, SI_BCL, SI_BCU) to cnt stat type header. SL

* Per issue #1843, added Scatter Index variables to write_cnt_cols(). SL

* Per issue #1843 added Scatter Index (si) to CNTinfo class. SL

* Per issue #1843 added Scatter Index (SI, si) to CNTInfo::get_stat(). SL

* Per issue #1843 added Scatter Index (SI, si) calculation to both versions of compute_cntinfo(). SL

* Per issue #1843, forgot semi-colon after SI calculation, fixed. SL

* Added Scatter Index (si) to some of the clear() and allocate() functions. SL

* Per issue #1843, added Scatter Index (si) to compute_cnt_mean(). SL

* Per issue #1843, added Scatter Index (si) to bootstrap interval calculation and to the CNT write function. SL

* Per issue #1843 added Scatter Index (SI, SI_BCL, SI_BCU) to store_stat_cnt(). SL

* Per issue #1843, in get_stat() moved Scatterd Index (SI) line to be below RMSE for consitency. SL

* Added Scatter Index (SI) to the CNT output format table. SL

* Added Scatter Index (SI) to CNT statistics definitions. SL

* Update appendixC.rst

* Update stat_columns.cc

* Update compute_ci.cc

* Update met_stats.cc

* Per #1843, update write_cntinfo() function. Since we're READING the SI value immediately after the RMSE value when computing CI's, we also need to write SI immediately after RMSE. Otherwise, we'll be computing CI's using the wrong statistics replicates.

* Per #1843, check for divide by zero when computing SI... this could happen if comparing the same input file to itself with Grid-Stat.

* Per #1843, correct definition of SI from RMSE/ME to RMSE/OBAR.

* Per #1843, updated the SI definition to divide by OBAR instead of ME, but forgot to update the divide-by-zero check.

Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: johnhg <johnhg@ucar.edu>

* #1855 Corected typo - compare the numnber of U and V

* #1855 Check if var_info is hull

* #1855 Avoid un-initialized variables: dt at open(), v at lat() & lon(), and local variables at data()

* #1855 Check if ldf is null pointer

* #1855 Removed break after exit

* #1855 Removed break after exit

* Update pcp_combine.cc

* Feature 1864 config urls (#1868)

* Per #1864, remove stale GitHub pages URL for the MET User's Guide.

* Per #1864, found stale GitHub IO links in the issue templates. Should make this same fix in the develop and default branches for all the METplus repos.

* Per #1864, fix stale GitHub IO link in the PR template.

* Move ROC curve in Appendix C

* Crop ROC image for better PDF formatting

* Shrink ROC image for better PDF formatting

* Modify figure alignment in conf.py

* Change text placement for ROC curve figure

* Feature 1834 faq (#1867)

* testing possible new drop-down menus for FAQ

* adding sphinx-panels to extensions to be able to use drop down menus in appendixA

* Per #1834, adding sphinx-panels to requirements.txt to see if that fixes the error

* Per #1834, added sphinx.ext to beginning of sphinx_panels to see if that fixes the error

* Per #1834, remove sphinx.ext and add trailing comma to end of extensions to see if that fixed the error

* Per #1834, added sphinx-panels to pip install command to see if that fixes the error

* Per #1834, added extra space in comment to get docs to build to see if change to documentation.yml will fix an error

* Per #1834, added return character to get rid of warning

* testing dropdown menus #1

* testing dropdown menus #2 removing lines and dotted lines

* testing #3

* testing 4

* fixing numbering, removing 2nd pulldown menu, trying to fix box width

* adding code block in dropdown

* trying to fix width

* trying to fix width with spacing

* trying to fix width with spacing 2nd dropdown

* removing panels

* solved problem, just use dropdown no panels

* adding second dropdown menu

* removing the dropdown menus and fixing the spacing.

* fixing typos

* adding in matched pairs

* adding in formating files for NetCDF and making FILE_IO a header

* fixing spacing

* time slice

* fixing spacing

* UNIX time conversion

* fixing spacing

* fixed-width

* scientific notation

* removing which per Julie P

* adding Gen_Vx_Mask section

* fixing formatting

* changing to numbers

* complex masking region

* neighborhood methods boundaries

* Neighborhood Methods to Compute Fraction

* adding Grid_Stat - How do I use Config File Setup to Read a NetCDF file

* using backticks with asterics

* one more backtick with asterics

* Grid_Stat - What would be an example of Verifying Probabilities

* fixing typos

* What is an example of using Grid-Stat with Regridding and Masking Turned On

* fixing typos

* Grid_Stat - What would be an example of Verifying Probabilities Example2

* trying to fix typos

* trying to fix code-block spacing

* Per #1834, attempting to fix warning.

* How do I use different masks in MET tools using MODE as an example

* trying to fix bullet list

* trying to fix bullet list 2

* trying to fix bullet list 2

* trying to fix bullet list 3

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, modified formatting, including adding backslashes and removing extra returns in command line calls, and adding indentation for config file notation, and adding a return after each 'A.'

* Per #1834, changed code-block from ini to none to fix formatting

* *Pcp-Combine - What are some examples using -add

* Pcp-Combine -  How do I add and subtract with Pcp-Combine

* Pcp-Combine - How do I Combine 12-hour Accumulated Precipitation from Two Different Initialization Times

* Pcp-Combine - How Do I Correct a Precipitation Time Range

* Pcp-Combine - What Data Formats does MET Read

* Pcp-Combine - How does pass through work

* Pcp_Combine - How do I use -pcprx to run a project faster

* Pcp-Combine - How Do I Enter the Time Format Correctly

* Pcp-Combine - How do I use -subtract

* fixing formatting

* Pcp_Combine - How Do I Use -sum, -add, and -subtract to Achieve Same Accumulation Interval

* Pcp-Combine - What is the difference between -sum vs. -add

* Pcp-Combine - How Do I Select a Specific GRIB Record to Use

* fixing spacing for original text

* Plot-Data-Plane - How Do I Inspect Gen_Vx_Mask Output

* fixing typo

* Plot-Data-Plane - How Do I Specify GRIB Version

* Plot-Data-Plane - last 2 entries

* 2 misc. entries

* fixing typo

* Stat_Analysis - How does -aggregate_stat work

* Stat_Analysis - remaining entries

* fixing typo

* tc-pairs

* tc-stat

* troubleshooting area

* another stat-analysis

* another stat-analysis

* utilities

* fixing dashes

* Per #1834, trying out syntax

* Per #1834, removing added syntax

* fixing returns with bolding

* Per #1834, modified formatting

* adding italics for directories #1834

* replacing code-block ini with none to remove red lettering

* fixing questions to lower case #1834

* linking to section using numref #1834

* linking to section using numref #1834 attempt 2

* linking to section using numref #1834 attempt 3

* linking to section using numref #1834 attempt 4

* linking to section using numref #1834 attempt 5

* linking to section using numref #1834 attempt 6

* linking to section using numref #1834 attempt 7

* linking to section using numref #1834 attempt 8

* linking to anothre section #1834

* linking to another section #1834

* removing old info #1834

* grammar updates #1834

* grammar updates #1834

* fixing typos #1834

* email changes with Julie #1834

* trying to fix warning #1834

* changes #1834

* Per #1834, updating question titles and answers

* Per #1834, made updates to the content.

* Per #1834, made updates to the content

* Per #1834, made updates to the content

* Per #1834, made some major changes to the first 3 FAQ's. I don't have the time/bandwidth to review these completely at this time, but wanted to include at least these updates.

* testing some of the updates John O. suggested.

* updates John O. suggested take 2 #1834.

* updates John O. suggested take 3 #1834.

* updates John O. suggested take 4 #1834.

* updates John O. suggested take 5 #1834.

* updates John O. suggested.  Some didn't show up even though they've been removed #1834.

* trying to fix numbered list indenting #1834

* fixing numbered list indenting #1834

* cleaning up formatting #1834

* fixing broken links #1834

Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>

* bugfix 1872 plot_tcmpr.R -lookin directory (develop) (#1874)

* Bugfix 1875 develop memory (#1877)

* Per #1875, fix set_cdf_ta() to initialize cdf_ta prior to populating it.

* Per #1875, add debug(4) log messages whenever defining a new aggregation case in stat-analysis.

* Per #1875, switch log messages about new cases from Debug(4) to Debug(3).

* Per #1879, porting the same changes over to the develop branch. (#1881)

* Feature 1673 gbeta (#1857)

* Per #1673, add a distance_map.beta_value entry to all the Grid-Stat config files.

* Per #1673, enhance Grid-Stat to parse the new beta_value option and set its value in the library code.

* Per #1673, set the user-defined beta_value when processing the distance map scores.

* Per #1673, add 4 new DMAP columns write them. Just writing bad data values right now, still need to actually compute them! Also need to update Stat-Analysis to update the parsing/aggregation of these new values.

* Per #1673, enable beta_value to be set to a default bad data value.

* Per #1673 and @ericgilleland instruction (#1673 (comment)), strip asymmetric G-Beta (AGBETA) from the output.

* Per #1673, fix typo that was causing the code not to compile.

* Per #1673, update MET User's Guide about G/GBETA.

* Per #1673, report BETA_VALUE = TOTAL / 2 in the output instead of NA, as directed by Eric.

* Per #1673, remove descriptions of Grid-Stat-specific config options for nbrhd, fourier, gradient, and distance_map from the overview section since they belong in the Grid-Stat chapter. Also add direct links for them in the Grid-Stat chapter.

* Per #1673, do not reset the beta_value in DMAP::clear().

* Per #1673, log the DMAP options only after the beta_value has been determined.

* Per #1673, correct the default beta_value setting as N*N / 2.0.

* Per #1673, trying to format G-beta well.

* Per #1673, trying to format G-beta well.

* Per #1673, beta is formatted as \beta and not \Beta in latex.

* Per #1673, beta is formatted as \beta and not \Beta in latex.

* Per #1673, switch to defining beta_value as a function of the input grid size.

* Per #1673, push initial appendix C updates for GBETA.

* Per #1673, working on G and GBETA equations.

* Per #1673, working on G and GBETA equations.

* Per 1673, update GBETA details in appendix C.

* Per #1673, add Eric's info about selecting beta.

* Per #1673, update reference for Gilleland-2019 to Gilleland_PartI-2020 and Gilleland_PartII-2020.

* Per 1673, fix typo.

* Per #1673, making changes requested by Eric.

* Per #1673, making changes requested by Eric.

* Per #1673, update references based on Eric's feedback.

* Update appendixD.rst (#1869)

Updated this appendix.

* Update appendixD.rst

* Per #1673, making the formatting of Gilleland-2020 part I and II references consistent.

* Per #1673, update Grid-Stat docs to clarify that GBETA is only computed on the FULL verification domain and not any masking regions.

* Per #1673, add DataPlane::n_good_data() function to return a count valid data values.

* Per #1673, update vx_statistics library code to only set gbeta/beta_value to bad data for sub-domains.

* Per #1673, update grid_stat to mask out bad data between the fcst/obs fields before computing distance maps. This will change existing unit test results! Also store the count of valid data values in the full verification domain.

* Per #1673, since GBETA is only reported when VX_MASK = FULL, updating GridStatConfig_all to include the FULL masking region to make this example more meaningful.

Co-authored-by: ericgilleland <34106925+ericgilleland@users.noreply.github.com>

* Feature 1764 point stat (#1885)

* Per #1764 added write_orank_row() to do_hera_ens(). SL

* Per issue #1764, added orank stat type for ensemble output. SL

* Per issue #1764, added code to setup_txt_files() for ORANK output. SL

* Added some comments for debuging. SL

* Per #1764, add orank to the list of outputs created by point_stat.

* Per #1764, add functions to compute the number of requested HiRA probabilities and ensemble members. Also update n_txt_row() to keep track of the number of ORANK rows to be written. Not totally sure if I'm counting these ORANK output lines correctly though.

* Per #1764, update logic in setup_txt_files() to call get_max_n_hira_prob() and get_max_n_hira_ens() functions.

* Per #1764, no real changes. Just fixing spacing.

* Per issue #1764, cleaned up print (cout) debug statements. SL

* Per issue #1764 added 'orank = NONE' to the config files for compatibility with changes to point_stat for calculating ORANK. SL

* Per issue #1764 added 'orank = STAT' to config file to produce ORANK output lines in point_stat. SL

* Per issue #1764 added content in all relevant sections for ORANK: observation rank statistic. SL

* Added 'orank = NONE' to config file for compatibility with changes to point_stant for ORANK. SL

* Added 'orank = NONE' to config file for compatibility with changes to point_stant for ORANK. SL

* Apply suggestions from code review

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

* Per #1764, no real changes, just fixing indents.

* Per #1764, no real changes, just fixing indents.

* Per #1764, no real changes, just fixing indents.

* Per #1764, putting the docs for VCNT back into its logical order with the other vector line types. The order that they're listed here does not need to match their order in the enumeration in the code.

* Per #1764, fixing a vcnt typo I found in the grid-stat chapter... and making them consistent.

* Per issue #1764: After the call to write_orank_row, added lines to reset the observation begin and end times. SL

* Per #1764, no code changes, just fixing indents.

Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Adding Seth to the NB notification list.

* Bugfix 1886 develop grid_diag (#1888)

* Per #1886, port over the bugfixes from main_v10.0 to develop.

* Per #1886, make grid_diag error out if to_grid is set to FCST or OBS.

* Added additional default labels

* Feature 1870 realtime (#1893)

* Per #1870. add TCPairs config entries for valid_inc, valid_exc, and write_valid.

* Per #1870, removing 2 files I accidentally added.

* Per #1870, add code to parse the new tc_pairs config options.

* Per #1870, unrelated... just fixing spacing.

* Per #1870, update TrackPairInfo/Array classes and tc_pairs application code to use the write_valid option to subset the tracks by requested valid time before writing them.

* Per #1870, update the User's Guide with the new config options. Document valid_inc/valid_exc in the common TC config section and add write_valid to the TC-Pairs chapter.

* Per #1870, move the subset_write_valid() functionality to the library code and support it for both track and probability arrays.

* Per #1870, update unit_tc_pairs.xml with 2 new calls to exercise the new write_valid functionality for both tracks and probabilities.

* Per #1870, correct some typos in the docs... PROBRI and probri should be PROBRIRW and probrirw, resp.

* Per #1870, switching match_points from TRUE back to FALSE after I acciedentally committed that change.

* Per #1870, just fixing indent.

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

* Feature 1788 ssidx (#1892)

* Per #1788, add initial definition of the SSIDX line type.

* Per #1788, add a STAT-Analysis config file for computing the CBS Score. This is currently just a copy of the GO Index.

* Per #1788, add hooks for computing -job cbs_score.

* Per #1788, since we're adding a new SSIDX line type, the columns for that line type replace the job_ss_columns and job_go_columns arrays.

* Per #1788, rename cbs_score to cbs_index per UK Met Office instruction on 7/22/21. This convention is also consistent with the existing go_index and ss_index jobs.

* Per #1788 rename STATAnalysisConfig_CBS_Score to STATAnalysisConfig_CBS_Index

* Per #1788, update Makefile to handle name change.

* Per #1788, add support for SSIDX stat line type.

* Per #1788, define 4 output SSIDX columns.

* Per #1788, define an SSIndexInfo struct for stashing/writing SS Index values.

* Per #1788, write the SSIDX columns. However we don't need to function to write the whole row since it's only written by Stat-Analysis.

* Per #1788, create an AggrSSIndexInfo struct to keep track of unique stat header column input values.

* Per #1788, update the stat-analysis job code to make use of the new structs.

* Per #1788 fix typo.

* Per #1788, remove GO Index defintion from the code comments. That detail belongs elsewhere.

* Per #1788, since coding up the GO Index several CNT and CTC columns have been added. Adding them here to let them be included as part of the Skill Score index computations.

* Per #1788, update check_hdr_str() to print the name of the problematic header columns.

* Per #1788, add a set(one) member function to multiple array classes. This calls clear or erase on the array prior to adding a single element. Add this for StringArray, NumArray, and ThreshArray, and CRCArray.

* Per #1788, update the compute_ss_index() function in stat_analysis to make the code more concise by calling the newly adding singular set functions for arrays.

* Per #1788, add FCST_MODEL and REF_MODEL output columns to the SSIDX line type.

* Per #1788, add a new N_INIT column to the SSIDX line type to report the number of initialization times represented by this skill score. Also define the SSIDXData struct to store the skill score index job output.

* Per #1788, update STATAnalysisJob to explicitly set the job type directly rather than parsing a string.

* Per #1788, major change here adding skill_score_index_job.h/.cc to handle the computation of the skill score indices.

* Per #1788, update stat_analysis source code to make use of the new classes in skill_score_index_job.h/.cc.

* Per #1788, write a log message listing the model initialization times over which the skill score index is computed.

* Per #1788, tweak log message.

* Per #1788, compute n_term as the max lenght of the required arrays.

* Per #1788, drop in the ACTUAL definition of the GO index provide by the DTC AF project team. Also simplify the existing arrays down to lenght one if the value remains constant.

* Per #1788, correct CBS Index config file. Some parameters had 40 elements while others only had 32.

* Per #1788, do not write SSIDX output if there are no valid terms found.

* Per #1788, format the values in the skill score index log messages, replacing -9999 with NA.

* Per #1788, update the get_stat() member functions. For 0 pairs, return bad data for all statistics other than TOTAL.

* Per #1788, working on readability of the warning and error messages.

* Per #1788, define the ss_index_name directly in the STATAnalysis config file to make it really easy to modify.

* Per #1788, store the ss_index_name configuration option in the StatJob class. Also support a command line -ss_index_name option to override the config file value.

* Per #1788, change from name to ss_index_name variable to be a bit more descriptive in the variable names.

* Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.

* Per #1788, simply the skill score index job handling logic a bit. We only need to update the default job once, not twice.:

* Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument."

This reverts commit cde0be0.

* Revert "Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.""

This reverts commit bbfd838.

* Per #1788, I'd pruned too much code from stat_analysis.cc which caused the processing of config file jobs to fail. Fixing that here.

* Per #1788, switch Z0 to L0 to match the sample data for computing CBS Index.

* Per #1788, make it so that cbs_index and go_index work from config file.

* Per #1788, update the documentation for the skill score index changes.

* Per #1788, just move some variable definitions further down since they're only used sometimes.

* Per #1788, make job output description into a numbered section.

* Per #1788, little tweak.

* Per #1788, update the STATAnalysisConfig files to add ss_index_name and hss_ec_value, as needed.

* Per #1788, add new unit tests to exercise recent ss_index changes and update the Stat-Analysis documentation.

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Update met/docs/Users_Guide/stat-analysis.rst

Sorry for the typos! Thanks for catching them.

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

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Per #1788, fix typo in error message.

* Per #1788, fix a bug for ss_index... changing 'add' to 'set'. Also set the line_type seperately for each term, if requested.

* Per #1788, tweak the ss_index logic slightly to make it more efficient. For each input STATLine, instead of checking all the index terms, stop searching after the first match. This assumes that each input line should be used for only one of the terms... and I think that's a pretty reasonable assumption.

* Per #1788, minor tweaks to the STAT-Analysis docs.

* Per #1788, add ss_index_vld_thresh option to existing STAT-Analysis config files.

* Per #1788, add StatAnalysisJob ss_index_vld_thresh entry and parse it from the STAT-Analysis config file.

* Per #1788, update stat_analysis code to check ss_index_vld_thresh setting when computing the skill score index. Also update the Stat-Analysis chapter of the User's Guide.

* Per #1788, tweak one test to exercise a non-default ss_index_vld_thresh value.

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

Co-authored-by: jprestop <jpresto@ucar.edu>
Co-authored-by: Howard Soh <hsoh@kiowa.rap.ucar.edu>
Co-authored-by: hsoh-u <hsoh@ucar.edu>
Co-authored-by: Keith Searight <keith.searight@noaa.gov>
Co-authored-by: Seth Linden <linden@ucar.edu>
Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>
Co-authored-by: lisagoodrich <33230218+lisagoodrich@users.noreply.github.com>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Co-authored-by: ericgilleland <34106925+ericgilleland@users.noreply.github.com>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@kiowa.rap.ucar.edu>
Co-authored-by: Julie Prestopnik <jpresto@seneca.rap.ucar.edu>
JohnHalleyGotway added a commit that referenced this issue Aug 31, 2021
* Update install_met_env.kiowa

Commented out items and added text to description

* #1817 Added to_north argument at two_to_one()

* #1817 Calls two_to_one() with false for the third argument, to_north, if latitude moves north to south

* Feature 1819 automation doc warnings (#1836)

* Removing "/lib" that should not be there.

* #1508 checking stat() methoid returns no error before looking at FILE flag

* Enable PDF creation

* Modify inputenc, fontenc latex_elements

* Fix typo in conf.py

* Replace unicode with ascii

* Replace unicode exponent with math mode

* Change eqnarray to align

* Replace gif images with png for PDF

* Fix png file names

* Escape underscore in variable name in math mode

* Escape underscore in variable name in math mode

* Remove underscores from variables in math mode

* Replace bar with overline in some equations

* Test derefencing underscores in tables

* Test math changes in grid stat

* Test math formatting

* Test math formatting

* #1838 Added log message for lat/lon values

* #1838 Give warning if the first and lat lat/lon is same

* #1838 Support the double data type variable on reading float type values

* Feature 1833 develop discussions (#1849)

* Per #1833, changed references to met_help to Discussions.

* Per #1833, fixed typo and removed an unnecessary word

* #1852 Removed unused nc_buf_size. Make cur and dim to the same size (called API handles 2D or 3D)

* #1852 Check the start and count before calling NetCDF API

* Feature 1746 wavelet stat (#1851)

* For issue #1746 modified code to allow users to pass in an empty list (or NA) for forecast and observation thresholds in order to skip applying the threhsolds, but it will still compute stats with the raw fields. SL

* For issue #1746, added new unit test that uses a config file that has empty lists for the forecast and observation thresholds. SL

* For issue #1746 Added some content related to allowing users to set forecast and observation cat thresholds to an empty list in order to skip the binary masking (and consider all grid-points for stats). SL

* Per #1746, cleaning up for consistent indentation.

* Per #1746, cleaning up for consistent indentation.

* Per #1746, add a revision history note, update the plotting range in the postscript output to be [-n,n] where n is the maximum value of the maximum absolute difference and 1.0, and also fix a bug. When the NA threshold comes AFTER a real threshold, the resulting data and difference values were not being updated.

* Per #1746, change the Wavelet-Stat config file values in the the wvlt_plot dictionary by setting plot_min = plot_max = 0.0. That enables the default logic of the tool to take effect. Choose the plotting range of the wavelet plots as [-n,n], where n is the maximum of 1.0 and the maximum absolute difference.

* Per #1746, used apply_fcst_thresh where it should have been apply_obs_thresh.

* Per issue #1746, modified some content related to users being able to skip applying the categorical threhsolds by putting an empty list or NA in the configuration file. SL

* Per issue #1746 Added some warnings if the forecast threshold is set to NA but the observation threshold is not NA (a numeric threshold) and vice versa. SL

* Per #1746, fix a couple of typos and tweak wording in the wavelet-stat chapter.

* Per #1746, loop over each pair of fcst/obs thresholds to check for inconsistent use of the NA threshold type.

* Per #1746, a bit of code cleanup replacing calls to n_elements() with n() to make the code more concise.

* Per #1746, need to reinitialize apply_fcst_thresh and apply_obs_thresh to true inside the loop since the NA threshold can appear anywhere in the list of thresholds.

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

* Add sphinx.ext.pngmath to conf.py

* Fix typo in conf.py

* Add sphinx.ext.mathjax to conf.py

* Add sphinx.ext.imgmath to conf.py

* Fix typo in conf.py

* Change math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Add sphinx.ext.imgmath to conf.py

* Modify math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Temporarily disable equations with errors

* Update README.md

* Modify math formatting in Appendix C

* Add usepackage{amssymb} to conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Fix warnings in wavelet-stat.rst

* Omit Indices and tables in PDF version of User Guide

* Modify math formatting in Appendix G

* Modify math formatting in Appendix E

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Change release date in conf.py

* #1852 get_string_val: check if 2D variable. Also checking if the variable does not have dimension (#1860)

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

* Feature 1453 create pdf user guide (#1859)

* Enable PDF creation

* Modify inputenc, fontenc latex_elements

* Fix typo in conf.py

* Replace unicode with ascii

* Replace unicode exponent with math mode

* Change eqnarray to align

* Replace gif images with png for PDF

* Fix png file names

* Escape underscore in variable name in math mode

* Escape underscore in variable name in math mode

* Remove underscores from variables in math mode

* Replace bar with overline in some equations

* Test derefencing underscores in tables

* Test math changes in grid stat

* Test math formatting

* Test math formatting

* Add sphinx.ext.pngmath to conf.py

* Fix typo in conf.py

* Add sphinx.ext.mathjax to conf.py

* Add sphinx.ext.imgmath to conf.py

* Fix typo in conf.py

* Change math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Add sphinx.ext.imgmath to conf.py

* Modify math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Temporarily disable equations with errors

* Modify math formatting in Appendix C

* Add usepackage{amssymb} to conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Fix warnings in wavelet-stat.rst

* Omit Indices and tables in PDF version of User Guide

* Modify math formatting in Appendix G

* Modify math formatting in Appendix E

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Change release date in conf.py

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

* Feature 1853 rps doc (#1861)

* Per #1853, adding RPS docs from Eric.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, adding a manual page break after the ROC image to get it to stay in the right spot.

* Per #1853, backing out last change which didn't make the ROC image stay in the right spot.

* #1855 Removed break after return (SobarQube)

* #1855 Removed break after exit

* 1855 Added return at MetNcPointObsOut::write_to_netcdf

* #1855 Avoid releasing memory twice

* #1855 Removed unused code

* #1855 Corrected syntax error

* #1855 Changed the second call of close() to release _ncFile

* #1855 Deleted break after exit

* #1855 Chamnged while to if

* #1855 Added constructor TCLineCounts and initialized the members

* #1855 Added break statement back for case '-'

* #1855 Check the new size before extending to avoid thereference of the  null pointer

* #1855 Changed count to processed_count for log messages. Initialized variables at get_filtered_nc_data\*()

* #1855 Corected the number of memory copy

* #1855 Exit with an error message if both fgi & bgi are null

* #1855 Clear Lead_Times before extening. Formatting for error messages

* Add definition for the compilation environment on seneca.

* #1855 Extend Lead_Times for new times

* #1855 Removed break after exit

* #1855 define "c" dynamically

* #1855 Move the log message within if statement to avoid dereferencing a null pointer

* Feature 1843 scatter index (#1863)

* Added scatter index variables: SI, SI_BCL, SI_BCU to cnt columns. SL

* Per issue #1843 Added Scatter Index variables (SI, SI_BCL, SI_BCU) to the CNT stat type. SL

* Added Scatter Index (SI, SI_BCL, SI_BCU) to cnt stat type header. SL

* Per issue #1843, added Scatter Index variables to write_cnt_cols(). SL

* Per issue #1843 added Scatter Index (si) to CNTinfo class. SL

* Per issue #1843 added Scatter Index (SI, si) to CNTInfo::get_stat(). SL

* Per issue #1843 added Scatter Index (SI, si) calculation to both versions of compute_cntinfo(). SL

* Per issue #1843, forgot semi-colon after SI calculation, fixed. SL

* Added Scatter Index (si) to some of the clear() and allocate() functions. SL

* Per issue #1843, added Scatter Index (si) to compute_cnt_mean(). SL

* Per issue #1843, added Scatter Index (si) to bootstrap interval calculation and to the CNT write function. SL

* Per issue #1843 added Scatter Index (SI, SI_BCL, SI_BCU) to store_stat_cnt(). SL

* Per issue #1843, in get_stat() moved Scatterd Index (SI) line to be below RMSE for consitency. SL

* Added Scatter Index (SI) to the CNT output format table. SL

* Added Scatter Index (SI) to CNT statistics definitions. SL

* Update appendixC.rst

* Update stat_columns.cc

* Update compute_ci.cc

* Update met_stats.cc

* Per #1843, update write_cntinfo() function. Since we're READING the SI value immediately after the RMSE value when computing CI's, we also need to write SI immediately after RMSE. Otherwise, we'll be computing CI's using the wrong statistics replicates.

* Per #1843, check for divide by zero when computing SI... this could happen if comparing the same input file to itself with Grid-Stat.

* Per #1843, correct definition of SI from RMSE/ME to RMSE/OBAR.

* Per #1843, updated the SI definition to divide by OBAR instead of ME, but forgot to update the divide-by-zero check.

Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: johnhg <johnhg@ucar.edu>

* #1855 Corected typo - compare the numnber of U and V

* #1855 Check if var_info is hull

* #1855 Avoid un-initialized variables: dt at open(), v at lat() & lon(), and local variables at data()

* #1855 Check if ldf is null pointer

* #1855 Removed break after exit

* #1855 Removed break after exit

* Update pcp_combine.cc

* Feature 1864 config urls (#1868)

* Per #1864, remove stale GitHub pages URL for the MET User's Guide.

* Per #1864, found stale GitHub IO links in the issue templates. Should make this same fix in the develop and default branches for all the METplus repos.

* Per #1864, fix stale GitHub IO link in the PR template.

* Move ROC curve in Appendix C

* Crop ROC image for better PDF formatting

* Shrink ROC image for better PDF formatting

* Modify figure alignment in conf.py

* Change text placement for ROC curve figure

* Feature 1834 faq (#1867)

* testing possible new drop-down menus for FAQ

* adding sphinx-panels to extensions to be able to use drop down menus in appendixA

* Per #1834, adding sphinx-panels to requirements.txt to see if that fixes the error

* Per #1834, added sphinx.ext to beginning of sphinx_panels to see if that fixes the error

* Per #1834, remove sphinx.ext and add trailing comma to end of extensions to see if that fixed the error

* Per #1834, added sphinx-panels to pip install command to see if that fixes the error

* Per #1834, added extra space in comment to get docs to build to see if change to documentation.yml will fix an error

* Per #1834, added return character to get rid of warning

* testing dropdown menus #1

* testing dropdown menus #2 removing lines and dotted lines

* testing #3

* testing 4

* fixing numbering, removing 2nd pulldown menu, trying to fix box width

* adding code block in dropdown

* trying to fix width

* trying to fix width with spacing

* trying to fix width with spacing 2nd dropdown

* removing panels

* solved problem, just use dropdown no panels

* adding second dropdown menu

* removing the dropdown menus and fixing the spacing.

* fixing typos

* adding in matched pairs

* adding in formating files for NetCDF and making FILE_IO a header

* fixing spacing

* time slice

* fixing spacing

* UNIX time conversion

* fixing spacing

* fixed-width

* scientific notation

* removing which per Julie P

* adding Gen_Vx_Mask section

* fixing formatting

* changing to numbers

* complex masking region

* neighborhood methods boundaries

* Neighborhood Methods to Compute Fraction

* adding Grid_Stat - How do I use Config File Setup to Read a NetCDF file

* using backticks with asterics

* one more backtick with asterics

* Grid_Stat - What would be an example of Verifying Probabilities

* fixing typos

* What is an example of using Grid-Stat with Regridding and Masking Turned On

* fixing typos

* Grid_Stat - What would be an example of Verifying Probabilities Example2

* trying to fix typos

* trying to fix code-block spacing

* Per #1834, attempting to fix warning.

* How do I use different masks in MET tools using MODE as an example

* trying to fix bullet list

* trying to fix bullet list 2

* trying to fix bullet list 2

* trying to fix bullet list 3

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, modified formatting, including adding backslashes and removing extra returns in command line calls, and adding indentation for config file notation, and adding a return after each 'A.'

* Per #1834, changed code-block from ini to none to fix formatting

* *Pcp-Combine - What are some examples using -add

* Pcp-Combine -  How do I add and subtract with Pcp-Combine

* Pcp-Combine - How do I Combine 12-hour Accumulated Precipitation from Two Different Initialization Times

* Pcp-Combine - How Do I Correct a Precipitation Time Range

* Pcp-Combine - What Data Formats does MET Read

* Pcp-Combine - How does pass through work

* Pcp_Combine - How do I use -pcprx to run a project faster

* Pcp-Combine - How Do I Enter the Time Format Correctly

* Pcp-Combine - How do I use -subtract

* fixing formatting

* Pcp_Combine - How Do I Use -sum, -add, and -subtract to Achieve Same Accumulation Interval

* Pcp-Combine - What is the difference between -sum vs. -add

* Pcp-Combine - How Do I Select a Specific GRIB Record to Use

* fixing spacing for original text

* Plot-Data-Plane - How Do I Inspect Gen_Vx_Mask Output

* fixing typo

* Plot-Data-Plane - How Do I Specify GRIB Version

* Plot-Data-Plane - last 2 entries

* 2 misc. entries

* fixing typo

* Stat_Analysis - How does -aggregate_stat work

* Stat_Analysis - remaining entries

* fixing typo

* tc-pairs

* tc-stat

* troubleshooting area

* another stat-analysis

* another stat-analysis

* utilities

* fixing dashes

* Per #1834, trying out syntax

* Per #1834, removing added syntax

* fixing returns with bolding

* Per #1834, modified formatting

* adding italics for directories #1834

* replacing code-block ini with none to remove red lettering

* fixing questions to lower case #1834

* linking to section using numref #1834

* linking to section using numref #1834 attempt 2

* linking to section using numref #1834 attempt 3

* linking to section using numref #1834 attempt 4

* linking to section using numref #1834 attempt 5

* linking to section using numref #1834 attempt 6

* linking to section using numref #1834 attempt 7

* linking to section using numref #1834 attempt 8

* linking to anothre section #1834

* linking to another section #1834

* removing old info #1834

* grammar updates #1834

* grammar updates #1834

* fixing typos #1834

* email changes with Julie #1834

* trying to fix warning #1834

* changes #1834

* Per #1834, updating question titles and answers

* Per #1834, made updates to the content.

* Per #1834, made updates to the content

* Per #1834, made updates to the content

* Per #1834, made some major changes to the first 3 FAQ's. I don't have the time/bandwidth to review these completely at this time, but wanted to include at least these updates.

* testing some of the updates John O. suggested.

* updates John O. suggested take 2 #1834.

* updates John O. suggested take 3 #1834.

* updates John O. suggested take 4 #1834.

* updates John O. suggested take 5 #1834.

* updates John O. suggested.  Some didn't show up even though they've been removed #1834.

* trying to fix numbered list indenting #1834

* fixing numbered list indenting #1834

* cleaning up formatting #1834

* fixing broken links #1834

Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>

* bugfix 1872 plot_tcmpr.R -lookin directory (develop) (#1874)

* Bugfix 1875 develop memory (#1877)

* Per #1875, fix set_cdf_ta() to initialize cdf_ta prior to populating it.

* Per #1875, add debug(4) log messages whenever defining a new aggregation case in stat-analysis.

* Per #1875, switch log messages about new cases from Debug(4) to Debug(3).

* Per #1879, porting the same changes over to the develop branch. (#1881)

* Feature 1673 gbeta (#1857)

* Per #1673, add a distance_map.beta_value entry to all the Grid-Stat config files.

* Per #1673, enhance Grid-Stat to parse the new beta_value option and set its value in the library code.

* Per #1673, set the user-defined beta_value when processing the distance map scores.

* Per #1673, add 4 new DMAP columns write them. Just writing bad data values right now, still need to actually compute them! Also need to update Stat-Analysis to update the parsing/aggregation of these new values.

* Per #1673, enable beta_value to be set to a default bad data value.

* Per #1673 and @ericgilleland instruction (#1673 (comment)), strip asymmetric G-Beta (AGBETA) from the output.

* Per #1673, fix typo that was causing the code not to compile.

* Per #1673, update MET User's Guide about G/GBETA.

* Per #1673, report BETA_VALUE = TOTAL / 2 in the output instead of NA, as directed by Eric.

* Per #1673, remove descriptions of Grid-Stat-specific config options for nbrhd, fourier, gradient, and distance_map from the overview section since they belong in the Grid-Stat chapter. Also add direct links for them in the Grid-Stat chapter.

* Per #1673, do not reset the beta_value in DMAP::clear().

* Per #1673, log the DMAP options only after the beta_value has been determined.

* Per #1673, correct the default beta_value setting as N*N / 2.0.

* Per #1673, trying to format G-beta well.

* Per #1673, trying to format G-beta well.

* Per #1673, beta is formatted as \beta and not \Beta in latex.

* Per #1673, beta is formatted as \beta and not \Beta in latex.

* Per #1673, switch to defining beta_value as a function of the input grid size.

* Per #1673, push initial appendix C updates for GBETA.

* Per #1673, working on G and GBETA equations.

* Per #1673, working on G and GBETA equations.

* Per 1673, update GBETA details in appendix C.

* Per #1673, add Eric's info about selecting beta.

* Per #1673, update reference for Gilleland-2019 to Gilleland_PartI-2020 and Gilleland_PartII-2020.

* Per 1673, fix typo.

* Per #1673, making changes requested by Eric.

* Per #1673, making changes requested by Eric.

* Per #1673, update references based on Eric's feedback.

* Update appendixD.rst (#1869)

Updated this appendix.

* Update appendixD.rst

* Per #1673, making the formatting of Gilleland-2020 part I and II references consistent.

* Per #1673, update Grid-Stat docs to clarify that GBETA is only computed on the FULL verification domain and not any masking regions.

* Per #1673, add DataPlane::n_good_data() function to return a count valid data values.

* Per #1673, update vx_statistics library code to only set gbeta/beta_value to bad data for sub-domains.

* Per #1673, update grid_stat to mask out bad data between the fcst/obs fields before computing distance maps. This will change existing unit test results! Also store the count of valid data values in the full verification domain.

* Per #1673, since GBETA is only reported when VX_MASK = FULL, updating GridStatConfig_all to include the FULL masking region to make this example more meaningful.

Co-authored-by: ericgilleland <34106925+ericgilleland@users.noreply.github.com>

* Feature 1764 point stat (#1885)

* Per #1764 added write_orank_row() to do_hera_ens(). SL

* Per issue #1764, added orank stat type for ensemble output. SL

* Per issue #1764, added code to setup_txt_files() for ORANK output. SL

* Added some comments for debuging. SL

* Per #1764, add orank to the list of outputs created by point_stat.

* Per #1764, add functions to compute the number of requested HiRA probabilities and ensemble members. Also update n_txt_row() to keep track of the number of ORANK rows to be written. Not totally sure if I'm counting these ORANK output lines correctly though.

* Per #1764, update logic in setup_txt_files() to call get_max_n_hira_prob() and get_max_n_hira_ens() functions.

* Per #1764, no real changes. Just fixing spacing.

* Per issue #1764, cleaned up print (cout) debug statements. SL

* Per issue #1764 added 'orank = NONE' to the config files for compatibility with changes to point_stat for calculating ORANK. SL

* Per issue #1764 added 'orank = STAT' to config file to produce ORANK output lines in point_stat. SL

* Per issue #1764 added content in all relevant sections for ORANK: observation rank statistic. SL

* Added 'orank = NONE' to config file for compatibility with changes to point_stant for ORANK. SL

* Added 'orank = NONE' to config file for compatibility with changes to point_stant for ORANK. SL

* Apply suggestions from code review

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

* Per #1764, no real changes, just fixing indents.

* Per #1764, no real changes, just fixing indents.

* Per #1764, no real changes, just fixing indents.

* Per #1764, putting the docs for VCNT back into its logical order with the other vector line types. The order that they're listed here does not need to match their order in the enumeration in the code.

* Per #1764, fixing a vcnt typo I found in the grid-stat chapter... and making them consistent.

* Per issue #1764: After the call to write_orank_row, added lines to reset the observation begin and end times. SL

* Per #1764, no code changes, just fixing indents.

Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Adding Seth to the NB notification list.

* Bugfix 1886 develop grid_diag (#1888)

* Per #1886, port over the bugfixes from main_v10.0 to develop.

* Per #1886, make grid_diag error out if to_grid is set to FCST or OBS.

* Added additional default labels

* Feature 1870 realtime (#1893)

* Per #1870. add TCPairs config entries for valid_inc, valid_exc, and write_valid.

* Per #1870, removing 2 files I accidentally added.

* Per #1870, add code to parse the new tc_pairs config options.

* Per #1870, unrelated... just fixing spacing.

* Per #1870, update TrackPairInfo/Array classes and tc_pairs application code to use the write_valid option to subset the tracks by requested valid time before writing them.

* Per #1870, update the User's Guide with the new config options. Document valid_inc/valid_exc in the common TC config section and add write_valid to the TC-Pairs chapter.

* Per #1870, move the subset_write_valid() functionality to the library code and support it for both track and probability arrays.

* Per #1870, update unit_tc_pairs.xml with 2 new calls to exercise the new write_valid functionality for both tracks and probabilities.

* Per #1870, correct some typos in the docs... PROBRI and probri should be PROBRIRW and probrirw, resp.

* Per #1870, switching match_points from TRUE back to FALSE after I acciedentally committed that change.

* Per #1870, just fixing indent.

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

* Feature 1788 ssidx (#1892)

* Per #1788, add initial definition of the SSIDX line type.

* Per #1788, add a STAT-Analysis config file for computing the CBS Score. This is currently just a copy of the GO Index.

* Per #1788, add hooks for computing -job cbs_score.

* Per #1788, since we're adding a new SSIDX line type, the columns for that line type replace the job_ss_columns and job_go_columns arrays.

* Per #1788, rename cbs_score to cbs_index per UK Met Office instruction on 7/22/21. This convention is also consistent with the existing go_index and ss_index jobs.

* Per #1788 rename STATAnalysisConfig_CBS_Score to STATAnalysisConfig_CBS_Index

* Per #1788, update Makefile to handle name change.

* Per #1788, add support for SSIDX stat line type.

* Per #1788, define 4 output SSIDX columns.

* Per #1788, define an SSIndexInfo struct for stashing/writing SS Index values.

* Per #1788, write the SSIDX columns. However we don't need to function to write the whole row since it's only written by Stat-Analysis.

* Per #1788, create an AggrSSIndexInfo struct to keep track of unique stat header column input values.

* Per #1788, update the stat-analysis job code to make use of the new structs.

* Per #1788 fix typo.

* Per #1788, remove GO Index defintion from the code comments. That detail belongs elsewhere.

* Per #1788, since coding up the GO Index several CNT and CTC columns have been added. Adding them here to let them be included as part of the Skill Score index computations.

* Per #1788, update check_hdr_str() to print the name of the problematic header columns.

* Per #1788, add a set(one) member function to multiple array classes. This calls clear or erase on the array prior to adding a single element. Add this for StringArray, NumArray, and ThreshArray, and CRCArray.

* Per #1788, update the compute_ss_index() function in stat_analysis to make the code more concise by calling the newly adding singular set functions for arrays.

* Per #1788, add FCST_MODEL and REF_MODEL output columns to the SSIDX line type.

* Per #1788, add a new N_INIT column to the SSIDX line type to report the number of initialization times represented by this skill score. Also define the SSIDXData struct to store the skill score index job output.

* Per #1788, update STATAnalysisJob to explicitly set the job type directly rather than parsing a string.

* Per #1788, major change here adding skill_score_index_job.h/.cc to handle the computation of the skill score indices.

* Per #1788, update stat_analysis source code to make use of the new classes in skill_score_index_job.h/.cc.

* Per #1788, write a log message listing the model initialization times over which the skill score index is computed.

* Per #1788, tweak log message.

* Per #1788, compute n_term as the max lenght of the required arrays.

* Per #1788, drop in the ACTUAL definition of the GO index provide by the DTC AF project team. Also simplify the existing arrays down to lenght one if the value remains constant.

* Per #1788, correct CBS Index config file. Some parameters had 40 elements while others only had 32.

* Per #1788, do not write SSIDX output if there are no valid terms found.

* Per #1788, format the values in the skill score index log messages, replacing -9999 with NA.

* Per #1788, update the get_stat() member functions. For 0 pairs, return bad data for all statistics other than TOTAL.

* Per #1788, working on readability of the warning and error messages.

* Per #1788, define the ss_index_name directly in the STATAnalysis config file to make it really easy to modify.

* Per #1788, store the ss_index_name configuration option in the StatJob class. Also support a command line -ss_index_name option to override the config file value.

* Per #1788, change from name to ss_index_name variable to be a bit more descriptive in the variable names.

* Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.

* Per #1788, simply the skill score index job handling logic a bit. We only need to update the default job once, not twice.:

* Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument."

This reverts commit cde0be0.

* Revert "Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.""

This reverts commit bbfd838.

* Per #1788, I'd pruned too much code from stat_analysis.cc which caused the processing of config file jobs to fail. Fixing that here.

* Per #1788, switch Z0 to L0 to match the sample data for computing CBS Index.

* Per #1788, make it so that cbs_index and go_index work from config file.

* Per #1788, update the documentation for the skill score index changes.

* Per #1788, just move some variable definitions further down since they're only used sometimes.

* Per #1788, make job output description into a numbered section.

* Per #1788, little tweak.

* Per #1788, update the STATAnalysisConfig files to add ss_index_name and hss_ec_value, as needed.

* Per #1788, add new unit tests to exercise recent ss_index changes and update the Stat-Analysis documentation.

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Update met/docs/Users_Guide/stat-analysis.rst

Sorry for the typos! Thanks for catching them.

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

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Per #1788, fix typo in error message.

* Per #1788, fix a bug for ss_index... changing 'add' to 'set'. Also set the line_type seperately for each term, if requested.

* Per #1788, tweak the ss_index logic slightly to make it more efficient. For each input STATLine, instead of checking all the index terms, stop searching after the first match. This assumes that each input line should be used for only one of the terms... and I think that's a pretty reasonable assumption.

* Per #1788, minor tweaks to the STAT-Analysis docs.

* Per #1788, add ss_index_vld_thresh option to existing STAT-Analysis config files.

* Per #1788, add StatAnalysisJob ss_index_vld_thresh entry and parse it from the STAT-Analysis config file.

* Per #1788, update stat_analysis code to check ss_index_vld_thresh setting when computing the skill score index. Also update the Stat-Analysis chapter of the User's Guide.

* Per #1788, tweak one test to exercise a non-default ss_index_vld_thresh value.

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

* Bugfix 1891 gen_vx_mask (#1895)

* Per #1891, tighten up the gen_vx_mask logic a bit. Use a global config for the default NC compression level. Then read the input and mask fields using local variables instead of the global one to ensure they don't affect eachother. Also took the opportunity to refine the logic so that we only create a mtddf object in one spot, in the get_data_plane() function.

* Per #1891, add a new test in unit_gen_vx_mask.xml that fails prior to #1891 and succeeds with these changes.

* Per #1891, file name typo in unit_gen_vx_mask.xml.

Co-authored-by: jprestop <jpresto@ucar.edu>
Co-authored-by: Howard Soh <hsoh@kiowa.rap.ucar.edu>
Co-authored-by: hsoh-u <hsoh@ucar.edu>
Co-authored-by: Keith Searight <keith.searight@noaa.gov>
Co-authored-by: Seth Linden <linden@ucar.edu>
Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>
Co-authored-by: lisagoodrich <33230218+lisagoodrich@users.noreply.github.com>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Co-authored-by: ericgilleland <34106925+ericgilleland@users.noreply.github.com>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@kiowa.rap.ucar.edu>
Co-authored-by: Julie Prestopnik <jpresto@seneca.rap.ucar.edu>
@JohnHalleyGotway JohnHalleyGotway changed the title Enhance Stat-Analysis to write the GO Index and CBS Index into a new STAT line type. Enhance Stat-Analysis to write the GO Index and CBS Index into a new SSIDX STAT line type. Sep 16, 2021
JohnHalleyGotway added a commit that referenced this issue Sep 17, 2021
* Update install_met_env.kiowa

Commented out items and added text to description

* #1817 Added to_north argument at two_to_one()

* #1817 Calls two_to_one() with false for the third argument, to_north, if latitude moves north to south

* Feature 1819 automation doc warnings (#1836)

* Removing "/lib" that should not be there.

* #1508 checking stat() methoid returns no error before looking at FILE flag

* Enable PDF creation

* Modify inputenc, fontenc latex_elements

* Fix typo in conf.py

* Replace unicode with ascii

* Replace unicode exponent with math mode

* Change eqnarray to align

* Replace gif images with png for PDF

* Fix png file names

* Escape underscore in variable name in math mode

* Escape underscore in variable name in math mode

* Remove underscores from variables in math mode

* Replace bar with overline in some equations

* Test derefencing underscores in tables

* Test math changes in grid stat

* Test math formatting

* Test math formatting

* #1838 Added log message for lat/lon values

* #1838 Give warning if the first and lat lat/lon is same

* #1838 Support the double data type variable on reading float type values

* Feature 1833 develop discussions (#1849)

* Per #1833, changed references to met_help to Discussions.

* Per #1833, fixed typo and removed an unnecessary word

* #1852 Removed unused nc_buf_size. Make cur and dim to the same size (called API handles 2D or 3D)

* #1852 Check the start and count before calling NetCDF API

* Feature 1746 wavelet stat (#1851)

* For issue #1746 modified code to allow users to pass in an empty list (or NA) for forecast and observation thresholds in order to skip applying the threhsolds, but it will still compute stats with the raw fields. SL

* For issue #1746, added new unit test that uses a config file that has empty lists for the forecast and observation thresholds. SL

* For issue #1746 Added some content related to allowing users to set forecast and observation cat thresholds to an empty list in order to skip the binary masking (and consider all grid-points for stats). SL

* Per #1746, cleaning up for consistent indentation.

* Per #1746, cleaning up for consistent indentation.

* Per #1746, add a revision history note, update the plotting range in the postscript output to be [-n,n] where n is the maximum value of the maximum absolute difference and 1.0, and also fix a bug. When the NA threshold comes AFTER a real threshold, the resulting data and difference values were not being updated.

* Per #1746, change the Wavelet-Stat config file values in the the wvlt_plot dictionary by setting plot_min = plot_max = 0.0. That enables the default logic of the tool to take effect. Choose the plotting range of the wavelet plots as [-n,n], where n is the maximum of 1.0 and the maximum absolute difference.

* Per #1746, used apply_fcst_thresh where it should have been apply_obs_thresh.

* Per issue #1746, modified some content related to users being able to skip applying the categorical threhsolds by putting an empty list or NA in the configuration file. SL

* Per issue #1746 Added some warnings if the forecast threshold is set to NA but the observation threshold is not NA (a numeric threshold) and vice versa. SL

* Per #1746, fix a couple of typos and tweak wording in the wavelet-stat chapter.

* Per #1746, loop over each pair of fcst/obs thresholds to check for inconsistent use of the NA threshold type.

* Per #1746, a bit of code cleanup replacing calls to n_elements() with n() to make the code more concise.

* Per #1746, need to reinitialize apply_fcst_thresh and apply_obs_thresh to true inside the loop since the NA threshold can appear anywhere in the list of thresholds.

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

* Add sphinx.ext.pngmath to conf.py

* Fix typo in conf.py

* Add sphinx.ext.mathjax to conf.py

* Add sphinx.ext.imgmath to conf.py

* Fix typo in conf.py

* Change math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Add sphinx.ext.imgmath to conf.py

* Modify math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Temporarily disable equations with errors

* Update README.md

* Modify math formatting in Appendix C

* Add usepackage{amssymb} to conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Fix warnings in wavelet-stat.rst

* Omit Indices and tables in PDF version of User Guide

* Modify math formatting in Appendix G

* Modify math formatting in Appendix E

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Change release date in conf.py

* #1852 get_string_val: check if 2D variable. Also checking if the variable does not have dimension (#1860)

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

* Feature 1453 create pdf user guide (#1859)

* Enable PDF creation

* Modify inputenc, fontenc latex_elements

* Fix typo in conf.py

* Replace unicode with ascii

* Replace unicode exponent with math mode

* Change eqnarray to align

* Replace gif images with png for PDF

* Fix png file names

* Escape underscore in variable name in math mode

* Escape underscore in variable name in math mode

* Remove underscores from variables in math mode

* Replace bar with overline in some equations

* Test derefencing underscores in tables

* Test math changes in grid stat

* Test math formatting

* Test math formatting

* Add sphinx.ext.pngmath to conf.py

* Fix typo in conf.py

* Add sphinx.ext.mathjax to conf.py

* Add sphinx.ext.imgmath to conf.py

* Fix typo in conf.py

* Change math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Add sphinx.ext.imgmath to conf.py

* Modify math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Temporarily disable equations with errors

* Modify math formatting in Appendix C

* Add usepackage{amssymb} to conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Fix warnings in wavelet-stat.rst

* Omit Indices and tables in PDF version of User Guide

* Modify math formatting in Appendix G

* Modify math formatting in Appendix E

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Change release date in conf.py

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

* Feature 1853 rps doc (#1861)

* Per #1853, adding RPS docs from Eric.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, adding a manual page break after the ROC image to get it to stay in the right spot.

* Per #1853, backing out last change which didn't make the ROC image stay in the right spot.

* #1855 Removed break after return (SobarQube)

* #1855 Removed break after exit

* 1855 Added return at MetNcPointObsOut::write_to_netcdf

* #1855 Avoid releasing memory twice

* #1855 Removed unused code

* #1855 Corrected syntax error

* #1855 Changed the second call of close() to release _ncFile

* #1855 Deleted break after exit

* #1855 Chamnged while to if

* #1855 Added constructor TCLineCounts and initialized the members

* #1855 Added break statement back for case '-'

* #1855 Check the new size before extending to avoid thereference of the  null pointer

* #1855 Changed count to processed_count for log messages. Initialized variables at get_filtered_nc_data\*()

* #1855 Corected the number of memory copy

* #1855 Exit with an error message if both fgi & bgi are null

* #1855 Clear Lead_Times before extening. Formatting for error messages

* Add definition for the compilation environment on seneca.

* #1855 Extend Lead_Times for new times

* #1855 Removed break after exit

* #1855 define "c" dynamically

* #1855 Move the log message within if statement to avoid dereferencing a null pointer

* Feature 1843 scatter index (#1863)

* Added scatter index variables: SI, SI_BCL, SI_BCU to cnt columns. SL

* Per issue #1843 Added Scatter Index variables (SI, SI_BCL, SI_BCU) to the CNT stat type. SL

* Added Scatter Index (SI, SI_BCL, SI_BCU) to cnt stat type header. SL

* Per issue #1843, added Scatter Index variables to write_cnt_cols(). SL

* Per issue #1843 added Scatter Index (si) to CNTinfo class. SL

* Per issue #1843 added Scatter Index (SI, si) to CNTInfo::get_stat(). SL

* Per issue #1843 added Scatter Index (SI, si) calculation to both versions of compute_cntinfo(). SL

* Per issue #1843, forgot semi-colon after SI calculation, fixed. SL

* Added Scatter Index (si) to some of the clear() and allocate() functions. SL

* Per issue #1843, added Scatter Index (si) to compute_cnt_mean(). SL

* Per issue #1843, added Scatter Index (si) to bootstrap interval calculation and to the CNT write function. SL

* Per issue #1843 added Scatter Index (SI, SI_BCL, SI_BCU) to store_stat_cnt(). SL

* Per issue #1843, in get_stat() moved Scatterd Index (SI) line to be below RMSE for consitency. SL

* Added Scatter Index (SI) to the CNT output format table. SL

* Added Scatter Index (SI) to CNT statistics definitions. SL

* Update appendixC.rst

* Update stat_columns.cc

* Update compute_ci.cc

* Update met_stats.cc

* Per #1843, update write_cntinfo() function. Since we're READING the SI value immediately after the RMSE value when computing CI's, we also need to write SI immediately after RMSE. Otherwise, we'll be computing CI's using the wrong statistics replicates.

* Per #1843, check for divide by zero when computing SI... this could happen if comparing the same input file to itself with Grid-Stat.

* Per #1843, correct definition of SI from RMSE/ME to RMSE/OBAR.

* Per #1843, updated the SI definition to divide by OBAR instead of ME, but forgot to update the divide-by-zero check.

Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: johnhg <johnhg@ucar.edu>

* #1855 Corected typo - compare the numnber of U and V

* #1855 Check if var_info is hull

* #1855 Avoid un-initialized variables: dt at open(), v at lat() & lon(), and local variables at data()

* #1855 Check if ldf is null pointer

* #1855 Removed break after exit

* #1855 Removed break after exit

* Update pcp_combine.cc

* Feature 1864 config urls (#1868)

* Per #1864, remove stale GitHub pages URL for the MET User's Guide.

* Per #1864, found stale GitHub IO links in the issue templates. Should make this same fix in the develop and default branches for all the METplus repos.

* Per #1864, fix stale GitHub IO link in the PR template.

* Move ROC curve in Appendix C

* Crop ROC image for better PDF formatting

* Shrink ROC image for better PDF formatting

* Modify figure alignment in conf.py

* Change text placement for ROC curve figure

* Feature 1834 faq (#1867)

* testing possible new drop-down menus for FAQ

* adding sphinx-panels to extensions to be able to use drop down menus in appendixA

* Per #1834, adding sphinx-panels to requirements.txt to see if that fixes the error

* Per #1834, added sphinx.ext to beginning of sphinx_panels to see if that fixes the error

* Per #1834, remove sphinx.ext and add trailing comma to end of extensions to see if that fixed the error

* Per #1834, added sphinx-panels to pip install command to see if that fixes the error

* Per #1834, added extra space in comment to get docs to build to see if change to documentation.yml will fix an error

* Per #1834, added return character to get rid of warning

* testing dropdown menus #1

* testing dropdown menus #2 removing lines and dotted lines

* testing #3

* testing 4

* fixing numbering, removing 2nd pulldown menu, trying to fix box width

* adding code block in dropdown

* trying to fix width

* trying to fix width with spacing

* trying to fix width with spacing 2nd dropdown

* removing panels

* solved problem, just use dropdown no panels

* adding second dropdown menu

* removing the dropdown menus and fixing the spacing.

* fixing typos

* adding in matched pairs

* adding in formating files for NetCDF and making FILE_IO a header

* fixing spacing

* time slice

* fixing spacing

* UNIX time conversion

* fixing spacing

* fixed-width

* scientific notation

* removing which per Julie P

* adding Gen_Vx_Mask section

* fixing formatting

* changing to numbers

* complex masking region

* neighborhood methods boundaries

* Neighborhood Methods to Compute Fraction

* adding Grid_Stat - How do I use Config File Setup to Read a NetCDF file

* using backticks with asterics

* one more backtick with asterics

* Grid_Stat - What would be an example of Verifying Probabilities

* fixing typos

* What is an example of using Grid-Stat with Regridding and Masking Turned On

* fixing typos

* Grid_Stat - What would be an example of Verifying Probabilities Example2

* trying to fix typos

* trying to fix code-block spacing

* Per #1834, attempting to fix warning.

* How do I use different masks in MET tools using MODE as an example

* trying to fix bullet list

* trying to fix bullet list 2

* trying to fix bullet list 2

* trying to fix bullet list 3

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, modified formatting, including adding backslashes and removing extra returns in command line calls, and adding indentation for config file notation, and adding a return after each 'A.'

* Per #1834, changed code-block from ini to none to fix formatting

* *Pcp-Combine - What are some examples using -add

* Pcp-Combine -  How do I add and subtract with Pcp-Combine

* Pcp-Combine - How do I Combine 12-hour Accumulated Precipitation from Two Different Initialization Times

* Pcp-Combine - How Do I Correct a Precipitation Time Range

* Pcp-Combine - What Data Formats does MET Read

* Pcp-Combine - How does pass through work

* Pcp_Combine - How do I use -pcprx to run a project faster

* Pcp-Combine - How Do I Enter the Time Format Correctly

* Pcp-Combine - How do I use -subtract

* fixing formatting

* Pcp_Combine - How Do I Use -sum, -add, and -subtract to Achieve Same Accumulation Interval

* Pcp-Combine - What is the difference between -sum vs. -add

* Pcp-Combine - How Do I Select a Specific GRIB Record to Use

* fixing spacing for original text

* Plot-Data-Plane - How Do I Inspect Gen_Vx_Mask Output

* fixing typo

* Plot-Data-Plane - How Do I Specify GRIB Version

* Plot-Data-Plane - last 2 entries

* 2 misc. entries

* fixing typo

* Stat_Analysis - How does -aggregate_stat work

* Stat_Analysis - remaining entries

* fixing typo

* tc-pairs

* tc-stat

* troubleshooting area

* another stat-analysis

* another stat-analysis

* utilities

* fixing dashes

* Per #1834, trying out syntax

* Per #1834, removing added syntax

* fixing returns with bolding

* Per #1834, modified formatting

* adding italics for directories #1834

* replacing code-block ini with none to remove red lettering

* fixing questions to lower case #1834

* linking to section using numref #1834

* linking to section using numref #1834 attempt 2

* linking to section using numref #1834 attempt 3

* linking to section using numref #1834 attempt 4

* linking to section using numref #1834 attempt 5

* linking to section using numref #1834 attempt 6

* linking to section using numref #1834 attempt 7

* linking to section using numref #1834 attempt 8

* linking to anothre section #1834

* linking to another section #1834

* removing old info #1834

* grammar updates #1834

* grammar updates #1834

* fixing typos #1834

* email changes with Julie #1834

* trying to fix warning #1834

* changes #1834

* Per #1834, updating question titles and answers

* Per #1834, made updates to the content.

* Per #1834, made updates to the content

* Per #1834, made updates to the content

* Per #1834, made some major changes to the first 3 FAQ's. I don't have the time/bandwidth to review these completely at this time, but wanted to include at least these updates.

* testing some of the updates John O. suggested.

* updates John O. suggested take 2 #1834.

* updates John O. suggested take 3 #1834.

* updates John O. suggested take 4 #1834.

* updates John O. suggested take 5 #1834.

* updates John O. suggested.  Some didn't show up even though they've been removed #1834.

* trying to fix numbered list indenting #1834

* fixing numbered list indenting #1834

* cleaning up formatting #1834

* fixing broken links #1834

Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>

* bugfix 1872 plot_tcmpr.R -lookin directory (develop) (#1874)

* Bugfix 1875 develop memory (#1877)

* Per #1875, fix set_cdf_ta() to initialize cdf_ta prior to populating it.

* Per #1875, add debug(4) log messages whenever defining a new aggregation case in stat-analysis.

* Per #1875, switch log messages about new cases from Debug(4) to Debug(3).

* Per #1879, porting the same changes over to the develop branch. (#1881)

* Feature 1673 gbeta (#1857)

* Per #1673, add a distance_map.beta_value entry to all the Grid-Stat config files.

* Per #1673, enhance Grid-Stat to parse the new beta_value option and set its value in the library code.

* Per #1673, set the user-defined beta_value when processing the distance map scores.

* Per #1673, add 4 new DMAP columns write them. Just writing bad data values right now, still need to actually compute them! Also need to update Stat-Analysis to update the parsing/aggregation of these new values.

* Per #1673, enable beta_value to be set to a default bad data value.

* Per #1673 and @ericgilleland instruction (#1673 (comment)), strip asymmetric G-Beta (AGBETA) from the output.

* Per #1673, fix typo that was causing the code not to compile.

* Per #1673, update MET User's Guide about G/GBETA.

* Per #1673, report BETA_VALUE = TOTAL / 2 in the output instead of NA, as directed by Eric.

* Per #1673, remove descriptions of Grid-Stat-specific config options for nbrhd, fourier, gradient, and distance_map from the overview section since they belong in the Grid-Stat chapter. Also add direct links for them in the Grid-Stat chapter.

* Per #1673, do not reset the beta_value in DMAP::clear().

* Per #1673, log the DMAP options only after the beta_value has been determined.

* Per #1673, correct the default beta_value setting as N*N / 2.0.

* Per #1673, trying to format G-beta well.

* Per #1673, trying to format G-beta well.

* Per #1673, beta is formatted as \beta and not \Beta in latex.

* Per #1673, beta is formatted as \beta and not \Beta in latex.

* Per #1673, switch to defining beta_value as a function of the input grid size.

* Per #1673, push initial appendix C updates for GBETA.

* Per #1673, working on G and GBETA equations.

* Per #1673, working on G and GBETA equations.

* Per 1673, update GBETA details in appendix C.

* Per #1673, add Eric's info about selecting beta.

* Per #1673, update reference for Gilleland-2019 to Gilleland_PartI-2020 and Gilleland_PartII-2020.

* Per 1673, fix typo.

* Per #1673, making changes requested by Eric.

* Per #1673, making changes requested by Eric.

* Per #1673, update references based on Eric's feedback.

* Update appendixD.rst (#1869)

Updated this appendix.

* Update appendixD.rst

* Per #1673, making the formatting of Gilleland-2020 part I and II references consistent.

* Per #1673, update Grid-Stat docs to clarify that GBETA is only computed on the FULL verification domain and not any masking regions.

* Per #1673, add DataPlane::n_good_data() function to return a count valid data values.

* Per #1673, update vx_statistics library code to only set gbeta/beta_value to bad data for sub-domains.

* Per #1673, update grid_stat to mask out bad data between the fcst/obs fields before computing distance maps. This will change existing unit test results! Also store the count of valid data values in the full verification domain.

* Per #1673, since GBETA is only reported when VX_MASK = FULL, updating GridStatConfig_all to include the FULL masking region to make this example more meaningful.

Co-authored-by: ericgilleland <34106925+ericgilleland@users.noreply.github.com>

* Feature 1764 point stat (#1885)

* Per #1764 added write_orank_row() to do_hera_ens(). SL

* Per issue #1764, added orank stat type for ensemble output. SL

* Per issue #1764, added code to setup_txt_files() for ORANK output. SL

* Added some comments for debuging. SL

* Per #1764, add orank to the list of outputs created by point_stat.

* Per #1764, add functions to compute the number of requested HiRA probabilities and ensemble members. Also update n_txt_row() to keep track of the number of ORANK rows to be written. Not totally sure if I'm counting these ORANK output lines correctly though.

* Per #1764, update logic in setup_txt_files() to call get_max_n_hira_prob() and get_max_n_hira_ens() functions.

* Per #1764, no real changes. Just fixing spacing.

* Per issue #1764, cleaned up print (cout) debug statements. SL

* Per issue #1764 added 'orank = NONE' to the config files for compatibility with changes to point_stat for calculating ORANK. SL

* Per issue #1764 added 'orank = STAT' to config file to produce ORANK output lines in point_stat. SL

* Per issue #1764 added content in all relevant sections for ORANK: observation rank statistic. SL

* Added 'orank = NONE' to config file for compatibility with changes to point_stant for ORANK. SL

* Added 'orank = NONE' to config file for compatibility with changes to point_stant for ORANK. SL

* Apply suggestions from code review

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

* Per #1764, no real changes, just fixing indents.

* Per #1764, no real changes, just fixing indents.

* Per #1764, no real changes, just fixing indents.

* Per #1764, putting the docs for VCNT back into its logical order with the other vector line types. The order that they're listed here does not need to match their order in the enumeration in the code.

* Per #1764, fixing a vcnt typo I found in the grid-stat chapter... and making them consistent.

* Per issue #1764: After the call to write_orank_row, added lines to reset the observation begin and end times. SL

* Per #1764, no code changes, just fixing indents.

Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Adding Seth to the NB notification list.

* Bugfix 1886 develop grid_diag (#1888)

* Per #1886, port over the bugfixes from main_v10.0 to develop.

* Per #1886, make grid_diag error out if to_grid is set to FCST or OBS.

* Added additional default labels

* Feature 1870 realtime (#1893)

* Per #1870. add TCPairs config entries for valid_inc, valid_exc, and write_valid.

* Per #1870, removing 2 files I accidentally added.

* Per #1870, add code to parse the new tc_pairs config options.

* Per #1870, unrelated... just fixing spacing.

* Per #1870, update TrackPairInfo/Array classes and tc_pairs application code to use the write_valid option to subset the tracks by requested valid time before writing them.

* Per #1870, update the User's Guide with the new config options. Document valid_inc/valid_exc in the common TC config section and add write_valid to the TC-Pairs chapter.

* Per #1870, move the subset_write_valid() functionality to the library code and support it for both track and probability arrays.

* Per #1870, update unit_tc_pairs.xml with 2 new calls to exercise the new write_valid functionality for both tracks and probabilities.

* Per #1870, correct some typos in the docs... PROBRI and probri should be PROBRIRW and probrirw, resp.

* Per #1870, switching match_points from TRUE back to FALSE after I acciedentally committed that change.

* Per #1870, just fixing indent.

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

* Feature 1788 ssidx (#1892)

* Per #1788, add initial definition of the SSIDX line type.

* Per #1788, add a STAT-Analysis config file for computing the CBS Score. This is currently just a copy of the GO Index.

* Per #1788, add hooks for computing -job cbs_score.

* Per #1788, since we're adding a new SSIDX line type, the columns for that line type replace the job_ss_columns and job_go_columns arrays.

* Per #1788, rename cbs_score to cbs_index per UK Met Office instruction on 7/22/21. This convention is also consistent with the existing go_index and ss_index jobs.

* Per #1788 rename STATAnalysisConfig_CBS_Score to STATAnalysisConfig_CBS_Index

* Per #1788, update Makefile to handle name change.

* Per #1788, add support for SSIDX stat line type.

* Per #1788, define 4 output SSIDX columns.

* Per #1788, define an SSIndexInfo struct for stashing/writing SS Index values.

* Per #1788, write the SSIDX columns. However we don't need to function to write the whole row since it's only written by Stat-Analysis.

* Per #1788, create an AggrSSIndexInfo struct to keep track of unique stat header column input values.

* Per #1788, update the stat-analysis job code to make use of the new structs.

* Per #1788 fix typo.

* Per #1788, remove GO Index defintion from the code comments. That detail belongs elsewhere.

* Per #1788, since coding up the GO Index several CNT and CTC columns have been added. Adding them here to let them be included as part of the Skill Score index computations.

* Per #1788, update check_hdr_str() to print the name of the problematic header columns.

* Per #1788, add a set(one) member function to multiple array classes. This calls clear or erase on the array prior to adding a single element. Add this for StringArray, NumArray, and ThreshArray, and CRCArray.

* Per #1788, update the compute_ss_index() function in stat_analysis to make the code more concise by calling the newly adding singular set functions for arrays.

* Per #1788, add FCST_MODEL and REF_MODEL output columns to the SSIDX line type.

* Per #1788, add a new N_INIT column to the SSIDX line type to report the number of initialization times represented by this skill score. Also define the SSIDXData struct to store the skill score index job output.

* Per #1788, update STATAnalysisJob to explicitly set the job type directly rather than parsing a string.

* Per #1788, major change here adding skill_score_index_job.h/.cc to handle the computation of the skill score indices.

* Per #1788, update stat_analysis source code to make use of the new classes in skill_score_index_job.h/.cc.

* Per #1788, write a log message listing the model initialization times over which the skill score index is computed.

* Per #1788, tweak log message.

* Per #1788, compute n_term as the max lenght of the required arrays.

* Per #1788, drop in the ACTUAL definition of the GO index provide by the DTC AF project team. Also simplify the existing arrays down to lenght one if the value remains constant.

* Per #1788, correct CBS Index config file. Some parameters had 40 elements while others only had 32.

* Per #1788, do not write SSIDX output if there are no valid terms found.

* Per #1788, format the values in the skill score index log messages, replacing -9999 with NA.

* Per #1788, update the get_stat() member functions. For 0 pairs, return bad data for all statistics other than TOTAL.

* Per #1788, working on readability of the warning and error messages.

* Per #1788, define the ss_index_name directly in the STATAnalysis config file to make it really easy to modify.

* Per #1788, store the ss_index_name configuration option in the StatJob class. Also support a command line -ss_index_name option to override the config file value.

* Per #1788, change from name to ss_index_name variable to be a bit more descriptive in the variable names.

* Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.

* Per #1788, simply the skill score index job handling logic a bit. We only need to update the default job once, not twice.:

* Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument."

This reverts commit cde0be0.

* Revert "Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.""

This reverts commit bbfd838.

* Per #1788, I'd pruned too much code from stat_analysis.cc which caused the processing of config file jobs to fail. Fixing that here.

* Per #1788, switch Z0 to L0 to match the sample data for computing CBS Index.

* Per #1788, make it so that cbs_index and go_index work from config file.

* Per #1788, update the documentation for the skill score index changes.

* Per #1788, just move some variable definitions further down since they're only used sometimes.

* Per #1788, make job output description into a numbered section.

* Per #1788, little tweak.

* Per #1788, update the STATAnalysisConfig files to add ss_index_name and hss_ec_value, as needed.

* Per #1788, add new unit tests to exercise recent ss_index changes and update the Stat-Analysis documentation.

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Update met/docs/Users_Guide/stat-analysis.rst

Sorry for the typos! Thanks for catching them.

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

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Per #1788, fix typo in error message.

* Per #1788, fix a bug for ss_index... changing 'add' to 'set'. Also set the line_type seperately for each term, if requested.

* Per #1788, tweak the ss_index logic slightly to make it more efficient. For each input STATLine, instead of checking all the index terms, stop searching after the first match. This assumes that each input line should be used for only one of the terms... and I think that's a pretty reasonable assumption.

* Per #1788, minor tweaks to the STAT-Analysis docs.

* Per #1788, add ss_index_vld_thresh option to existing STAT-Analysis config files.

* Per #1788, add StatAnalysisJob ss_index_vld_thresh entry and parse it from the STAT-Analysis config file.

* Per #1788, update stat_analysis code to check ss_index_vld_thresh setting when computing the skill score index. Also update the Stat-Analysis chapter of the User's Guide.

* Per #1788, tweak one test to exercise a non-default ss_index_vld_thresh value.

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

* #1855 Initialize AllocInc

* 855 call snprintf instead of sprintf

* Avoid the same for loops (SobarQube warns this)

* #1855 Checking the minimum rows (3) for formatting. Initialize left & right array

* #1855 Removed the unreachable return statement

* #1855 Avoide out of index for v_miss

* #1855 Keep buf_size for for-loop (avoid changing it in for loop). The buffer size for strncpy is decided by the targetbuffer size or the input length, not the existing data at the target buffer. The size of existing data at the target buffer is used to erase the previous data

* #1855 Make sure the variuble c has enough data to avoid out of index error

* #1855 nake sure the index is in range (avoid out of index error)

* #1855 Make sure no negative offset for s array

* #1855 Allocated line before calling getline'. Simplify the code to check the first level only. Check pbl_level before provcessing

* #1855 Added m_strlen, m_strcpy, m_strcpy2, and m_strncpy

* #1855 Added m_strlen, m_strcpy, m_strcpy2, and m_strncpy> Check if null pointer

* #1855 Calls m_strcpy intead of strcpy

* #1855 Calls m_strcpy2 intead of strcpy

* #1855 Calls m_strcpy intead of strcpy

* #1855 Removed spaces at the empty line

* Bugfix 1891 gen_vx_mask (#1895)

* Per #1891, tighten up the gen_vx_mask logic a bit. Use a global config for the default NC compression level. Then read the input and mask fields using local variables instead of the global one to ensure they don't affect eachother. Also took the opportunity to refine the logic so that we only create a mtddf object in one spot, in the get_data_plane() function.

* Per #1891, add a new test in unit_gen_vx_mask.xml that fails prior to #1891 and succeeds with these changes.

* Per #1891, file name typo in unit_gen_vx_mask.xml.

* #1855 sonarqube: replaced strlen to m_strlen

* #1855 sonarqube: replaced strcpy to m_strcpy

* #1855 sonarqube: replaced strlen to m_strlen

* #1855 sonarqube: replaced strlen to m_strlen

* #1855 sonarqube: replaced strlen to m_strlen

* #1855 Replaced strncpy to m_strncpy and enhance m_strcpy & m_strncpy (#1901)

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

* #1855 Turn off new strcpy functions

* #1855 Corretced typo (arguments were swapped at MetPythonDataFile::open)

* #1855 Make sure the to_str is null terminated after strncpy

* Feature 1827 v10.1.0 beta2 (#1902)

* Per #1827, updated release notes

* Per #1827, Added extra ~ under header

* Update met/docs/Users_Guide/release-notes.rst

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

* Update met/docs/Users_Guide/release-notes.rst

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

* Update met/docs/Users_Guide/release-notes.rst

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

* Per #1827, rereferenced GitHub issue number

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

* #1903 Added str_wrappers.cc & str_wrappers.h. They are moved from string_fxns

* #1903 Added enum_to_string.h. They are moved from enum_to_string.cc

* #1903 Moved include statements to the top. Included enum_to_string.h & str_wrappers.h. Changed 0 to NULL to reset the pointer

* #1903 Moved m_strXXX to str_wrappers. Includes str_wrappers.h instead of string_fxns.h

* #1903 Changed strXXX to m_strXXX

* #1903 Chaged dst_info to const

* #1903 Separated two || conditions to avoid potential side effect

* #1903 Avoid the negative offset if the string length is 0

* #1903 make sure the pointer is not NULL before releasing

* #1903 Replaced strXXX to m_strXXX. Separated two || conditions to avoid the potential side effects

* #1903 Allow to truncate the string on calling m_strncpy

* #1903 Replaced strXXX calls to m_strXXX

* #1903 Avoid the negative offset if the string length is 0

* Separated third AND condition to avoid a possible side effect (assigned lead)

* #1903 Renamed import (which is a keyword) to import_image)

* Initialize data at get_filtered_nc_data_2d

* #1903 Initialize r, g, b at dhsv_to_drgb

* Modified to avoid unreachable return statement

* #1903 Separated the second AND condition to avoid a potential side effect (assignment at the second condition)

* #1903 Removed unreachable break (after exit)

* #1903 Removed a unused offset variable

* #1903 Initialize fcst variable

* Renamed module (keyword) to py_module

* Removed the second argument at m_strlen

* #1903 Deleted extra two empty lines

* #1903 Formatting (tab to spaces)

* #1903 mstcpy is changed to m_strcpy2

* Deleted the commented out code

* #1903 Calls sizeof instead of m_strlen at m_strcpy

* #1903 Calls m_strncpy instead of m_strcpy

* #1903 Replaced m_strcpy to m_strncpy

* #1903 Do not use sizeof

* Feature 1912 missing (#1915)

* Per #1912, update logic of Met2dDataFile::process_data_plane(). Rather than returning bad status for a field of all bad data, print a warning message and continue processing.

* Per #1912, fixing typo in error message that I ran into. Doesn't actually apply to this issue.

* Per #1912, making an unrelated change here to fix up the MODE-Analysis log output. It was reporting (nul) for the number of lines being read/kept. Simplify the log messages to print the correct numbers.

* Testing RTD updates

* Added sphinx-panels

* Testing double hyphen change to code-block

* Testing double hyphen change to code-block

* Changed bolding of options to code-blocks

* Feature 1858 obs quality (#1919)

* Per issue #1858: changed parse_conf_obs_qty to parse_conf_obs_qty_inc. Added new function parse_conf_obs_qty_exc. SL

* Per issue #1858: changed conf_key_obs_qty to conf_key_obs_qty_inc. Added conf_key_obs_qty_exc. SL

* Per issue #1858: modified vx_pd.set_obs_qty_filt() to use parse_conf_obs_qty_inc() instead of parse_conf_obs_qty(). SL

* Per issue #1858: added back the original parse_conf_obs_qty() function for backward compatibility. SL

* Per issue #1858: added back config_constants.h for backwards compatibility. SL

* Per issue #1858: added code to read in obs_qty_inc instead of obs_qty. Also added in code for backwards compatibility to check for obs_qty (obs_quality) and use that for obs_qty_inc. SL

* Changed obs_qty_filt to obs_qty_inc_filt. Added obs_qty_exc_filt, including relevant function. SL

* Per issue #1858 added vx_pd.set_obs_qty_exc_filt. SL

* In add_point_obs() added if block to apply obs_qty_exc_filt. SL

* Per issue #1858, in add_point_obs(), cleaned up sections that apply obs_qty_inc and obs_qty_exc filters. Fixed spacing issue. SL

* Per issue #1858 in process_config(), cleaned up sections that set obs_qty_inc_filt and obs_qty_exc_filt. Fixed spacing issue. SL

* Per issue #1858 in process_obs_file() cleaned up code. SL

* Per issue #1858: changed obs_qty_filt to obs_qty_inc_filt. Added obs_qty_exc_filt. Modified add_point_obs() to use obs_qty_exc_filt. SL

* Per issue #1858: in process_config(): added code to set_obs_qty_inc_filt and set_obs_qty_exc_filt. Also added code to check if old obs_quality is being used, if so, set it to obs_qty_inc_filt. SL

* Per issue #1858: in add_point_obs() modified section that applies the obs_qty_inc and obs_qty_exc filters. Combined the if-blocks into one concise if-block that applies both filters. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_inc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: For both the point_stat and ensemble_stat tests: modified tests that use OBS_QTY to use OBS_QTY_INC. Added unit test for OBS_QTY_EXC (obs_quality_exclude). SL

* Per issue #1858: just added comment at top of file indicating what changed. SL

* Per issue #1858: just added comment at top of file indicating what changed. SL

* Per issue #1858: removed parse_conf_obs_qty. Modified parse_conf_obs_qty_inc to check for old 'obs_quality' entry. SL

* Per issue #1858: in process_config(), modified section that calls set_obs_qty_inc_filt...this new function can now handle old 'obs_quality' entry as well as the new 'obs_quality_inc'. SL

* Modified parse_conf_obs_qty_inc and parse_conf_obs_qty_exc. SL

* Per issue #1858: re-updated parse_conf_obs_qty_exc and reverted back to the simplier version of this function. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_inc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc. Added documentation for obs_quality_exc. SL

* Per issue #1858: checking in latest version. Modified section that calls set_obs_qty_inc_filt...this new function can now handle old 'obs_quality' entry as well as the new 'obs_quality_inc'. SL

* Per issue #1858: cleaned up some extra line spaces. SL

* Per #1858, removed the deprecated obs_quality configuration entry from 3 EnsembleStat and 5 PointStat configuration files.

* Per issue #1858: duplicated fcst/obs fields to run/test with both obs_quality_inc and obs_quality_exc. SL

* Per issue #1858: duplicated fcst/obs fields to run/test with both obs_quality_inc and obs_quality_exc. SL

* Per issue #1858. Deleted these files git repository. These were replaced with: PointStatConfig_qty_inc_exc. SL

* Per issue #1858. Deleted these files from the git repository. These were replaced with: EnsembleStatConfig_qty_inc_exc. SL

* Per issue #1858. Deleted these files from the git repository. These were replaced with: PointStatConfig_qty_inc_exc. SL

* Per issue #1858: Modified: Don't need to run separate tests for obs_quality_inc and obs_quality_exc, these are now combined into one test via the updated config files: PointStatConfig_qty_inc_exc and EnsembleStatConfig_qty_inc_exc. SL

* Per #1858, update the logic in parse_conf_obs_qty_inc() to use last_lookup_status(). See forthcoming GitHub issue comment about this.

* Per #1858, tweak the warning message.

* Per #1858, made the existing unit_quality_filter.xml tests a bit more concise. Call Point-Stat and Ensemble-Stat only once each time. But for each, test 3 things: all qty, obs_quality_inc, and obs_quality_exc.

* Per #1858, remove the _ON from the job name since the _OFF has been included in the same configuration.

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

* Feature 1894 pb2nc var all (#1917)

* #1894 Added station ID 14008 to pb2nc_NDAS_var_all unit test

* #1894 Check the existance of the valid data up to 16 levels

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

* Feature 1913 MAX_PBL (#1916)

* #1913 Changed MAX_PBL to 10000. Filter out if the PBL input data is invalid

* #1912 Replaced is_eq to is_bad_data

* #1913 Changed is_eq to is_bad_data

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

* Add bolding the MET version 10.1.0 beta2 release notes to indicate emphasis prior to the METplus Governance meeting.

Co-authored-by: jprestop <jpresto@ucar.edu>
Co-authored-by: Howard Soh <hsoh@kiowa.rap.ucar.edu>
Co-authored-by: hsoh-u <hsoh@ucar.edu>
Co-authored-by: Keith Searight <keith.searight@noaa.gov>
Co-authored-by: Seth Linden <linden@ucar.edu>
Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>
Co-authored-by: lisagoodrich <33230218+lisagoodrich@users.noreply.github.com>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Co-authored-by: ericgilleland <34106925+ericgilleland@users.noreply.github.com>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@kiowa.rap.ucar.edu>
Co-authored-by: Julie Prestopnik <jpresto@seneca.rap.ucar.edu>
JohnHalleyGotway added a commit that referenced this issue Sep 18, 2021
* Update install_met_env.kiowa

Commented out items and added text to description

* #1817 Added to_north argument at two_to_one()

* #1817 Calls two_to_one() with false for the third argument, to_north, if latitude moves north to south

* Feature 1819 automation doc warnings (#1836)

* Removing "/lib" that should not be there.

* #1508 checking stat() methoid returns no error before looking at FILE flag

* Enable PDF creation

* Modify inputenc, fontenc latex_elements

* Fix typo in conf.py

* Replace unicode with ascii

* Replace unicode exponent with math mode

* Change eqnarray to align

* Replace gif images with png for PDF

* Fix png file names

* Escape underscore in variable name in math mode

* Escape underscore in variable name in math mode

* Remove underscores from variables in math mode

* Replace bar with overline in some equations

* Test derefencing underscores in tables

* Test math changes in grid stat

* Test math formatting

* Test math formatting

* #1838 Added log message for lat/lon values

* #1838 Give warning if the first and lat lat/lon is same

* #1838 Support the double data type variable on reading float type values

* Feature 1833 develop discussions (#1849)

* Per #1833, changed references to met_help to Discussions.

* Per #1833, fixed typo and removed an unnecessary word

* #1852 Removed unused nc_buf_size. Make cur and dim to the same size (called API handles 2D or 3D)

* #1852 Check the start and count before calling NetCDF API

* Feature 1746 wavelet stat (#1851)

* For issue #1746 modified code to allow users to pass in an empty list (or NA) for forecast and observation thresholds in order to skip applying the threhsolds, but it will still compute stats with the raw fields. SL

* For issue #1746, added new unit test that uses a config file that has empty lists for the forecast and observation thresholds. SL

* For issue #1746 Added some content related to allowing users to set forecast and observation cat thresholds to an empty list in order to skip the binary masking (and consider all grid-points for stats). SL

* Per #1746, cleaning up for consistent indentation.

* Per #1746, cleaning up for consistent indentation.

* Per #1746, add a revision history note, update the plotting range in the postscript output to be [-n,n] where n is the maximum value of the maximum absolute difference and 1.0, and also fix a bug. When the NA threshold comes AFTER a real threshold, the resulting data and difference values were not being updated.

* Per #1746, change the Wavelet-Stat config file values in the the wvlt_plot dictionary by setting plot_min = plot_max = 0.0. That enables the default logic of the tool to take effect. Choose the plotting range of the wavelet plots as [-n,n], where n is the maximum of 1.0 and the maximum absolute difference.

* Per #1746, used apply_fcst_thresh where it should have been apply_obs_thresh.

* Per issue #1746, modified some content related to users being able to skip applying the categorical threhsolds by putting an empty list or NA in the configuration file. SL

* Per issue #1746 Added some warnings if the forecast threshold is set to NA but the observation threshold is not NA (a numeric threshold) and vice versa. SL

* Per #1746, fix a couple of typos and tweak wording in the wavelet-stat chapter.

* Per #1746, loop over each pair of fcst/obs thresholds to check for inconsistent use of the NA threshold type.

* Per #1746, a bit of code cleanup replacing calls to n_elements() with n() to make the code more concise.

* Per #1746, need to reinitialize apply_fcst_thresh and apply_obs_thresh to true inside the loop since the NA threshold can appear anywhere in the list of thresholds.

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

* Add sphinx.ext.pngmath to conf.py

* Fix typo in conf.py

* Add sphinx.ext.mathjax to conf.py

* Add sphinx.ext.imgmath to conf.py

* Fix typo in conf.py

* Change math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Add sphinx.ext.imgmath to conf.py

* Modify math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Temporarily disable equations with errors

* Update README.md

* Modify math formatting in Appendix C

* Add usepackage{amssymb} to conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Fix warnings in wavelet-stat.rst

* Omit Indices and tables in PDF version of User Guide

* Modify math formatting in Appendix G

* Modify math formatting in Appendix E

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Change release date in conf.py

* #1852 get_string_val: check if 2D variable. Also checking if the variable does not have dimension (#1860)

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

* Feature 1453 create pdf user guide (#1859)

* Enable PDF creation

* Modify inputenc, fontenc latex_elements

* Fix typo in conf.py

* Replace unicode with ascii

* Replace unicode exponent with math mode

* Change eqnarray to align

* Replace gif images with png for PDF

* Fix png file names

* Escape underscore in variable name in math mode

* Escape underscore in variable name in math mode

* Remove underscores from variables in math mode

* Replace bar with overline in some equations

* Test derefencing underscores in tables

* Test math changes in grid stat

* Test math formatting

* Test math formatting

* Add sphinx.ext.pngmath to conf.py

* Fix typo in conf.py

* Add sphinx.ext.mathjax to conf.py

* Add sphinx.ext.imgmath to conf.py

* Fix typo in conf.py

* Change math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Add sphinx.ext.imgmath to conf.py

* Modify math formatting in Appendix C

* Temporarily disable equations with errors in Appendix C

* Remove sphinx.ext.imgmath in conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Temporarily disable equations with errors

* Modify math formatting in Appendix C

* Add usepackage{amssymb} to conf.py

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Modify math formatting in Appendix C

* Fix warnings in wavelet-stat.rst

* Omit Indices and tables in PDF version of User Guide

* Modify math formatting in Appendix G

* Modify math formatting in Appendix E

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Modify math formatting in Appendix G

* Change release date in conf.py

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

* Feature 1853 rps doc (#1861)

* Per #1853, adding RPS docs from Eric.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, work in progress getting the formatting correct.

* Per #1853, adding a manual page break after the ROC image to get it to stay in the right spot.

* Per #1853, backing out last change which didn't make the ROC image stay in the right spot.

* #1855 Removed break after return (SobarQube)

* #1855 Removed break after exit

* 1855 Added return at MetNcPointObsOut::write_to_netcdf

* #1855 Avoid releasing memory twice

* #1855 Removed unused code

* #1855 Corrected syntax error

* #1855 Changed the second call of close() to release _ncFile

* #1855 Deleted break after exit

* #1855 Chamnged while to if

* #1855 Added constructor TCLineCounts and initialized the members

* #1855 Added break statement back for case '-'

* #1855 Check the new size before extending to avoid thereference of the  null pointer

* #1855 Changed count to processed_count for log messages. Initialized variables at get_filtered_nc_data\*()

* #1855 Corected the number of memory copy

* #1855 Exit with an error message if both fgi & bgi are null

* #1855 Clear Lead_Times before extening. Formatting for error messages

* Add definition for the compilation environment on seneca.

* #1855 Extend Lead_Times for new times

* #1855 Removed break after exit

* #1855 define "c" dynamically

* #1855 Move the log message within if statement to avoid dereferencing a null pointer

* Feature 1843 scatter index (#1863)

* Added scatter index variables: SI, SI_BCL, SI_BCU to cnt columns. SL

* Per issue #1843 Added Scatter Index variables (SI, SI_BCL, SI_BCU) to the CNT stat type. SL

* Added Scatter Index (SI, SI_BCL, SI_BCU) to cnt stat type header. SL

* Per issue #1843, added Scatter Index variables to write_cnt_cols(). SL

* Per issue #1843 added Scatter Index (si) to CNTinfo class. SL

* Per issue #1843 added Scatter Index (SI, si) to CNTInfo::get_stat(). SL

* Per issue #1843 added Scatter Index (SI, si) calculation to both versions of compute_cntinfo(). SL

* Per issue #1843, forgot semi-colon after SI calculation, fixed. SL

* Added Scatter Index (si) to some of the clear() and allocate() functions. SL

* Per issue #1843, added Scatter Index (si) to compute_cnt_mean(). SL

* Per issue #1843, added Scatter Index (si) to bootstrap interval calculation and to the CNT write function. SL

* Per issue #1843 added Scatter Index (SI, SI_BCL, SI_BCU) to store_stat_cnt(). SL

* Per issue #1843, in get_stat() moved Scatterd Index (SI) line to be below RMSE for consitency. SL

* Added Scatter Index (SI) to the CNT output format table. SL

* Added Scatter Index (SI) to CNT statistics definitions. SL

* Update appendixC.rst

* Update stat_columns.cc

* Update compute_ci.cc

* Update met_stats.cc

* Per #1843, update write_cntinfo() function. Since we're READING the SI value immediately after the RMSE value when computing CI's, we also need to write SI immediately after RMSE. Otherwise, we'll be computing CI's using the wrong statistics replicates.

* Per #1843, check for divide by zero when computing SI... this could happen if comparing the same input file to itself with Grid-Stat.

* Per #1843, correct definition of SI from RMSE/ME to RMSE/OBAR.

* Per #1843, updated the SI definition to divide by OBAR instead of ME, but forgot to update the divide-by-zero check.

Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: johnhg <johnhg@ucar.edu>

* #1855 Corected typo - compare the numnber of U and V

* #1855 Check if var_info is hull

* #1855 Avoid un-initialized variables: dt at open(), v at lat() & lon(), and local variables at data()

* #1855 Check if ldf is null pointer

* #1855 Removed break after exit

* #1855 Removed break after exit

* Update pcp_combine.cc

* Feature 1864 config urls (#1868)

* Per #1864, remove stale GitHub pages URL for the MET User's Guide.

* Per #1864, found stale GitHub IO links in the issue templates. Should make this same fix in the develop and default branches for all the METplus repos.

* Per #1864, fix stale GitHub IO link in the PR template.

* Move ROC curve in Appendix C

* Crop ROC image for better PDF formatting

* Shrink ROC image for better PDF formatting

* Modify figure alignment in conf.py

* Change text placement for ROC curve figure

* Feature 1834 faq (#1867)

* testing possible new drop-down menus for FAQ

* adding sphinx-panels to extensions to be able to use drop down menus in appendixA

* Per #1834, adding sphinx-panels to requirements.txt to see if that fixes the error

* Per #1834, added sphinx.ext to beginning of sphinx_panels to see if that fixes the error

* Per #1834, remove sphinx.ext and add trailing comma to end of extensions to see if that fixed the error

* Per #1834, added sphinx-panels to pip install command to see if that fixes the error

* Per #1834, added extra space in comment to get docs to build to see if change to documentation.yml will fix an error

* Per #1834, added return character to get rid of warning

* testing dropdown menus #1

* testing dropdown menus #2 removing lines and dotted lines

* testing #3

* testing 4

* fixing numbering, removing 2nd pulldown menu, trying to fix box width

* adding code block in dropdown

* trying to fix width

* trying to fix width with spacing

* trying to fix width with spacing 2nd dropdown

* removing panels

* solved problem, just use dropdown no panels

* adding second dropdown menu

* removing the dropdown menus and fixing the spacing.

* fixing typos

* adding in matched pairs

* adding in formating files for NetCDF and making FILE_IO a header

* fixing spacing

* time slice

* fixing spacing

* UNIX time conversion

* fixing spacing

* fixed-width

* scientific notation

* removing which per Julie P

* adding Gen_Vx_Mask section

* fixing formatting

* changing to numbers

* complex masking region

* neighborhood methods boundaries

* Neighborhood Methods to Compute Fraction

* adding Grid_Stat - How do I use Config File Setup to Read a NetCDF file

* using backticks with asterics

* one more backtick with asterics

* Grid_Stat - What would be an example of Verifying Probabilities

* fixing typos

* What is an example of using Grid-Stat with Regridding and Masking Turned On

* fixing typos

* Grid_Stat - What would be an example of Verifying Probabilities Example2

* trying to fix typos

* trying to fix code-block spacing

* Per #1834, attempting to fix warning.

* How do I use different masks in MET tools using MODE as an example

* trying to fix bullet list

* trying to fix bullet list 2

* trying to fix bullet list 2

* trying to fix bullet list 3

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, attempting formatting changes

* Per #1834, modified formatting, including adding backslashes and removing extra returns in command line calls, and adding indentation for config file notation, and adding a return after each 'A.'

* Per #1834, changed code-block from ini to none to fix formatting

* *Pcp-Combine - What are some examples using -add

* Pcp-Combine -  How do I add and subtract with Pcp-Combine

* Pcp-Combine - How do I Combine 12-hour Accumulated Precipitation from Two Different Initialization Times

* Pcp-Combine - How Do I Correct a Precipitation Time Range

* Pcp-Combine - What Data Formats does MET Read

* Pcp-Combine - How does pass through work

* Pcp_Combine - How do I use -pcprx to run a project faster

* Pcp-Combine - How Do I Enter the Time Format Correctly

* Pcp-Combine - How do I use -subtract

* fixing formatting

* Pcp_Combine - How Do I Use -sum, -add, and -subtract to Achieve Same Accumulation Interval

* Pcp-Combine - What is the difference between -sum vs. -add

* Pcp-Combine - How Do I Select a Specific GRIB Record to Use

* fixing spacing for original text

* Plot-Data-Plane - How Do I Inspect Gen_Vx_Mask Output

* fixing typo

* Plot-Data-Plane - How Do I Specify GRIB Version

* Plot-Data-Plane - last 2 entries

* 2 misc. entries

* fixing typo

* Stat_Analysis - How does -aggregate_stat work

* Stat_Analysis - remaining entries

* fixing typo

* tc-pairs

* tc-stat

* troubleshooting area

* another stat-analysis

* another stat-analysis

* utilities

* fixing dashes

* Per #1834, trying out syntax

* Per #1834, removing added syntax

* fixing returns with bolding

* Per #1834, modified formatting

* adding italics for directories #1834

* replacing code-block ini with none to remove red lettering

* fixing questions to lower case #1834

* linking to section using numref #1834

* linking to section using numref #1834 attempt 2

* linking to section using numref #1834 attempt 3

* linking to section using numref #1834 attempt 4

* linking to section using numref #1834 attempt 5

* linking to section using numref #1834 attempt 6

* linking to section using numref #1834 attempt 7

* linking to section using numref #1834 attempt 8

* linking to anothre section #1834

* linking to another section #1834

* removing old info #1834

* grammar updates #1834

* grammar updates #1834

* fixing typos #1834

* email changes with Julie #1834

* trying to fix warning #1834

* changes #1834

* Per #1834, updating question titles and answers

* Per #1834, made updates to the content.

* Per #1834, made updates to the content

* Per #1834, made updates to the content

* Per #1834, made some major changes to the first 3 FAQ's. I don't have the time/bandwidth to review these completely at this time, but wanted to include at least these updates.

* testing some of the updates John O. suggested.

* updates John O. suggested take 2 #1834.

* updates John O. suggested take 3 #1834.

* updates John O. suggested take 4 #1834.

* updates John O. suggested take 5 #1834.

* updates John O. suggested.  Some didn't show up even though they've been removed #1834.

* trying to fix numbered list indenting #1834

* fixing numbered list indenting #1834

* cleaning up formatting #1834

* fixing broken links #1834

Co-authored-by: Julie.Prestopnik <jpresto@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>

* bugfix 1872 plot_tcmpr.R -lookin directory (develop) (#1874)

* Bugfix 1875 develop memory (#1877)

* Per #1875, fix set_cdf_ta() to initialize cdf_ta prior to populating it.

* Per #1875, add debug(4) log messages whenever defining a new aggregation case in stat-analysis.

* Per #1875, switch log messages about new cases from Debug(4) to Debug(3).

* Per #1879, porting the same changes over to the develop branch. (#1881)

* Feature 1673 gbeta (#1857)

* Per #1673, add a distance_map.beta_value entry to all the Grid-Stat config files.

* Per #1673, enhance Grid-Stat to parse the new beta_value option and set its value in the library code.

* Per #1673, set the user-defined beta_value when processing the distance map scores.

* Per #1673, add 4 new DMAP columns write them. Just writing bad data values right now, still need to actually compute them! Also need to update Stat-Analysis to update the parsing/aggregation of these new values.

* Per #1673, enable beta_value to be set to a default bad data value.

* Per #1673 and @ericgilleland instruction (#1673 (comment)), strip asymmetric G-Beta (AGBETA) from the output.

* Per #1673, fix typo that was causing the code not to compile.

* Per #1673, update MET User's Guide about G/GBETA.

* Per #1673, report BETA_VALUE = TOTAL / 2 in the output instead of NA, as directed by Eric.

* Per #1673, remove descriptions of Grid-Stat-specific config options for nbrhd, fourier, gradient, and distance_map from the overview section since they belong in the Grid-Stat chapter. Also add direct links for them in the Grid-Stat chapter.

* Per #1673, do not reset the beta_value in DMAP::clear().

* Per #1673, log the DMAP options only after the beta_value has been determined.

* Per #1673, correct the default beta_value setting as N*N / 2.0.

* Per #1673, trying to format G-beta well.

* Per #1673, trying to format G-beta well.

* Per #1673, beta is formatted as \beta and not \Beta in latex.

* Per #1673, beta is formatted as \beta and not \Beta in latex.

* Per #1673, switch to defining beta_value as a function of the input grid size.

* Per #1673, push initial appendix C updates for GBETA.

* Per #1673, working on G and GBETA equations.

* Per #1673, working on G and GBETA equations.

* Per 1673, update GBETA details in appendix C.

* Per #1673, add Eric's info about selecting beta.

* Per #1673, update reference for Gilleland-2019 to Gilleland_PartI-2020 and Gilleland_PartII-2020.

* Per 1673, fix typo.

* Per #1673, making changes requested by Eric.

* Per #1673, making changes requested by Eric.

* Per #1673, update references based on Eric's feedback.

* Update appendixD.rst (#1869)

Updated this appendix.

* Update appendixD.rst

* Per #1673, making the formatting of Gilleland-2020 part I and II references consistent.

* Per #1673, update Grid-Stat docs to clarify that GBETA is only computed on the FULL verification domain and not any masking regions.

* Per #1673, add DataPlane::n_good_data() function to return a count valid data values.

* Per #1673, update vx_statistics library code to only set gbeta/beta_value to bad data for sub-domains.

* Per #1673, update grid_stat to mask out bad data between the fcst/obs fields before computing distance maps. This will change existing unit test results! Also store the count of valid data values in the full verification domain.

* Per #1673, since GBETA is only reported when VX_MASK = FULL, updating GridStatConfig_all to include the FULL masking region to make this example more meaningful.

Co-authored-by: ericgilleland <34106925+ericgilleland@users.noreply.github.com>

* Feature 1764 point stat (#1885)

* Per #1764 added write_orank_row() to do_hera_ens(). SL

* Per issue #1764, added orank stat type for ensemble output. SL

* Per issue #1764, added code to setup_txt_files() for ORANK output. SL

* Added some comments for debuging. SL

* Per #1764, add orank to the list of outputs created by point_stat.

* Per #1764, add functions to compute the number of requested HiRA probabilities and ensemble members. Also update n_txt_row() to keep track of the number of ORANK rows to be written. Not totally sure if I'm counting these ORANK output lines correctly though.

* Per #1764, update logic in setup_txt_files() to call get_max_n_hira_prob() and get_max_n_hira_ens() functions.

* Per #1764, no real changes. Just fixing spacing.

* Per issue #1764, cleaned up print (cout) debug statements. SL

* Per issue #1764 added 'orank = NONE' to the config files for compatibility with changes to point_stat for calculating ORANK. SL

* Per issue #1764 added 'orank = STAT' to config file to produce ORANK output lines in point_stat. SL

* Per issue #1764 added content in all relevant sections for ORANK: observation rank statistic. SL

* Added 'orank = NONE' to config file for compatibility with changes to point_stant for ORANK. SL

* Added 'orank = NONE' to config file for compatibility with changes to point_stant for ORANK. SL

* Apply suggestions from code review

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

* Per #1764, no real changes, just fixing indents.

* Per #1764, no real changes, just fixing indents.

* Per #1764, no real changes, just fixing indents.

* Per #1764, putting the docs for VCNT back into its logical order with the other vector line types. The order that they're listed here does not need to match their order in the enumeration in the code.

* Per #1764, fixing a vcnt typo I found in the grid-stat chapter... and making them consistent.

* Per issue #1764: After the call to write_orank_row, added lines to reset the observation begin and end times. SL

* Per #1764, no code changes, just fixing indents.

Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Adding Seth to the NB notification list.

* Bugfix 1886 develop grid_diag (#1888)

* Per #1886, port over the bugfixes from main_v10.0 to develop.

* Per #1886, make grid_diag error out if to_grid is set to FCST or OBS.

* Added additional default labels

* Feature 1870 realtime (#1893)

* Per #1870. add TCPairs config entries for valid_inc, valid_exc, and write_valid.

* Per #1870, removing 2 files I accidentally added.

* Per #1870, add code to parse the new tc_pairs config options.

* Per #1870, unrelated... just fixing spacing.

* Per #1870, update TrackPairInfo/Array classes and tc_pairs application code to use the write_valid option to subset the tracks by requested valid time before writing them.

* Per #1870, update the User's Guide with the new config options. Document valid_inc/valid_exc in the common TC config section and add write_valid to the TC-Pairs chapter.

* Per #1870, move the subset_write_valid() functionality to the library code and support it for both track and probability arrays.

* Per #1870, update unit_tc_pairs.xml with 2 new calls to exercise the new write_valid functionality for both tracks and probabilities.

* Per #1870, correct some typos in the docs... PROBRI and probri should be PROBRIRW and probrirw, resp.

* Per #1870, switching match_points from TRUE back to FALSE after I acciedentally committed that change.

* Per #1870, just fixing indent.

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

* Feature 1788 ssidx (#1892)

* Per #1788, add initial definition of the SSIDX line type.

* Per #1788, add a STAT-Analysis config file for computing the CBS Score. This is currently just a copy of the GO Index.

* Per #1788, add hooks for computing -job cbs_score.

* Per #1788, since we're adding a new SSIDX line type, the columns for that line type replace the job_ss_columns and job_go_columns arrays.

* Per #1788, rename cbs_score to cbs_index per UK Met Office instruction on 7/22/21. This convention is also consistent with the existing go_index and ss_index jobs.

* Per #1788 rename STATAnalysisConfig_CBS_Score to STATAnalysisConfig_CBS_Index

* Per #1788, update Makefile to handle name change.

* Per #1788, add support for SSIDX stat line type.

* Per #1788, define 4 output SSIDX columns.

* Per #1788, define an SSIndexInfo struct for stashing/writing SS Index values.

* Per #1788, write the SSIDX columns. However we don't need to function to write the whole row since it's only written by Stat-Analysis.

* Per #1788, create an AggrSSIndexInfo struct to keep track of unique stat header column input values.

* Per #1788, update the stat-analysis job code to make use of the new structs.

* Per #1788 fix typo.

* Per #1788, remove GO Index defintion from the code comments. That detail belongs elsewhere.

* Per #1788, since coding up the GO Index several CNT and CTC columns have been added. Adding them here to let them be included as part of the Skill Score index computations.

* Per #1788, update check_hdr_str() to print the name of the problematic header columns.

* Per #1788, add a set(one) member function to multiple array classes. This calls clear or erase on the array prior to adding a single element. Add this for StringArray, NumArray, and ThreshArray, and CRCArray.

* Per #1788, update the compute_ss_index() function in stat_analysis to make the code more concise by calling the newly adding singular set functions for arrays.

* Per #1788, add FCST_MODEL and REF_MODEL output columns to the SSIDX line type.

* Per #1788, add a new N_INIT column to the SSIDX line type to report the number of initialization times represented by this skill score. Also define the SSIDXData struct to store the skill score index job output.

* Per #1788, update STATAnalysisJob to explicitly set the job type directly rather than parsing a string.

* Per #1788, major change here adding skill_score_index_job.h/.cc to handle the computation of the skill score indices.

* Per #1788, update stat_analysis source code to make use of the new classes in skill_score_index_job.h/.cc.

* Per #1788, write a log message listing the model initialization times over which the skill score index is computed.

* Per #1788, tweak log message.

* Per #1788, compute n_term as the max lenght of the required arrays.

* Per #1788, drop in the ACTUAL definition of the GO index provide by the DTC AF project team. Also simplify the existing arrays down to lenght one if the value remains constant.

* Per #1788, correct CBS Index config file. Some parameters had 40 elements while others only had 32.

* Per #1788, do not write SSIDX output if there are no valid terms found.

* Per #1788, format the values in the skill score index log messages, replacing -9999 with NA.

* Per #1788, update the get_stat() member functions. For 0 pairs, return bad data for all statistics other than TOTAL.

* Per #1788, working on readability of the warning and error messages.

* Per #1788, define the ss_index_name directly in the STATAnalysis config file to make it really easy to modify.

* Per #1788, store the ss_index_name configuration option in the StatJob class. Also support a command line -ss_index_name option to override the config file value.

* Per #1788, change from name to ss_index_name variable to be a bit more descriptive in the variable names.

* Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.

* Per #1788, simply the skill score index job handling logic a bit. We only need to update the default job once, not twice.:

* Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument."

This reverts commit cde0be0.

* Revert "Revert "Per #1788, since ss_index_name is in the StatJob class we no longer need to pass it around as an argument.""

This reverts commit bbfd838.

* Per #1788, I'd pruned too much code from stat_analysis.cc which caused the processing of config file jobs to fail. Fixing that here.

* Per #1788, switch Z0 to L0 to match the sample data for computing CBS Index.

* Per #1788, make it so that cbs_index and go_index work from config file.

* Per #1788, update the documentation for the skill score index changes.

* Per #1788, just move some variable definitions further down since they're only used sometimes.

* Per #1788, make job output description into a numbered section.

* Per #1788, little tweak.

* Per #1788, update the STATAnalysisConfig files to add ss_index_name and hss_ec_value, as needed.

* Per #1788, add new unit tests to exercise recent ss_index changes and update the Stat-Analysis documentation.

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Update met/docs/Users_Guide/stat-analysis.rst

Sorry for the typos! Thanks for catching them.

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

* Update met/docs/Users_Guide/stat-analysis.rst

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

* Per #1788, fix typo in error message.

* Per #1788, fix a bug for ss_index... changing 'add' to 'set'. Also set the line_type seperately for each term, if requested.

* Per #1788, tweak the ss_index logic slightly to make it more efficient. For each input STATLine, instead of checking all the index terms, stop searching after the first match. This assumes that each input line should be used for only one of the terms... and I think that's a pretty reasonable assumption.

* Per #1788, minor tweaks to the STAT-Analysis docs.

* Per #1788, add ss_index_vld_thresh option to existing STAT-Analysis config files.

* Per #1788, add StatAnalysisJob ss_index_vld_thresh entry and parse it from the STAT-Analysis config file.

* Per #1788, update stat_analysis code to check ss_index_vld_thresh setting when computing the skill score index. Also update the Stat-Analysis chapter of the User's Guide.

* Per #1788, tweak one test to exercise a non-default ss_index_vld_thresh value.

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

* #1855 Initialize AllocInc

* 855 call snprintf instead of sprintf

* Avoid the same for loops (SobarQube warns this)

* #1855 Checking the minimum rows (3) for formatting. Initialize left & right array

* #1855 Removed the unreachable return statement

* #1855 Avoide out of index for v_miss

* #1855 Keep buf_size for for-loop (avoid changing it in for loop). The buffer size for strncpy is decided by the targetbuffer size or the input length, not the existing data at the target buffer. The size of existing data at the target buffer is used to erase the previous data

* #1855 Make sure the variuble c has enough data to avoid out of index error

* #1855 nake sure the index is in range (avoid out of index error)

* #1855 Make sure no negative offset for s array

* #1855 Allocated line before calling getline'. Simplify the code to check the first level only. Check pbl_level before provcessing

* #1855 Added m_strlen, m_strcpy, m_strcpy2, and m_strncpy

* #1855 Added m_strlen, m_strcpy, m_strcpy2, and m_strncpy> Check if null pointer

* #1855 Calls m_strcpy intead of strcpy

* #1855 Calls m_strcpy2 intead of strcpy

* #1855 Calls m_strcpy intead of strcpy

* #1855 Removed spaces at the empty line

* Bugfix 1891 gen_vx_mask (#1895)

* Per #1891, tighten up the gen_vx_mask logic a bit. Use a global config for the default NC compression level. Then read the input and mask fields using local variables instead of the global one to ensure they don't affect eachother. Also took the opportunity to refine the logic so that we only create a mtddf object in one spot, in the get_data_plane() function.

* Per #1891, add a new test in unit_gen_vx_mask.xml that fails prior to #1891 and succeeds with these changes.

* Per #1891, file name typo in unit_gen_vx_mask.xml.

* #1855 sonarqube: replaced strlen to m_strlen

* #1855 sonarqube: replaced strcpy to m_strcpy

* #1855 sonarqube: replaced strlen to m_strlen

* #1855 sonarqube: replaced strlen to m_strlen

* #1855 sonarqube: replaced strlen to m_strlen

* #1855 Replaced strncpy to m_strncpy and enhance m_strcpy & m_strncpy (#1901)

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

* #1855 Turn off new strcpy functions

* #1855 Corretced typo (arguments were swapped at MetPythonDataFile::open)

* #1855 Make sure the to_str is null terminated after strncpy

* Feature 1827 v10.1.0 beta2 (#1902)

* Per #1827, updated release notes

* Per #1827, Added extra ~ under header

* Update met/docs/Users_Guide/release-notes.rst

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

* Update met/docs/Users_Guide/release-notes.rst

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

* Update met/docs/Users_Guide/release-notes.rst

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

* Per #1827, rereferenced GitHub issue number

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

* #1903 Added str_wrappers.cc & str_wrappers.h. They are moved from string_fxns

* #1903 Added enum_to_string.h. They are moved from enum_to_string.cc

* #1903 Moved include statements to the top. Included enum_to_string.h & str_wrappers.h. Changed 0 to NULL to reset the pointer

* #1903 Moved m_strXXX to str_wrappers. Includes str_wrappers.h instead of string_fxns.h

* #1903 Changed strXXX to m_strXXX

* #1903 Chaged dst_info to const

* #1903 Separated two || conditions to avoid potential side effect

* #1903 Avoid the negative offset if the string length is 0

* #1903 make sure the pointer is not NULL before releasing

* #1903 Replaced strXXX to m_strXXX. Separated two || conditions to avoid the potential side effects

* #1903 Allow to truncate the string on calling m_strncpy

* #1903 Replaced strXXX calls to m_strXXX

* #1903 Avoid the negative offset if the string length is 0

* Separated third AND condition to avoid a possible side effect (assigned lead)

* #1903 Renamed import (which is a keyword) to import_image)

* Initialize data at get_filtered_nc_data_2d

* #1903 Initialize r, g, b at dhsv_to_drgb

* Modified to avoid unreachable return statement

* #1903 Separated the second AND condition to avoid a potential side effect (assignment at the second condition)

* #1903 Removed unreachable break (after exit)

* #1903 Removed a unused offset variable

* #1903 Initialize fcst variable

* Renamed module (keyword) to py_module

* Removed the second argument at m_strlen

* #1903 Deleted extra two empty lines

* #1903 Formatting (tab to spaces)

* #1903 mstcpy is changed to m_strcpy2

* Deleted the commented out code

* #1903 Calls sizeof instead of m_strlen at m_strcpy

* #1903 Calls m_strncpy instead of m_strcpy

* #1903 Replaced m_strcpy to m_strncpy

* #1903 Do not use sizeof

* Feature 1912 missing (#1915)

* Per #1912, update logic of Met2dDataFile::process_data_plane(). Rather than returning bad status for a field of all bad data, print a warning message and continue processing.

* Per #1912, fixing typo in error message that I ran into. Doesn't actually apply to this issue.

* Per #1912, making an unrelated change here to fix up the MODE-Analysis log output. It was reporting (nul) for the number of lines being read/kept. Simplify the log messages to print the correct numbers.

* Testing RTD updates

* Added sphinx-panels

* Testing double hyphen change to code-block

* Testing double hyphen change to code-block

* Changed bolding of options to code-blocks

* Feature 1858 obs quality (#1919)

* Per issue #1858: changed parse_conf_obs_qty to parse_conf_obs_qty_inc. Added new function parse_conf_obs_qty_exc. SL

* Per issue #1858: changed conf_key_obs_qty to conf_key_obs_qty_inc. Added conf_key_obs_qty_exc. SL

* Per issue #1858: modified vx_pd.set_obs_qty_filt() to use parse_conf_obs_qty_inc() instead of parse_conf_obs_qty(). SL

* Per issue #1858: added back the original parse_conf_obs_qty() function for backward compatibility. SL

* Per issue #1858: added back config_constants.h for backwards compatibility. SL

* Per issue #1858: added code to read in obs_qty_inc instead of obs_qty. Also added in code for backwards compatibility to check for obs_qty (obs_quality) and use that for obs_qty_inc. SL

* Changed obs_qty_filt to obs_qty_inc_filt. Added obs_qty_exc_filt, including relevant function. SL

* Per issue #1858 added vx_pd.set_obs_qty_exc_filt. SL

* In add_point_obs() added if block to apply obs_qty_exc_filt. SL

* Per issue #1858, in add_point_obs(), cleaned up sections that apply obs_qty_inc and obs_qty_exc filters. Fixed spacing issue. SL

* Per issue #1858 in process_config(), cleaned up sections that set obs_qty_inc_filt and obs_qty_exc_filt. Fixed spacing issue. SL

* Per issue #1858 in process_obs_file() cleaned up code. SL

* Per issue #1858: changed obs_qty_filt to obs_qty_inc_filt. Added obs_qty_exc_filt. Modified add_point_obs() to use obs_qty_exc_filt. SL

* Per issue #1858: in process_config(): added code to set_obs_qty_inc_filt and set_obs_qty_exc_filt. Also added code to check if old obs_quality is being used, if so, set it to obs_qty_inc_filt. SL

* Per issue #1858: in add_point_obs() modified section that applies the obs_qty_inc and obs_qty_exc filters. Combined the if-blocks into one concise if-block that applies both filters. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_inc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: For both the point_stat and ensemble_stat tests: modified tests that use OBS_QTY to use OBS_QTY_INC. Added unit test for OBS_QTY_EXC (obs_quality_exclude). SL

* Per issue #1858: just added comment at top of file indicating what changed. SL

* Per issue #1858: just added comment at top of file indicating what changed. SL

* Per issue #1858: removed parse_conf_obs_qty. Modified parse_conf_obs_qty_inc to check for old 'obs_quality' entry. SL

* Per issue #1858: in process_config(), modified section that calls set_obs_qty_inc_filt...this new function can now handle old 'obs_quality' entry as well as the new 'obs_quality_inc'. SL

* Modified parse_conf_obs_qty_inc and parse_conf_obs_qty_exc. SL

* Per issue #1858: re-updated parse_conf_obs_qty_exc and reverted back to the simplier version of this function. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_exc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc and added obs_quality_inc. SL

* Per issue #1858: replaced obs_quality with obs_quality_inc. Added documentation for obs_quality_exc. SL

* Per issue #1858: checking in latest version. Modified section that calls set_obs_qty_inc_filt...this new function can now handle old 'obs_quality' entry as well as the new 'obs_quality_inc'. SL

* Per issue #1858: cleaned up some extra line spaces. SL

* Per #1858, removed the deprecated obs_quality configuration entry from 3 EnsembleStat and 5 PointStat configuration files.

* Per issue #1858: duplicated fcst/obs fields to run/test with both obs_quality_inc and obs_quality_exc. SL

* Per issue #1858: duplicated fcst/obs fields to run/test with both obs_quality_inc and obs_quality_exc. SL

* Per issue #1858. Deleted these files git repository. These were replaced with: PointStatConfig_qty_inc_exc. SL

* Per issue #1858. Deleted these files from the git repository. These were replaced with: EnsembleStatConfig_qty_inc_exc. SL

* Per issue #1858. Deleted these files from the git repository. These were replaced with: PointStatConfig_qty_inc_exc. SL

* Per issue #1858: Modified: Don't need to run separate tests for obs_quality_inc and obs_quality_exc, these are now combined into one test via the updated config files: PointStatConfig_qty_inc_exc and EnsembleStatConfig_qty_inc_exc. SL

* Per #1858, update the logic in parse_conf_obs_qty_inc() to use last_lookup_status(). See forthcoming GitHub issue comment about this.

* Per #1858, tweak the warning message.

* Per #1858, made the existing unit_quality_filter.xml tests a bit more concise. Call Point-Stat and Ensemble-Stat only once each time. But for each, test 3 things: all qty, obs_quality_inc, and obs_quality_exc.

* Per #1858, remove the _ON from the job name since the _OFF has been included in the same configuration.

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

* Feature 1894 pb2nc var all (#1917)

* #1894 Added station ID 14008 to pb2nc_NDAS_var_all unit test

* #1894 Check the existance of the valid data up to 16 levels

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

* Feature 1913 MAX_PBL (#1916)

* #1913 Changed MAX_PBL to 10000. Filter out if the PBL input data is invalid

* #1912 Replaced is_eq to is_bad_data

* #1913 Changed is_eq to is_bad_data

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

* Add bolding the MET version 10.1.0 beta2 release notes to indicate emphasis prior to the METplus Governance meeting.

* feature 1922 iodas2nc - Removed trailing spaces based on the string length (#1923)

* #1922 Removed trailing spaces based on the string lenth than buffer length

* #1922 Renamed cleanup_hdr_bfr to m_rstrip and moved to str_wrappers.cc

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

Co-authored-by: jprestop <jpresto@ucar.edu>
Co-authored-by: Howard Soh <hsoh@kiowa.rap.ucar.edu>
Co-authored-by: hsoh-u <hsoh@ucar.edu>
Co-authored-by: Keith Searight <keith.searight@noaa.gov>
Co-authored-by: Seth Linden <linden@ucar.edu>
Co-authored-by: Seth Linden <linden@kiowa.rap.ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>
Co-authored-by: lisagoodrich <33230218+lisagoodrich@users.noreply.github.com>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Co-authored-by: ericgilleland <34106925+ericgilleland@users.noreply.github.com>
Co-authored-by: John Halley Gotway <johnhg@kiowa.rap.ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@kiowa.rap.ucar.edu>
Co-authored-by: Julie Prestopnik <jpresto@seneca.rap.ucar.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MET: Library Code requestor: DTC/AF V&V Air Force Verification and Validation Project required: FOR DEVELOPMENT RELEASE Required to be completed in the development release for the assigned project type: enhancement Improve something that it is currently doing
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

4 participants