diff --git a/docs/Users_Guide/config_options.rst b/docs/Users_Guide/config_options.rst
index 07b3078396..9a2aab720d 100644
--- a/docs/Users_Guide/config_options.rst
+++ b/docs/Users_Guide/config_options.rst
@@ -58,6 +58,13 @@ The configuration file language supports the following data types:
and 10 and "==1||==2" defines numbers exactly equal to 1 or 2.
* Percentile Thresholds:
+
+ * A threshold type (<, <=, ==, !=, >=, or >), followed by a percentile
+ type description (SFP, SOP, SCP, USP, CDP, or FBIAS), followed by a
+ numeric value, typically between 0 and 100.
+
+ * Note that the two letter threshold type abbreviations (lt, le, eq, ne,
+ ge, gt) are not supported for percentile thresholds.
* Thresholds may be defined as percentiles of the data being processed in
several places:
diff --git a/internal/test_unit/xml/unit_python.xml b/internal/test_unit/xml/unit_python.xml
index b2b1dad44b..4f17952155 100644
--- a/internal/test_unit/xml/unit_python.xml
+++ b/internal/test_unit/xml/unit_python.xml
@@ -274,6 +274,34 @@
+
+ &MET_BIN;/shift_data_plane
+ \
+ PYTHON_NUMPY \
+ &OUTPUT_DIR;/python/shift_data_plane.nc \
+ 'name="&MET_BASE;/python/read_ascii_numpy.py &DATA_DIR_PYTHON;/fcst.txt FCST";' \
+ -from 30 -110 -to 35 -115 \
+ -v 1
+
+
+
+
+
+ &MET_BIN;/shift_data_plane
+ \
+ &DATA_DIR_PYTHON;/fcst.txt \
+ &OUTPUT_DIR;/python/shift_data_plane_input_arg.nc \
+ 'name="&MET_BASE;/python/read_ascii_numpy.py MET_PYTHON_INPUT_ARG FCST"; file_type=PYTHON_NUMPY;' \
+ -from 30 -110 -to 35 -115 \
+ -v 1
+
+
+
+
&MET_BIN;/series_analysis
diff --git a/src/libcode/vx_statistics/ens_stats.cc b/src/libcode/vx_statistics/ens_stats.cc
index d0bcfde0bd..d7c0e2c088 100644
--- a/src/libcode/vx_statistics/ens_stats.cc
+++ b/src/libcode/vx_statistics/ens_stats.cc
@@ -257,9 +257,17 @@ void ECNTInfo::set(const PairDataEnsemble &pd) {
}
}
- // Compute ensemble mean based statistics, if possible
+ // Check if the ensemble mean based statistics were
+ // already computed by Stat-Analysis
+ if(!is_bad_data(pd.me)) {
+ me = pd.me;
+ rmse = pd.rmse;
+ me_oerr = pd.me_oerr;
+ rmse_oerr = pd.rmse_oerr;
+ }
+ // If not, compute them from the pairs, if possible
// HiRA stores the ensemble mean as bad data
- if(!pd.mn_na.is_const(bad_data_double)) {
+ else if(!pd.mn_na.is_const(bad_data_double)) {
// Compute ME and RMSE values
fbar = obar = ffbar = oobar = fobar = 0.0;
diff --git a/src/tools/other/shift_data_plane/shift_data_plane.cc b/src/tools/other/shift_data_plane/shift_data_plane.cc
index d7e85612df..bf05003341 100644
--- a/src/tools/other/shift_data_plane/shift_data_plane.cc
+++ b/src/tools/other/shift_data_plane/shift_data_plane.cc
@@ -20,6 +20,7 @@
// Mod# Date Name Description
// ---- ---- ---- -----------
// 000 11-12-14 Halley Gotway New
+// 001 06-07-22 Halley Gotway MET #2173 Fix python embedding
//
////////////////////////////////////////////////////////////////////////
@@ -50,6 +51,10 @@ using namespace std;
#include "vx_cal.h"
#include "vx_math.h"
+#ifdef WITH_PYTHON
+#include "data2d_python.h"
+#endif
+
////////////////////////////////////////////////////////////////////////
static ConcatString program_name;
@@ -200,17 +205,11 @@ void process_data_file() {
// Populate the VarInfo object using config
vinfo->set_dict(config);
- // Open the input file
- if(!mtddf->open(InputFilename.c_str())) {
- mlog << Error << "\nprocess_data_file() -> can't open file \""
- << InputFilename << "\"\n\n";
- exit(1);
- }
-
// Get the data plane from the file for this VarInfo object
if(!mtddf->data_plane(*vinfo, dp_in)) {
- mlog << Error << "\nprocess_data_file() -> trouble getting field \""
- << FieldString << "\" from file \"" << InputFilename << "\"\n\n";
+ mlog << Error << "\nprocess_data_file() -> "
+ << "trouble getting field \"" << FieldString
+ << "\" from file \"" << InputFilename << "\"\n\n";
exit(1);
}
@@ -253,7 +252,6 @@ void process_data_file() {
mlog << Debug(2) << shift_cs << "\n";
// Shift the data
-
dp_shift = dp_in;
for(x=0; x