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

Update develop-ref after #2067 #2080

Merged
merged 176 commits into from
Mar 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
9437447
Per #1906, modify code to pass entire path to make_temp_file_name ins…
jprestop Oct 26, 2021
8c446ff
Feature 1761 percent thresh (#1956)
sethlinden Nov 3, 2021
d60924c
Feature 1905 ens_ctrl (#1955)
JohnHalleyGotway Nov 3, 2021
3b13ce1
Hotfix after merging changing for #1761. Updating the list of expecte…
JohnHalleyGotway Nov 3, 2021
5131042
Per #1905, committing a hotfix directly to the develop branch. Revert…
JohnHalleyGotway Nov 3, 2021
4ff28d1
Feature 1957 ascii2nc_python (#1958)
JohnHalleyGotway Nov 4, 2021
aee6269
Feature 1949 cf netcdf documentaton (#1951)
hsoh-u Nov 15, 2021
867360f
Feature 1968 ens_ctrl (#1969)
JohnHalleyGotway Nov 15, 2021
0990061
Feature 1809 gen prob (#1967)
JohnHalleyGotway Nov 16, 2021
1663bb6
Merge branch 'develop-ref' into develop
JohnHalleyGotway Nov 16, 2021
13996c2
Feature 1970 v10.1.0-beta4 (#1973)
JohnHalleyGotway Nov 16, 2021
dae9db7
Fix tiny typo in plot_data_plane usage statement.
JohnHalleyGotway Nov 17, 2021
9bd9946
Hotfix for the develop branch to get met-10.1.0-beta4 compiling on WC…
JohnHalleyGotway Nov 17, 2021
e0b659d
Updating the beta4 release date from 11/16 to 11/17 since the beta4 r…
JohnHalleyGotway Nov 17, 2021
817d9db
Update the MET PR template to list expected changes up front.
JohnHalleyGotway Nov 19, 2021
4e28ae7
Bugfix 1976 develop cdist (#1979)
JohnHalleyGotway Nov 22, 2021
6d16e23
Merge branch 'develop-ref' into develop
JohnHalleyGotway Nov 23, 2021
39a5233
#1936 Excludes precip3hr, precip6hr, precip12hr, and precip10min from…
Nov 29, 2021
c9434e8
Per #1985, correcting typo found while creating V10.0.1 in the develo…
JohnHalleyGotway Dec 1, 2021
84f8c7f
Per #1985, VERY minor change to fix alignment of titles in Point-Stat…
JohnHalleyGotway Dec 1, 2021
d35190e
#1936 Added an unit test for newer MESONET file
Dec 1, 2021
f81d250
Merge pull request #1984 from dtcenter/feature_1936_madis_nc2
hsoh-u Dec 2, 2021
8c29f09
Feature 1989 sort (#1990)
JohnHalleyGotway Dec 13, 2021
b93f4ea
Feature 1991 VCNT (#1992)
JohnHalleyGotway Dec 13, 2021
49fb555
Feature 1993 grid_mask (#1994)
JohnHalleyGotway Dec 13, 2021
dd0a68b
#1844 Added vx_pointdata_python
Dec 28, 2021
2b61506
#1844 Added vx_pointdata_python to PYTHON_LIBS & make file for vx_poi…
Dec 28, 2021
b4a4e18
#1844 Added vx_pointdata_python to SUBDIRS
Dec 28, 2021
ba9f81e
#1844 Initial release
Dec 28, 2021
abef2b7
#1844 Added met_point_data.cc & met_point_data.h
Dec 28, 2021
6c36d79
#1844 NcHeaderData is renamed to MetPointHeader and moved to met_poin…
Dec 28, 2021
3f0de5e
#1844 NcPointObsData is derived from MetPointObsData. Many methods ar…
Dec 28, 2021
6c50d50
#1844 Moved varianbles and methods to the base class MetPointData
Dec 28, 2021
0d7b731
#1844 override the obs_data pointer to the derived class
Dec 28, 2021
b053f71
#1844 Added pyobject_as_bool & pyobject_as_string_array
Dec 28, 2021
0ecea6e
#1844 Cleanup include statements and addpointdata_python.h if python …
Dec 28, 2021
e397fa1
#18443 Support python embedding
Dec 28, 2021
315d3b4
#1844 Initial release
Dec 28, 2021
95a65ed
#1844 Make buf_size const
Dec 29, 2021
e900334
Add GitHub Actions workflow to trigger METplus testing workflow (#2002)
georgemccabe Jan 5, 2022
1c981f4
changed names of inputs to send to METplus to match changes to METplu…
georgemccabe Jan 5, 2022
0273cf1
#1965 Excludes the duplicated variable names from multiple input files
Jan 7, 2022
ab1199b
#1965 Processed with the raw variable names and update them when the …
Jan 11, 2022
d5cc7b1
#1965 Added unit test ioda2nc_same_input
Jan 11, 2022
e48c5ff
#1965 Processed with the raw variable names and update them when the …
Jan 11, 2022
5617aa2
#1965 Added unit test ioda2nc_same_input
Jan 11, 2022
ee76143
#1965 initialize var_idx
hsoh-u Jan 12, 2022
1e97085
Merge pull request #2006 from dtcenter/feature_1965_ioda2nc_same_input
hsoh-u Jan 12, 2022
acbb7b9
Update the development environment for seneca to add /usr/local/nco/b…
Jan 12, 2022
717dd17
Merge branch 'develop' of https://github.com/dtcenter/MET into develop
JohnHalleyGotway Jan 12, 2022
58988bf
send email address of user who triggered event to METplus workflow as…
georgemccabe Jan 12, 2022
5632c5c
Merge branch 'develop' of github.com:dtcenter/MET into develop
georgemccabe Jan 12, 2022
b267883
Fixup the Rscript diffing logic to support running the nightly build …
JohnHalleyGotway Jan 12, 2022
d7eb8e4
Merge branch 'develop' of https://github.com/dtcenter/MET into develop
JohnHalleyGotway Jan 12, 2022
96536f5
No real changes here. Just formatting
Jan 12, 2022
fa41760
Feature 1974 message_type_group_map (#1999)
hsoh-u Jan 12, 2022
551f92b
Feature 1996 uninitialized variables (#2004)
hsoh-u Jan 12, 2022
39d7e6f
Merge remote-tracking branch 'origin/develop' into feature_1844_pytho…
Jan 12, 2022
dbc7d10
Feature 1695 ensemble single file (gen_ens_prod) (#2001)
georgemccabe Jan 12, 2022
be7910e
Feature 1965 NB faile with time summary by ioda2nc (#2008)
hsoh-u Jan 12, 2022
1e13dea
Feature 1810 shapes (#2005)
JohnHalleyGotway Jan 13, 2022
edd61fd
#1844 Added log message for use_var_id
Jan 13, 2022
6cae6b5
#1844 Get use_var_id for python embedding
Jan 13, 2022
aaa1010
#1844 Initial release
Jan 13, 2022
adf4928
#1844 Added met_point_obs.py and read_met_point_obs.py
Jan 13, 2022
0640d8d
#1844 Added 4 unit test for python embedding of MET point data
Jan 13, 2022
9483487
Merge remote-tracking branch 'origin/develop' into feature_1844_pytho…
Jan 13, 2022
37f4f32
More changes to test_util.R to account for differences between 4.7.0 …
JohnHalleyGotway Jan 13, 2022
36761b6
Fix merge conflict
JohnHalleyGotway Jan 13, 2022
4f57edd
#1844 Added python embedding for point observation data
Jan 13, 2022
27925d8
Merge remote-tracking branch 'origin/develop' into feature_1844_pytho…
Jan 13, 2022
de81526
Feature 1926 gridstat openmp (#1977)
mo-mglover Jan 13, 2022
e96a211
feature 1695 ensemble single file (ensemble_stat) (#2007)
georgemccabe Jan 14, 2022
032456b
Committing directly to the develop branch. Removing many, many instan…
JohnHalleyGotway Jan 14, 2022
ee4a3a4
feature 2011 v10.1.0-beta5 (#2014)
JohnHalleyGotway Jan 15, 2022
18ccf3a
feature 1695 fix issues with ensemble changes (#2012)
georgemccabe Jan 15, 2022
634806e
Merge branch 'develop-ref' into develop
JohnHalleyGotway Jan 15, 2022
e9df2fc
Hotfix for #1695 committed directly to the develop branch. The new En…
JohnHalleyGotway Jan 16, 2022
e75fe46
Merge branch 'develop-ref' into develop
JohnHalleyGotway Jan 17, 2022
65539e1
Adding George to email list for the nightly build.
JohnHalleyGotway Jan 18, 2022
ee621eb
Merge branch 'develop' into feature_1844_python_embedding
JohnHalleyGotway Jan 18, 2022
7c18231
Fix the links for the met-10.1.0-beta5 release notes.
JohnHalleyGotway Jan 20, 2022
3bd3cb3
Merge remote-tracking branch 'origin/develop' into feature_1844_pytho…
Jan 20, 2022
b8e0de3
#1844 Make met_point_obs as abstract class
Jan 21, 2022
29d479f
#1844 correctedb for loop end condition on processing obs bdata
Jan 21, 2022
333419c
Feature 1546 unit_tests (#2021)
JohnHalleyGotway Jan 24, 2022
b177c3b
#2020 Added SonarQube related varibales
Jan 25, 2022
11daa46
#2020 Initial release
Jan 25, 2022
89642fc
#2015 Avoid the repeasted debug message if derived varibales are disa…
Jan 25, 2022
6b9b411
#1996 Initialize right and left
Jan 25, 2022
b606312
#1966 Call clear() instead of reset memory for Header variable
Jan 25, 2022
4142c48
#1966 Make sure the levels from variable does not exceed the maxLevel
Jan 25, 2022
c4f5a1b
#1966 Removed unreachable codes
Jan 25, 2022
4226cbe
#1966 Do not write into NetcDF if empty data
Jan 25, 2022
dd9c46c
Merge branch 'develop' into feature_1844_python_embedding
JohnHalleyGotway Jan 25, 2022
7aaddba
Merge pull request #2010 from dtcenter/feature_1844_python_embedding
hsoh-u Jan 26, 2022
587b936
#2015 Corrected "retained or derived" count
Jan 27, 2022
cfb4759
Merge pull request #2024 from dtcenter/feature_2020_run_sonarqube
hsoh-u Jan 27, 2022
80f79fd
Merge pull request #2026 from dtcenter/feature_2015_pb2nc_debug_message
hsoh-u Jan 27, 2022
3097278
Feature 1546 CI testing (#2029)
georgemccabe Jan 27, 2022
d9447e9
Merge branch 'develop-ref' into develop
JohnHalleyGotway Jan 27, 2022
42ca71a
fixed broken workflow by setting environment variable expected for do…
georgemccabe Jan 27, 2022
5939357
add missing docker tag from push command
georgemccabe Jan 27, 2022
1e7551f
added correct docker tag value
georgemccabe Jan 27, 2022
afe0ad4
fixed incorrect truth data version for updating -ref reference data
georgemccabe Jan 27, 2022
6e1e209
Merge branch 'develop-ref' into develop
georgemccabe Jan 27, 2022
555494b
Updating develop with changes to the unit tests names. Renaming unit_…
JohnHalleyGotway Jan 28, 2022
ece4c3a
fixed directory to copy truth data into -- copy command was copying t…
georgemccabe Jan 28, 2022
afdf9db
git push origin develop0;136;0cMerge branch 'develop-ref' into develop
georgemccabe Jan 28, 2022
82d45a9
Per #1907, added warning about switch from Ensemble-Stat to Gen-Ens-P…
jprestop Jan 31, 2022
5dfcf5b
2028 Check null for header data
Feb 1, 2022
c767e8f
Removed un-reachable code
Feb 1, 2022
310c236
#2028 Check if the pointer (d) is null
Feb 1, 2022
fa5badf
#2015 Changed warning to debug message
Feb 1, 2022
df00576
#2028 Passing two dimensionl cur and dim array
Feb 1, 2022
206f74a
#2028 Set obs_data
Feb 2, 2022
4da5850
Merge pull request #2035 from dtcenter/feature_2028_madis2nc_profiler_qc
hsoh-u Feb 2, 2022
917c300
Feature 2003 briercl (#2034)
JohnHalleyGotway Feb 2, 2022
abdc436
do not run testing workflow if changes are isolated to the met/docs d…
georgemccabe Feb 3, 2022
4a31d4f
Per #2013, changed source and README. ci-run-unit (#2039)
davidalbo Feb 3, 2022
872e2e4
Feature 1055 read rot latlon (#2041)
JohnHalleyGotway Feb 8, 2022
221e148
Merge branch 'develop-ref' into develop
JohnHalleyGotway Feb 8, 2022
6ec6e71
#2044 Renamed obs_prefbufr_map to obs_prepbufr_map (typo)
Feb 9, 2022
b4ec7b8
#1996 Initialize i_point
Feb 9, 2022
fa3896d
#2044 Corrected config key for obs_prefbufr_map and give a warning fo…
Feb 10, 2022
9c45689
CI: output summary of differences in GHA log to easily see results wi…
georgemccabe Feb 10, 2022
b2e7276
#2027 Added a debug message
Feb 10, 2022
c9ba6f1
#2027 ci-run-unit Changed wind thres
Feb 10, 2022
6cd0b12
Merge remote-tracking branch 'origin/develop' into feature_2027_grid_…
Feb 10, 2022
c1b2022
#2027 ci-run-unit Increased the precision to debug message
Feb 10, 2022
47bfef6
print end of script after error summary, ci-run-unit
georgemccabe Feb 10, 2022
348d05e
#2027 Increased the buffer and cheking the status of sprintf
Feb 10, 2022
e9e5a52
Merge branch 'feature_2027_grid_stat_wind_direction' of github.com:dt…
Feb 10, 2022
a79cd9b
Feature 1998 standard sections (#2038)
lisagoodrich Feb 11, 2022
f4e1f7f
#2044 parse_conf_obs_bufr_map is moved to pb2nc_conf_info.c
Feb 11, 2022
3b88ab1
#2044 parse_conf_obs_bufr_map is moved to pb2nc_conf_info.c
Feb 11, 2022
4020d35
#2044 Changed debiug level for PBL
Feb 11, 2022
42aad8a
#2044 ci-run-unit Give warning if bad connfig key is used
Feb 11, 2022
ceacf2a
Update met_stats.cc
hsoh-u Feb 11, 2022
5437e5f
Update met_stats.cc
JohnHalleyGotway Feb 11, 2022
67b484c
Feature 2040 parse timing (#2048)
JohnHalleyGotway Feb 11, 2022
0f25d3c
Merge pull request #2047 from dtcenter/feature_2027_grid_stat_wind_di…
hsoh-u Feb 11, 2022
ae13219
#2033 ci-run-test Initial release
Feb 11, 2022
1d56b26
CI: Add logic to auto update input data (#2046)
georgemccabe Feb 11, 2022
39a50c1
Bugfix 2045 develop hira (#2049)
JohnHalleyGotway Feb 11, 2022
ce3582d
#2044 ci-run-test merge again
Feb 11, 2022
fd95301
Feature 2040 patch (#2053)
JohnHalleyGotway Feb 15, 2022
1852dae
For #2044, fix a typo in PB2NCConfig_G212. A commented out obs_bufr_v…
JohnHalleyGotway Feb 17, 2022
6b2134d
Merge pull request #2050 from dtcenter/feature_2044_pb2nc_config
hsoh-u Feb 17, 2022
418ebe7
print docker build log to GHA log if build fails
georgemccabe Feb 18, 2022
0d04d0d
Feature 1824 pb2nc mlcape (#2057)
hsoh-u Feb 18, 2022
a2a7372
Feature 1583 es hira (#2056)
JohnHalleyGotway Feb 18, 2022
e1160cf
Merge branch 'develop-ref' into develop
JohnHalleyGotway Feb 19, 2022
10ca15c
#1824 ci-run-test Reset itype to 1 for regular CAPE
Feb 19, 2022
fd9e63c
Merge pull request #2060 from dtcenter/feature_1824_pb2nc_MLCAPE2
hsoh-u Feb 20, 2022
6b78a89
SonarQube: check if pd_ptr is null
Feb 22, 2022
1d58705
#1824 Initialize cape_cnt_surface_msgs
Feb 22, 2022
946e4ec
ci-run-test Removed trailing spaces
Feb 22, 2022
f74ac2a
Modified the PR template to add review of the source issue metadata c…
Feb 22, 2022
2c4e4af
feature_2054_helpEmailChanges (#2064)
davidalbo Feb 23, 2022
ba71e4c
Merge pull request #2065 from dtcenter/feature_1824_pb2nc_MLCAPE2
hsoh-u Feb 23, 2022
36bdf26
Feature set job controls (#2066)
jprestop Feb 23, 2022
ab26b48
Feature 1918 std climo (#2061)
JohnHalleyGotway Feb 23, 2022
005da64
Merge branch 'develop-ref' into develop
JohnHalleyGotway Feb 24, 2022
30ad6b6
Feature 2070 obs_prepbufr_map (#2071)
JohnHalleyGotway Feb 24, 2022
eccbb38
#1996 simplify the retrun statement (no effect with tf_left at the se…
Feb 25, 2022
37aef73
#1996 Add null terminator only if the pointer is not NULL
Feb 25, 2022
543370e
#1996 Reduced duplicated for loops
Feb 25, 2022
4471c4a
#1996 Removed IsSet which is defined at the base class
Feb 25, 2022
c5a80d5
#1996 Initialize the variable
Feb 25, 2022
40569ff
#1996 ci-run-test Initialize the variable, nxy
Feb 25, 2022
b55b5c9
Merge branch 'develop' into feature_1996_sonarqube_findings2
JohnHalleyGotway Mar 1, 2022
7d63e0f
Merge pull request #2073 from dtcenter/feature_1996_sonarqube_findings2
hsoh-u Mar 1, 2022
107ac32
Feature 1918 climo_ens_member_id (#2075)
JohnHalleyGotway Mar 2, 2022
2eb1158
Merge branch 'develop-ref' into develop
JohnHalleyGotway Mar 2, 2022
514c0c3
Feature 1259 es_prob_stats (#2067)
JohnHalleyGotway Mar 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 34 additions & 19 deletions met/data/config/EnsembleStatConfig_default
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ obtype = "ANALYS";

//
// Verification grid
// May be set separately in each "field" entry
//
regrid = {
to_grid = NONE;
Expand All @@ -39,7 +38,7 @@ regrid = {
////////////////////////////////////////////////////////////////////////////////

//
// May be set separately in each "field" entry
// May be set separately in each "ens.field" entry
//
censor_thresh = [];
censor_val = [];
Expand Down Expand Up @@ -98,6 +97,21 @@ nmep_smooth = {

////////////////////////////////////////////////////////////////////////////////

//
// May be set separately in each "fcst.field" and "obs.field" entry
//
prob_cat_thresh = [];

//
// May be set separately in each "fcst.field" entry
//
prob_pct_thresh = [ ==0.25 ];

//
// May be set separately in each "obs.field" entry
//
eclv_points = 0.05;

//
// Forecast and observation fields to be verified
//
Expand All @@ -117,16 +131,16 @@ obs = fcst;
// Point observation filtering options
// May be set separately in each "obs.field" entry
//
message_type = [ "ADPUPA" ];
sid_inc = [];
sid_exc = [];
obs_thresh = [ NA ];
obs_quality_inc = [];
obs_quality_exc = [];
duplicate_flag = NONE;
obs_summary = NONE;
obs_perc_value = 50;
skip_const = FALSE;
message_type = [ "ADPUPA" ];
sid_inc = [];
sid_exc = [];
obs_thresh = [ NA ];
obs_quality_inc = [];
obs_quality_exc = [];
duplicate_flag = NONE;
obs_summary = NONE;
obs_perc_value = 50;
skip_const = FALSE;

//
// Observation error options
Expand Down Expand Up @@ -160,12 +174,6 @@ message_type_group_map = [
ens_ssvar_bin_size = 1.0;
ens_phist_bin_size = 0.05;

//
// Categorical thresholds to define ensemble probabilities
// May be set separately in each "fcst.field" entry
//
prob_cat_thresh = [];

////////////////////////////////////////////////////////////////////////////////

//
Expand Down Expand Up @@ -199,6 +207,8 @@ climo_stdev = {
climo_cdf = {
cdf_bins = 10;
center_bins = FALSE;
write_bins = TRUE;
direct_prob = FALSE;
}

////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -238,7 +248,7 @@ ci_alpha = [ 0.05 ];
interp = {
field = BOTH;
vld_thresh = 1.0;
shape = SQUARE;
shape = SQUARE;

type = [
{
Expand All @@ -261,6 +271,11 @@ output_flag = {
orank = NONE;
ssvar = NONE;
relp = NONE;
pct = NONE;
pstd = NONE;
pjc = NONE;
prc = NONE;
eclv = NONE;
}

////////////////////////////////////////////////////////////////////////////////
Expand Down
71 changes: 50 additions & 21 deletions met/docs/Users_Guide/ensemble-stat.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Ensemble forecasts are often created as a set of deterministic forecasts. The en

Typically an ensemble is constructed by selecting a single forecast value from each member for each observation. When the High Resolution Assessment (HiRA) interpolation method is chosen, all of the nearby neighborhood points surrounding each observation from each member are used. Therefore, processing an N-member ensemble using a HiRA neighborhood of size M produces ensemble output with size N*M. This approach fully leverages information from all nearby grid points to evaluate the ensemble quality.

The ensemble relative frequency is the simplest method for turning a set of deterministic forecasts into something resembling a probability forecast. MET will create the ensemble relative frequency as the proportion of ensemble members forecasting some event. For example, if 5 out of 10 ensemble members predict measurable precipitation at a grid location, then the ensemble relative frequency of precipitation will be :math:`5/10=0.5`. If the ensemble relative frequency is calibrated (unlikely) then this could be thought of as a probability of precipitation.
The ensemble relative frequency is the simplest method for turning a set of deterministic forecasts into something resembling a probability forecast. For each categorical threshold (cat_thresh) listed for each field array entry of the ensemble dictionary (ens.field), MET will create the ensemble relative frequency as the proportion of ensemble members forecasting that event. For example, if 5 out of 10 ensemble members predict measurable precipitation at a grid location, then the ensemble relative frequency of precipitation will be :math:`5/10=0.5`. If the ensemble relative frequency is calibrated (unlikely) then this could be thought of as a probability of precipitation.

The neighborhood ensemble probability (NEP) and neighborhood maximum ensemble probability (NMEP) methods are described in :ref:`Schwartz and Sobash (2017) <Schwartz-2017>`. They are an extension of the ensemble relative frequencies described above. The NEP value is computed by averaging the relative frequency of the event within the neighborhood over all ensemble members. The NMEP value is computed as the fraction of ensemble members for which the event is occurring somewhere within the surrounding neighborhood. The NMEP output is typically smoothed using a Gaussian kernel filter. The neighborhood sizes and smoothing options can be customized in the configuration file.

Expand All @@ -36,6 +36,10 @@ The relative position (RELP) is a count of the number of times each ensemble mem

The ranked probability score (RPS) is included in the Ranked Probability Score (RPS) line type. It is the mean of the Brier scores computed from ensemble probabilities derived for each probability category threshold (prob_cat_thresh) specified in the configuration file. The continuous ranked probability score (CRPS) is the average the distance between the forecast (ensemble) cumulative distribution function and the observation cumulative distribution function. It is an analog of the Brier score, but for continuous forecast and observation fields. The CRPS statistic is computed using two methods: assuming a normal distribution defined by the ensemble mean and spread (:ref:`Gneiting et al., 2004 <Gneiting-2004>`) and using the empirical ensemble distribution (:ref:`Hersbach, 2000 <Hersbach-2000>`). The CRPS statistic is included in the Ensemble Continuous Statistics (ECNT) line type, along with other statistics quantifying the ensemble spread and ensemble mean skill.

The Ensemble-Stat tool can derive ensemble relative frequencies and verify them as probability forecasts all in the same run. Note however that these simple ensemble relative frequencies are not actually calibrated probability forecasts. If probabilistic line types are requested (output_flag), this logic is applied to each pair of fields listed in the forecast (fcst) and observation (obs) dictionaries of the configuration file. Each probability category threshold (prob_cat_thresh) listed for the forecast field is applied to the input ensemble members to derive a relative frequency forecast. The probability category threshold (prob_cat_thresh) parsed from the corresponding observation entry is applied to the (gridded or point) observations to determine whether or not the event actually occurred. The paired ensemble relative freqencies and observation events are used to populate an Nx2 probabilistic contingency table. The dimension of that table is determined by the probability PCT threshold (prob_pct_thresh) configuration file option parsed from the forecast dictionary. All probabilistic output types requested are derived from the this Nx2 table and written to the ascii output files. Note that the FCST_VAR name header column is automatically reset as "PROB({FCST_VAR}{THRESH})" where {FCST_VAR} is the current field being evaluated and {THRESH} is the threshold that was applied.

Note that if no probability category thresholds (prob_cat_thresh) are defined, but climatological mean and standard deviation data is provided along with climatological bins, climatological distribution percentile thresholds are automatically derived and used to compute probabilistic outputs.

Climatology data
----------------

Expand Down Expand Up @@ -150,6 +154,7 @@ ____________________
ci_alpha = [ 0.05 ];
interp = { field = BOTH; vld_thresh = 1.0; shape = SQUARE;
type = [ { method = NEAREST; width = 1; } ]; }
eclv_points = [];
sid_inc = [];
sid_exc = [];
duplicate_flag = NONE;
Expand Down Expand Up @@ -301,33 +306,42 @@ ____________________

ens_ssvar_bin_size = 1.0;
ens_phist_bin_size = 0.05;
prob_cat_thresh = [];


Setting up the **fcst** and **obs** dictionaries of the configuration file is described in :numref:`config_options`. The following are some special considerations for the Ensemble-Stat tool.


The **ens** and **fcst** dictionaries do not need to include the same fields. Users may specify any number of ensemble fields to be summarized, but generally there are many fewer fields with verifying observations available. The **ens** dictionary specifies the fields to be summarized while the **fcst** dictionary specifies the fields to be verified.


The **obs** dictionary looks very similar to the **fcst** dictionary. If verifying against point observations which are assigned GRIB1 codes, the observation section must be defined following GRIB1 conventions. When verifying GRIB1 forecast data, one can easily copy over the forecast settings to the observation dictionary using **obs = fcst;**. However, when verifying non-GRIB1 forecast data, users will need to specify the **fcst** and **obs** sections separately.


The **ens_ssvar_bin_size** and **ens_phist_bin_size** specify the width of the categorical bins used to accumulate frequencies for spread-skill-variance or probability integral transform statistics, respectively.

____________________

.. code-block:: none

prob_cat_thresh = [];
prob_pct_thresh = [];


The **prob_cat_thresh** entry is an array of thresholds. It is applied both to the computation of the RPS line type as well as the when generating probabilistic output line types. Since these thresholds can change for each variable, they can be specified separately for each **fcst.field** entry. If left empty but climatological mean and standard deviation data is provided, the **climo_cdf** thresholds will be used instead. If no climatology data is provided, and the RPS output line type is requested, then the **prob_cat_thresh** array must be defined. When probabilistic output line types are requested, for each **prob_cat_thresh** threshold listed, ensemble relative frequencies are derived and verified against the point and/or gridded observations.

The **prob_cat_thresh** entry is an array of thresholds to be applied in the computation of the RPS line type. Since these thresholds can change for each variable, they can be specified separately for each **fcst.field** entry. If left empty but climatological mean and standard deviation data is provided, the **climo_cdf** thresholds will be used instead. If no climatology data is provided, and the RPS output line type is requested, then the **prob_cat_thresh** array must be defined.
The **prob_pct_thresh** entry is an array of thresholds which define the Nx2 probabilistic contingency table used to evaluate probability forecasts. It can be specified separately for each **fcst.field** entry. These thresholds must span the range [0, 1]. A shorthand notation to create equal bin widths is provided. For example, the following setting creates 4 probability bins of width 0.25 from 0 to 1.

.. code-block:: none

prob_cat_thresh = [ ==0.25 ];

__________________

.. code-block:: none

obs_error = {
flag = FALSE;
dist_type = NONE;
dist_parm = [];
inst_bias_scale = 1.0;
inst_bias_offset = 0.0;
flag = FALSE;
dist_type = NONE;
dist_parm = [];
inst_bias_scale = 1.0;
inst_bias_offset = 0.0;
}


Expand All @@ -353,13 +367,18 @@ _________________
.. code-block:: none

output_flag = {
ecnt = NONE;
rps = NONE;
rhist = NONE;
phist = NONE;
orank = NONE;
ssvar = NONE;
relp = NONE;
ecnt = NONE;
rps = NONE;
rhist = NONE;
phist = NONE;
orank = NONE;
ssvar = NONE;
relp = NONE;
pct = NONE;
pstd = NONE;
pjc = NONE;
prc = NONE;
eclv = NONE;
}


Expand All @@ -380,12 +399,22 @@ The **output_flag** array controls the type of output that is generated. Each fl

7. **RELP** for Relative Position Counts

8. **PCT** for Contingency Table counts for derived ensemble relative frequencies

9. **PSTD** for Probabilistic statistics for dichotomous outcomes for derived ensemble relative frequencies

10. **PJC** for Joint and Conditional factorization for derived ensemble relative frequencies

11. **PRC** for Receiver Operating Characteristic for derived ensemble relative frequencies

12. **ECLV** for Economic Cost/Loss Relative Value for derived ensemble relative frequencies

_____________________

.. code-block:: none

ensemble_flag = {
latlon = TRUE;
ensemble_flag = {
latlon = TRUE;
mean = TRUE;
stdev = TRUE;
minus = TRUE;
Expand All @@ -399,7 +428,7 @@ _____________________
nmep = FALSE;
rank = TRUE;
weight = FALSE;
}
}

The **ensemble_flag** specifies which derived ensemble fields should be calculated and output. Setting the flag to TRUE produces output of the specified field, while FALSE produces no output for that field type. The flags correspond to the following output line types:

Expand Down
12 changes: 12 additions & 0 deletions met/docs/Users_Guide/gen-ens-prod.rst
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,18 @@ Each value in the array will replace the text **MET_ENS_MEMBER_ID**.
];
}

This replacement behavior can also be applied to climatology file name entry, in the
climo_mean and climo_stdev dictionaries.

.. code-block:: none

climo_mean = {
file_name = ["/path/to/file/memberMET_ENS_MEMBER_ID-mean.nc"];
}

This substitution method can only be used if **ens_member_ids** has at least one entry
and the **normalize** option is set to **CLIMO_ANOM** or **CLIMO_STD_ANOM**.

**control_id** is a string that is substituted in the same way as the **ens_member_ids** values
to read a control member. This value is only used when the **-ctrl** command line argument is
used. The value should not be found in the **ens_member_ids** array.
Expand Down
Loading