diff --git a/met/docs/Users_Guide/appendixF.rst b/met/docs/Users_Guide/appendixF.rst
index e122d6a560..a5e34df338 100644
--- a/met/docs/Users_Guide/appendixF.rst
+++ b/met/docs/Users_Guide/appendixF.rst
@@ -65,7 +65,9 @@ The data must be loaded into a 2D NumPy array named **met_data**. In addition th
'long_name': 'FooBar',
'level': 'Surface',
'units': 'None',
-
+
+ # Define 'grid' as a string or a dictionary
+
'grid': {
'type': 'Lambert Conformal',
'hemisphere': 'N',
@@ -83,12 +85,32 @@ The data must be loaded into a 2D NumPy array named **met_data**. In addition th
'ny': 129,
}
- }
+ }
+
+
+In the dictionary, valid time, initialization time, lead time and accumulation time (if any) must be indicated by strings. Valid and initialization times must be given in YYYYMMDD[_HH[MMSS]] format, and lead and accumulation times must be given in HH[MMSS] format, where the square brackets indicate optional elements. The dictionary must also include strings for the name, long_name, level, and units to describe the data. The rest of the **attrs** dictionary gives the grid size and projection information in the same format that is used in the netCDF files written out by the MET tools. Those entries are also listed below. Note that the **grid** entry in the **attrs** dictionary can either be defined as a string or as a dictionary itself.
+
+If specified as a string, **grid** can be defined as follows:
+
+• As a named grid:
+
+.. code-block:: none
+ 'grid': 'G212'
+
+• As a grid specification string, as described in :ref:`appendixB`:
+
+.. code-block:: none
+
+ 'grid': 'lambert 185 129 12.19 -133.459 -95 40.635 6371.2 25 25 N'
+
+• As the path to an existing gridded data file:
+
+.. code-block:: none
-In the dictionary, valid time, initialization time, lead time and accumulation time (if any) must be indicated by strings. Valid and initialization times must be given in YYYYMMDD[_HH[MMSS]] format, and lead and accumulation times must be given in HH[MMSS] format, where the square brackets indicate optional elements. The dictionary must also include strings for the name, long_name, level, and units to describe the data. The rest of the **attrs** dictionary gives the grid size and projection information in the same format that is used in the netCDF files written out by the MET tools. Those entries are also listed below. Note that the **grid** entry in the **attrs** dictionary is itself a dictionary.
+ 'grid': '/path/to/sample_data.grib'
-The supported grid **type** strings are described below:
+When specified as a dictionary, the contents of the **grid** dictionary vary based on the grid **type** string. The entries for the supported grid types are described below:
• **Lambert Conformal** grid dictionary entries:
diff --git a/met/internal_tests/basic/vx_util/Makefile.am b/met/internal_tests/basic/vx_util/Makefile.am
index 364b846a0b..96afff9e82 100644
--- a/met/internal_tests/basic/vx_util/Makefile.am
+++ b/met/internal_tests/basic/vx_util/Makefile.am
@@ -82,18 +82,30 @@ endif
test_ascii_header_SOURCES = test_ascii_header.cc
test_ascii_header_CPPFLAGS = ${MET_CPPFLAGS}
test_ascii_header_LDFLAGS = -L. ${MET_LDFLAGS}
-test_ascii_header_LDADD = -lvx_util \
+test_ascii_header_LDADD = -lvx_stat_out \
+ -lvx_statistics \
+ -lvx_shapedata \
+ -lvx_gsl_prob \
+ -lvx_analysis_util \
+ -lvx_shapedata \
+ -lvx_util \
+ $(PYTHON_LIBS) \
+ -lvx_statistics \
+ -lvx_data2d_factory \
+ -lvx_data2d_nc_met \
+ -lvx_data2d_nc_pinterp \
+ $(PYTHON_LIBS) \
+ -lvx_data2d_nccf \
+ -lvx_data2d_grib $(GRIB2_LIBS) \
+ -lvx_data2d \
+ -lvx_nc_util \
+ -lvx_regrid \
+ -lvx_grid \
-lvx_config \
-lvx_gsl_prob \
-lvx_cal \
-lvx_util \
-lvx_math \
+ -lvx_color \
-lvx_log \
- -lgsl -lgslcblas
-
-if ENABLE_PYTHON
-test_ascii_header_LDADD += $(MET_PYTHON_LD) -lvx_data2d_python -lvx_python3_utils -lvx_data2d_python -lvx_python3_utils -lvx_math
-test_ascii_header_LDADD += -lvx_data2d_python -lvx_python3_utils -lvx_data2d_python -lvx_python3_utils
-test_ascii_header_LDADD += -lvx_math -lvx_grid -lvx_util -lvx_data2d -lvx_config -lvx_gsl_prob -lvx_cal -lvx_math -lvx_util
-endif
-
+ -lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util
diff --git a/met/internal_tests/libcode/vx_data2d_factory/Makefile.am b/met/internal_tests/libcode/vx_data2d_factory/Makefile.am
index b1d31b3aa4..04a31968c0 100644
--- a/met/internal_tests/libcode/vx_data2d_factory/Makefile.am
+++ b/met/internal_tests/libcode/vx_data2d_factory/Makefile.am
@@ -25,20 +25,27 @@ test_is_grib_LDADD = -lvx_data2d_factory \
test_factory_SOURCES = test_factory.cc
test_factory_CPPFLAGS = ${MET_CPPFLAGS}
test_factory_LDFLAGS = -L. ${MET_LDFLAGS}
-test_factory_LDADD = -lvx_data2d_factory \
+test_factory_LDADD = -lvx_stat_out \
+ -lvx_statistics \
+ -lvx_shapedata \
+ -lvx_gsl_prob \
+ -lvx_analysis_util \
+ -lvx_data2d_factory \
-lvx_data2d_nc_met \
-lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
+ -lvx_regrid \
-lvx_grid \
-lvx_config \
-lvx_gsl_prob \
+ -lvx_cal \
-lvx_util \
-lvx_math \
-lvx_color \
- -lvx_cal \
-lvx_log \
-lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas
diff --git a/met/internal_tests/libcode/vx_nc_util/Makefile.am b/met/internal_tests/libcode/vx_nc_util/Makefile.am
index 13bf6c2bc0..ff40235a5c 100644
--- a/met/internal_tests/libcode/vx_nc_util/Makefile.am
+++ b/met/internal_tests/libcode/vx_nc_util/Makefile.am
@@ -19,21 +19,32 @@ noinst_PROGRAMS = test_pressure_levels
test_pressure_levels_SOURCES = test_pressure_levels.cc
test_pressure_levels_CPPFLAGS = ${MET_CPPFLAGS}
test_pressure_levels_LDFLAGS = -L. ${MET_LDFLAGS}
-test_pressure_levels_LDADD = -lvx_tc_util \
+test_pressure_levels_LDADD = -lvx_stat_out \
+ -lvx_statistics \
+ -lvx_shapedata \
+ -lvx_gsl_prob \
+ -lvx_analysis_util \
+ -lvx_tc_util \
+ -lvx_shapedata \
+ -lvx_util \
+ $(PYTHON_LIBS) \
+ -lvx_statistics \
+ -lvx_data2d_factory \
+ -lvx_data2d_nc_met \
+ -lvx_data2d_nc_pinterp \
+ $(PYTHON_LIBS) \
+ -lvx_data2d_nccf \
+ -lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d \
-lvx_nc_util \
+ -lvx_regrid \
+ -lvx_grid \
-lvx_config \
-lvx_gsl_prob \
-lvx_cal \
-lvx_util \
-lvx_math \
+ -lvx_color \
-lvx_log \
- -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas
+ -lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util
-if ENABLE_PYTHON
-test_pressure_levels_LDADD += $(MET_PYTHON_LD)
-test_pressure_levels_LDADD += -lvx_data2d_python -lvx_python3_utils
-test_pressure_levels_LDADD += -lvx_data2d_python -lvx_python3_utils
-test_pressure_levels_LDADD += -lvx_grid -lvx_util -lvx_config
-test_pressure_levels_LDADD += -lvx_data2d -lvx_gsl_prob -lvx_util -lvx_math -lvx_cal -lvx_config
-endif
diff --git a/met/internal_tests/libcode/vx_tc_util/Makefile.am b/met/internal_tests/libcode/vx_tc_util/Makefile.am
index 2b71de8a9f..a5fc96c5d0 100644
--- a/met/internal_tests/libcode/vx_tc_util/Makefile.am
+++ b/met/internal_tests/libcode/vx_tc_util/Makefile.am
@@ -20,39 +20,64 @@ noinst_PROGRAMS = test_read \
test_read_SOURCES = test_read.cc
test_read_CPPFLAGS = ${MET_CPPFLAGS}
test_read_LDFLAGS = -L. ${MET_LDFLAGS}
-test_read_LDADD = -lvx_tc_util \
+test_read_LDADD = -lvx_stat_out \
+ -lvx_statistics \
+ -lvx_shapedata \
+ -lvx_gsl_prob \
+ -lvx_analysis_util \
+ -lvx_tc_util \
+ -lvx_shapedata \
+ -lvx_util \
+ $(PYTHON_LIBS) \
+ -lvx_statistics \
+ -lvx_data2d_factory \
+ -lvx_data2d_nc_met \
+ -lvx_data2d_nc_pinterp \
+ $(PYTHON_LIBS) \
+ -lvx_data2d_nccf \
+ -lvx_data2d_grib $(GRIB2_LIBS) \
+ -lvx_data2d \
+ -lvx_nc_util \
+ -lvx_regrid \
+ -lvx_grid \
-lvx_config \
-lvx_gsl_prob \
-lvx_cal \
-lvx_util \
-lvx_math \
+ -lvx_color \
-lvx_log \
- -lgsl -lgslcblas
-
-if ENABLE_PYTHON
-test_read_LDADD += $(MET_PYTHON_LD)
-test_read_LDADD += -lvx_data2d_python -lvx_python3_utils
-test_read_LDADD += -lvx_data2d_python -lvx_python3_utils
-test_read_LDADD += -lvx_grid -lvx_util -lvx_config
-test_read_LDADD += -lvx_data2d -lvx_gsl_prob -lvx_util -lvx_math -lvx_cal -lvx_config
-endif
+ -lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util
test_read_prob_SOURCES = test_read_prob.cc
test_read_prob_CPPFLAGS = ${MET_CPPFLAGS}
test_read_prob_LDFLAGS = -L. ${MET_LDFLAGS}
-test_read_prob_LDADD = -lvx_tc_util \
+test_read_prob_LDADD = -lvx_stat_out \
+ -lvx_statistics \
+ -lvx_shapedata \
+ -lvx_gsl_prob \
+ -lvx_analysis_util \
+ -lvx_tc_util \
+ -lvx_shapedata \
+ -lvx_util \
+ $(PYTHON_LIBS) \
+ -lvx_statistics \
+ -lvx_data2d_factory \
+ -lvx_data2d_nc_met \
+ -lvx_data2d_nc_pinterp \
+ $(PYTHON_LIBS) \
+ -lvx_data2d_nccf \
+ -lvx_data2d_grib $(GRIB2_LIBS) \
+ -lvx_data2d \
+ -lvx_nc_util \
+ -lvx_regrid \
+ -lvx_grid \
-lvx_config \
-lvx_gsl_prob \
-lvx_cal \
-lvx_util \
-lvx_math \
+ -lvx_color \
-lvx_log \
- -lgsl -lgslcblas
+ -lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util
-if ENABLE_PYTHON
-test_read_prob_LDADD += $(MET_PYTHON_LD)
-test_read_prob_LDADD += -lvx_data2d_python -lvx_python3_utils
-test_read_prob_LDADD += -lvx_data2d_python -lvx_python3_utils
-test_read_prob_LDADD += -lvx_grid -lvx_util -lvx_config
-test_read_prob_LDADD += -lvx_data2d -lvx_gsl_prob -lvx_util -lvx_math -lvx_cal -lvx_config
-endif
diff --git a/met/internal_tests/tools/other/mode_time_domain/Makefile.am b/met/internal_tests/tools/other/mode_time_domain/Makefile.am
index 2b62114046..693d9de44c 100644
--- a/met/internal_tests/tools/other/mode_time_domain/Makefile.am
+++ b/met/internal_tests/tools/other/mode_time_domain/Makefile.am
@@ -56,6 +56,7 @@ test_velocity_LDADD = \
-lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d_nccf \
-lvx_data2d \
-lvx_nc_util \
@@ -69,3 +70,4 @@ test_velocity_LDADD = \
-lvx_color \
-lvx_log \
-lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz
+
diff --git a/met/scripts/python/Makefile.am b/met/scripts/python/Makefile.am
index b980d2e4ab..78dc7d88bc 100644
--- a/met/scripts/python/Makefile.am
+++ b/met/scripts/python/Makefile.am
@@ -27,6 +27,7 @@ pythonscriptsdir = $(pkgdatadir)/python
pythonscripts_DATA = \
read_ascii_numpy.py \
+ read_ascii_numpy_grid.py \
read_ascii_xarray.py \
read_ascii_point.py \
read_ascii_mpr.py
diff --git a/met/scripts/python/read_ascii_numpy_grid.py b/met/scripts/python/read_ascii_numpy_grid.py
new file mode 100755
index 0000000000..88d868a2ad
--- /dev/null
+++ b/met/scripts/python/read_ascii_numpy_grid.py
@@ -0,0 +1,53 @@
+from __future__ import print_function
+
+import numpy as np
+import os
+import sys
+
+###########################################
+
+print('Python Script:\t', sys.argv[0])
+
+ ##
+ ## input file specified on the command line
+ ## load the data into the numpy array
+ ##
+
+if len(sys.argv) == 3:
+ # Read the input file as the first argument
+ input_file = os.path.expandvars(sys.argv[1])
+ data_name = sys.argv[2]
+ try:
+ # Print some output to verify that this script ran
+ print("Input File:\t" + repr(input_file))
+ print("Data Name:\t" + repr(data_name))
+ met_data = np.loadtxt(input_file)
+ print("Data Shape:\t" + repr(met_data.shape))
+ print("Data Type:\t" + repr(met_data.dtype))
+ except NameError:
+ print("Can't find the input file")
+else:
+ print("ERROR: read_ascii_numpy.py -> Must specify exactly one input file and a name for the data.")
+ sys.exit(1)
+
+###########################################
+
+ ##
+ ## create the metadata dictionary
+ ##
+
+attrs = {
+
+ 'valid': '20050807_120000',
+ 'init': '20050807_000000',
+ 'lead': '120000',
+ 'accum': '120000',
+
+ 'name': data_name,
+ 'long_name': data_name + '_word',
+ 'level': 'Surface',
+ 'units': 'None',
+ 'grid': os.path.expandvars(os.getenv('PYTHON_GRID'))
+}
+
+print("Attributes:\t" + repr(attrs))
diff --git a/met/src/libcode/vx_data2d_python/dataplane_from_numpy_array.cc b/met/src/libcode/vx_data2d_python/dataplane_from_numpy_array.cc
index 7462c20829..61f997a267 100644
--- a/met/src/libcode/vx_data2d_python/dataplane_from_numpy_array.cc
+++ b/met/src/libcode/vx_data2d_python/dataplane_from_numpy_array.cc
@@ -12,6 +12,7 @@
#include "string.h"
#include "vx_python3_utils.h"
+#include "vx_statistics.h"
#include "check_endian.h"
#include "data_plane.h"
@@ -219,9 +220,43 @@ dp_out.set_accum(t);
////////////////////
-PyObject * py_grid = attrs.lookup_dict("grid");
+ //
+ // attempt to parse "grid" as a string
+ //
+
+s = attrs.lookup_string("grid", false);
+
+if ( s.nonempty() ) {
+
+ grid_out = parse_grid_string(s.c_str());
+
+}
+else {
+
+ //
+ // otherwise, parse "grid" as a dictionary
+ //
+
+ PyObject * py_grid = attrs.lookup_dict("grid");
-grid_from_python_dict(Python3_Dict(py_grid), grid_out);
+ grid_from_python_dict(Python3_Dict(py_grid), grid_out);
+
+}
+
+ //
+ // make sure the grid and data dimensions match
+ //
+
+if ( grid_out.nx() != Nx || grid_out.ny() != Ny ) {
+
+ mlog << Error << "\ndataplane_from_numpy_array() -> "
+ << "the grid dimensions (" << grid_out.nx() << ", "
+ << grid_out.ny() << ") and data dimensions (" << Nx
+ << ", " << Ny << ") do not match!\n\n";
+
+ exit ( 1 );
+
+}
////////////////////
diff --git a/met/src/libcode/vx_python3_utils/python3_dict.cc b/met/src/libcode/vx_python3_utils/python3_dict.cc
index 9f6036f801..6d38599aa4 100644
--- a/met/src/libcode/vx_python3_utils/python3_dict.cc
+++ b/met/src/libcode/vx_python3_utils/python3_dict.cc
@@ -220,7 +220,7 @@ return ( t );
////////////////////////////////////////////////////////////////////////
-ConcatString Python3_Dict::lookup_string(const char * key) const
+ConcatString Python3_Dict::lookup_string(const char * key, bool error_out) const
{
@@ -240,14 +240,23 @@ if ( ! a ) {
if ( ! PyUnicode_Check(a) ) {
- mlog << Error << "\nPython3_Dict::lookup_string(const char * key) -> "
- << "value for key \"" << key << "\" not a character string\n\n";
+ if ( error_out ) {
- exit ( 1 );
+ mlog << Error << "\nPython3_Dict::lookup_string(const char * key) -> "
+ << "value for key \"" << key << "\" not a character string\n\n";
+
+ exit ( 1 );
+
+ }
+
+ s.clear();
}
+else {
-s = PyUnicode_AsUTF8(a);
+ s = PyUnicode_AsUTF8(a);
+
+}
return ( s );
diff --git a/met/src/libcode/vx_python3_utils/python3_dict.h b/met/src/libcode/vx_python3_utils/python3_dict.h
index 7ce77d7b05..34cfd803de 100644
--- a/met/src/libcode/vx_python3_utils/python3_dict.h
+++ b/met/src/libcode/vx_python3_utils/python3_dict.h
@@ -68,7 +68,7 @@ class Python3_Dict {
int lookup_int (const char * key) const;
double lookup_double (const char * key) const;
- ConcatString lookup_string (const char * key) const;
+ ConcatString lookup_string (const char * key, bool error_out = true) const;
PyObject * lookup_dict (const char * key) const;
PyObject * lookup_list (const char * key) const;
diff --git a/met/src/libcode/vx_statistics/apply_mask.cc b/met/src/libcode/vx_statistics/apply_mask.cc
index f5ea562630..b97e9272d3 100644
--- a/met/src/libcode/vx_statistics/apply_mask.cc
+++ b/met/src/libcode/vx_statistics/apply_mask.cc
@@ -84,6 +84,51 @@ Grid parse_vx_grid(const RegridInfo info, const Grid *fgrid, const Grid *ogrid)
////////////////////////////////////////////////////////////////////////
+Grid parse_grid_string(const char *grid_str) {
+ Grid grid;
+ StringArray sa;
+
+ // Parse as a white-space separated string
+ sa.parse_wsss(grid_str);
+
+ // Search for a named grid
+ if(sa.n() == 1 && find_grid_by_name(sa[0].c_str(), grid)) {
+ mlog << Debug(3) << "Use the grid named \""
+ << grid_str << "\".\n";
+ }
+ // Parse grid definition
+ else if(sa.n() > 1 && parse_grid_def(sa, grid)) {
+ mlog << Debug(3) << "Use the grid defined by string \""
+ << grid_str << "\".\n";
+ }
+ // Extract the grid from a gridded data file
+ else {
+ mlog << Debug(3) << "Use the grid defined by file \""
+ << grid_str << "\".\n";
+
+ Met2dDataFileFactory m_factory;
+ Met2dDataFile *met_ptr = (Met2dDataFile *) 0;
+
+ // Open the data file
+ if(!(met_ptr = m_factory.new_met_2d_data_file(grid_str))) {
+ mlog << Error << "\nparse_grid_string() -> "
+ << "can't open file \"" << grid_str
+ << "\"\n\n";
+ exit(1);
+ }
+
+ // Store the grid
+ grid = met_ptr->grid();
+
+ // Cleanup
+ if(met_ptr) { delete met_ptr; met_ptr = 0; }
+ }
+
+ return(grid);
+}
+
+////////////////////////////////////////////////////////////////////////
+
void parse_grid_weight(const Grid &grid, const GridWeightType t,
DataPlane &wgt_dp) {
int x, y;
diff --git a/met/src/libcode/vx_statistics/apply_mask.h b/met/src/libcode/vx_statistics/apply_mask.h
index 0ac9aac85e..5e62500d73 100644
--- a/met/src/libcode/vx_statistics/apply_mask.h
+++ b/met/src/libcode/vx_statistics/apply_mask.h
@@ -29,6 +29,8 @@ static const char poly_str_delim[] = "{}";
extern Grid parse_vx_grid(const RegridInfo, const Grid *, const Grid *);
+extern Grid parse_grid_string(const char *);
+
extern void parse_grid_weight(const Grid &, const GridWeightType,
DataPlane &);
diff --git a/met/src/tools/core/ensemble_stat/Makefile.am b/met/src/tools/core/ensemble_stat/Makefile.am
index d7cd14c178..172302f19a 100644
--- a/met/src/tools/core/ensemble_stat/Makefile.am
+++ b/met/src/tools/core/ensemble_stat/Makefile.am
@@ -26,6 +26,7 @@ ensemble_stat_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_obs \
-lvx_nc_util \
diff --git a/met/src/tools/core/grid_stat/Makefile.am b/met/src/tools/core/grid_stat/Makefile.am
index 8db13c50bf..e1451258f0 100644
--- a/met/src/tools/core/grid_stat/Makefile.am
+++ b/met/src/tools/core/grid_stat/Makefile.am
@@ -26,6 +26,7 @@ grid_stat_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/core/mode/Makefile.am b/met/src/tools/core/mode/Makefile.am
index b3260abef1..662dee58ef 100644
--- a/met/src/tools/core/mode/Makefile.am
+++ b/met/src/tools/core/mode/Makefile.am
@@ -39,6 +39,7 @@ mode_LDADD = -lvx_pxm \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/core/mode_analysis/Makefile.am b/met/src/tools/core/mode_analysis/Makefile.am
index 7305ea30a9..182faf29d1 100644
--- a/met/src/tools/core/mode_analysis/Makefile.am
+++ b/met/src/tools/core/mode_analysis/Makefile.am
@@ -8,10 +8,6 @@ MAINTAINERCLEANFILES = Makefile.in
include ${top_srcdir}/Make-include
-if ENABLE_PYTHON
-LDFLAGS += -lvx_python3_utils
-endif
-
# The program
bin_PROGRAMS = mode_analysis
@@ -25,6 +21,9 @@ mode_analysis_LDADD = -lvx_stat_out \
-lvx_gsl_prob \
-lvx_analysis_util \
-lvx_shapedata \
+ -lvx_util \
+ $(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d_factory \
-lvx_data2d_nc_met \
-lvx_data2d_nc_pinterp \
@@ -33,6 +32,7 @@ mode_analysis_LDADD = -lvx_stat_out \
-lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d \
-lvx_nc_util \
+ -lvx_regrid \
-lvx_grid \
-lvx_config \
-lvx_gsl_prob \
@@ -43,9 +43,4 @@ mode_analysis_LDADD = -lvx_stat_out \
-lvx_log \
-lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util
-if ENABLE_PYTHON
-mode_analysis_LDADD += $(MET_PYTHON_LD) -lvx_data2d_python -lvx_python3_utils -lvx_data2d_python -lvx_python3_utils -lvx_util
-endif
-
-
EXTRA_DIST = config_to_att.h
diff --git a/met/src/tools/core/pcp_combine/Makefile.am b/met/src/tools/core/pcp_combine/Makefile.am
index 1a07c63b71..0fa6d2ecc4 100644
--- a/met/src/tools/core/pcp_combine/Makefile.am
+++ b/met/src/tools/core/pcp_combine/Makefile.am
@@ -20,8 +20,10 @@ pcp_combine_LDADD = -lvx_data2d_factory \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
+ -lvx_regrid \
-lvx_grid \
-lvx_config \
-lvx_cal \
diff --git a/met/src/tools/core/point_stat/Makefile.am b/met/src/tools/core/point_stat/Makefile.am
index ef64c96fc8..02dbac944a 100644
--- a/met/src/tools/core/point_stat/Makefile.am
+++ b/met/src/tools/core/point_stat/Makefile.am
@@ -26,6 +26,7 @@ point_stat_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_obs \
-lvx_nc_util \
diff --git a/met/src/tools/core/series_analysis/Makefile.am b/met/src/tools/core/series_analysis/Makefile.am
index 79a33460f0..26352e71eb 100644
--- a/met/src/tools/core/series_analysis/Makefile.am
+++ b/met/src/tools/core/series_analysis/Makefile.am
@@ -26,6 +26,7 @@ series_analysis_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/core/stat_analysis/Makefile.am b/met/src/tools/core/stat_analysis/Makefile.am
index 909143d9f3..60ca332858 100644
--- a/met/src/tools/core/stat_analysis/Makefile.am
+++ b/met/src/tools/core/stat_analysis/Makefile.am
@@ -8,19 +8,13 @@ MAINTAINERCLEANFILES = Makefile.in
include ${top_srcdir}/Make-include
-OPT_PYTHON_SOURCES =
-
-if ENABLE_PYTHON
-LDFLAGS += -lvx_python3_utils
-endif
-
# The program
bin_PROGRAMS = stat_analysis
stat_analysis_SOURCES = stat_analysis.cc \
aggr_stat_line.cc \
parse_stat_line.cc \
- stat_analysis_job.cc $(OPT_PYTHON_SOURCES)
+ stat_analysis_job.cc
stat_analysis_CPPFLAGS = ${MET_CPPFLAGS}
stat_analysis_LDFLAGS = ${MET_LDFLAGS}
stat_analysis_LDADD = -lvx_stat_out \
@@ -34,6 +28,7 @@ stat_analysis_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/core/wavelet_stat/Makefile.am b/met/src/tools/core/wavelet_stat/Makefile.am
index 4f6759db27..25150834a5 100644
--- a/met/src/tools/core/wavelet_stat/Makefile.am
+++ b/met/src/tools/core/wavelet_stat/Makefile.am
@@ -32,6 +32,7 @@ wavelet_stat_LDADD = -lvx_pxm \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/dev_utils/Makefile.am b/met/src/tools/dev_utils/Makefile.am
index 03a83fc690..9240cb48bd 100644
--- a/met/src/tools/dev_utils/Makefile.am
+++ b/met/src/tools/dev_utils/Makefile.am
@@ -127,6 +127,7 @@ gen_climo_bin_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/other/ascii2nc/Makefile.am b/met/src/tools/other/ascii2nc/Makefile.am
index 3b4f21b46a..7fce7b81ba 100644
--- a/met/src/tools/other/ascii2nc/Makefile.am
+++ b/met/src/tools/other/ascii2nc/Makefile.am
@@ -39,6 +39,7 @@ ascii2nc_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
-lvx_data2d_nccf \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_obs \
-lvx_nc_util \
diff --git a/met/src/tools/other/gen_vx_mask/Makefile.am b/met/src/tools/other/gen_vx_mask/Makefile.am
index 2b52cb7cb6..f8b773183b 100644
--- a/met/src/tools/other/gen_vx_mask/Makefile.am
+++ b/met/src/tools/other/gen_vx_mask/Makefile.am
@@ -24,6 +24,7 @@ gen_vx_mask_LDADD = -lvx_shapedata \
-lvx_data2d_nc_met \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_gis \
-lvx_nc_util \
-lvx_data2d \
@@ -39,6 +40,7 @@ gen_vx_mask_LDADD = -lvx_shapedata \
-lvx_stat_out \
-lvx_statistics \
-lvx_gsl_prob \
+ -lvx_regrid \
-lvx_grid \
-lvx_config \
-lvx_gsl_prob \
diff --git a/met/src/tools/other/grid_diag/Makefile.am b/met/src/tools/other/grid_diag/Makefile.am
index 877772a982..1d30d1bce4 100644
--- a/met/src/tools/other/grid_diag/Makefile.am
+++ b/met/src/tools/other/grid_diag/Makefile.am
@@ -26,6 +26,7 @@ grid_diag_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/other/gsi_tools/Makefile.am b/met/src/tools/other/gsi_tools/Makefile.am
index 40c550a1c1..1c94d4be2b 100644
--- a/met/src/tools/other/gsi_tools/Makefile.am
+++ b/met/src/tools/other/gsi_tools/Makefile.am
@@ -8,10 +8,6 @@ MAINTAINERCLEANFILES = Makefile.in
include ${top_srcdir}/Make-include
-if ENABLE_PYTHON
-LDFLAGS += -lvx_data2d_python -lvx_python3_utils
-endif
-
# The programs
bin_PROGRAMS = gsid2mpr \
@@ -36,28 +32,31 @@ gsid2mpr_CPPFLAGS = ${MET_CPPFLAGS}
gsid2mpr_LDFLAGS = ${MET_LDFLAGS}
gsid2mpr_LDADD = -lvx_stat_out \
-lvx_statistics \
+ -lvx_shapedata \
-lvx_gsl_prob \
+ -lvx_analysis_util \
+ -lvx_shapedata \
+ -lvx_util \
+ $(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d_factory \
-lvx_data2d_nc_met \
- -lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
-lvx_grid \
-lvx_config \
+ -lvx_gsl_prob \
-lvx_cal \
-lvx_util \
-lvx_math \
-lvx_color \
-lvx_log \
- -lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas
-
-if ENABLE_PYTHON
-gsid2mpr_LDADD += $(MET_PYTHON_LD) -lvx_data2d_python -lvx_python3_utils -lvx_data2d_python -lvx_python3_utils
-endif
+ -lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util
gsidens2orank_SOURCES = gsidens2orank.h \
gsi_record.h \
@@ -78,25 +77,29 @@ gsidens2orank_CPPFLAGS = ${MET_CPPFLAGS}
gsidens2orank_LDFLAGS = ${MET_LDFLAGS}
gsidens2orank_LDADD = -lvx_stat_out \
-lvx_statistics \
+ -lvx_shapedata \
-lvx_gsl_prob \
+ -lvx_analysis_util \
+ -lvx_shapedata \
+ -lvx_util \
+ $(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d_factory \
-lvx_data2d_nc_met \
- -lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
-lvx_grid \
-lvx_config \
+ -lvx_gsl_prob \
-lvx_cal \
-lvx_util \
-lvx_math \
-lvx_color \
-lvx_log \
- -lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas
+ -lm -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util
-if ENABLE_PYTHON
-gsidens2orank_LDADD += $(MET_PYTHON_LD) -lvx_data2d_python -lvx_python3_utils -lvx_data2d_python -lvx_python3_utils
-endif
diff --git a/met/src/tools/other/ioda2nc/Makefile.am b/met/src/tools/other/ioda2nc/Makefile.am
index e4067043df..83d74ba5d1 100644
--- a/met/src/tools/other/ioda2nc/Makefile.am
+++ b/met/src/tools/other/ioda2nc/Makefile.am
@@ -26,6 +26,7 @@ ioda2nc_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
-lvx_data2d_nccf \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_obs \
-lvx_nc_util \
diff --git a/met/src/tools/other/lidar2nc/Makefile.am b/met/src/tools/other/lidar2nc/Makefile.am
index 7bf377b10a..118ea7efd4 100644
--- a/met/src/tools/other/lidar2nc/Makefile.am
+++ b/met/src/tools/other/lidar2nc/Makefile.am
@@ -26,6 +26,7 @@ lidar2nc_LDADD = -lvx_shapedata \
-lvx_data2d_nc_met \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_nc_obs \
-lvx_nc_util \
-lvx_data2d \
diff --git a/met/src/tools/other/madis2nc/Makefile.am b/met/src/tools/other/madis2nc/Makefile.am
index f83950661e..e85cf3c975 100644
--- a/met/src/tools/other/madis2nc/Makefile.am
+++ b/met/src/tools/other/madis2nc/Makefile.am
@@ -25,6 +25,7 @@ madis2nc_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
-lvx_data2d_nccf \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_obs \
-lvx_nc_util \
diff --git a/met/src/tools/other/mode_graphics/Makefile.am b/met/src/tools/other/mode_graphics/Makefile.am
index b360dbfb55..fc5e1f530b 100644
--- a/met/src/tools/other/mode_graphics/Makefile.am
+++ b/met/src/tools/other/mode_graphics/Makefile.am
@@ -27,6 +27,7 @@ plot_mode_field_LDADD = -lvx_config \
-lvx_plot_util \
-lvx_data2d_nc_met \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_grid \
-lvx_nc_util \
-lvx_ps \
diff --git a/met/src/tools/other/mode_time_domain/Makefile.am b/met/src/tools/other/mode_time_domain/Makefile.am
index 9b5d9df97f..fde9fbe977 100644
--- a/met/src/tools/other/mode_time_domain/Makefile.am
+++ b/met/src/tools/other/mode_time_domain/Makefile.am
@@ -55,6 +55,7 @@ mtd_LDADD = -lvx_pxm \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/other/modis_regrid/Makefile.am b/met/src/tools/other/modis_regrid/Makefile.am
index 843d226bbc..e63afad3f0 100644
--- a/met/src/tools/other/modis_regrid/Makefile.am
+++ b/met/src/tools/other/modis_regrid/Makefile.am
@@ -36,8 +36,10 @@ modis_regrid_LDADD = -lvx_pxm \
-lvx_data2d_grib $(GRIB2_LIBS) \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
+ -lvx_regrid \
-lvx_grid \
-lvx_config \
-lvx_gsl_prob \
diff --git a/met/src/tools/other/pb2nc/Makefile.am b/met/src/tools/other/pb2nc/Makefile.am
index 40ed36c2d2..6eb653a1d0 100644
--- a/met/src/tools/other/pb2nc/Makefile.am
+++ b/met/src/tools/other/pb2nc/Makefile.am
@@ -42,6 +42,7 @@ pb2nc_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
-lvx_data2d_nccf \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_obs \
-lvx_nc_util \
diff --git a/met/src/tools/other/plot_data_plane/Makefile.am b/met/src/tools/other/plot_data_plane/Makefile.am
index 5470661e67..3997aaf742 100644
--- a/met/src/tools/other/plot_data_plane/Makefile.am
+++ b/met/src/tools/other/plot_data_plane/Makefile.am
@@ -20,6 +20,7 @@ plot_data_plane_LDADD = -lvx_data2d_factory \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_nc_util \
-lvx_data2d \
-lvx_plot_util \
@@ -30,6 +31,7 @@ plot_data_plane_LDADD = -lvx_data2d_factory \
-lvx_afm \
-lvx_nav \
-lvx_gnomon \
+ -lvx_regrid \
-lvx_grid \
-lvx_config \
-lvx_gsl_prob \
diff --git a/met/src/tools/other/plot_point_obs/Makefile.am b/met/src/tools/other/plot_point_obs/Makefile.am
index 677a41a5b4..77e7c1711d 100644
--- a/met/src/tools/other/plot_point_obs/Makefile.am
+++ b/met/src/tools/other/plot_point_obs/Makefile.am
@@ -40,6 +40,7 @@ plot_point_obs_LDADD = -lvx_statistics \
-lvx_cal \
-lvx_util \
$(PYTHON_LIBS) \
+ -lvx_statistics \
-lvx_math \
-lvx_color \
-lvx_log \
diff --git a/met/src/tools/other/point2grid/Makefile.am b/met/src/tools/other/point2grid/Makefile.am
index 054a049df7..ccd38b1ac5 100644
--- a/met/src/tools/other/point2grid/Makefile.am
+++ b/met/src/tools/other/point2grid/Makefile.am
@@ -22,6 +22,7 @@ point2grid_LDADD = -lvx_statistics \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_nc_util \
-lvx_data2d \
-lvx_gnomon \
diff --git a/met/src/tools/other/regrid_data_plane/Makefile.am b/met/src/tools/other/regrid_data_plane/Makefile.am
index 8c28e3f93f..32bbc91cea 100644
--- a/met/src/tools/other/regrid_data_plane/Makefile.am
+++ b/met/src/tools/other/regrid_data_plane/Makefile.am
@@ -21,6 +21,7 @@ regrid_data_plane_LDADD = -lvx_statistics \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_nc_util \
-lvx_data2d \
-lvx_gnomon \
diff --git a/met/src/tools/other/shift_data_plane/Makefile.am b/met/src/tools/other/shift_data_plane/Makefile.am
index 67e02fcfea..af2d6875b8 100644
--- a/met/src/tools/other/shift_data_plane/Makefile.am
+++ b/met/src/tools/other/shift_data_plane/Makefile.am
@@ -21,6 +21,7 @@ shift_data_plane_LDADD = -lvx_statistics \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_nc_util \
-lvx_data2d \
-lvx_gnomon \
diff --git a/met/src/tools/other/wwmca_tool/Makefile.am b/met/src/tools/other/wwmca_tool/Makefile.am
index 7972849bf4..ba4e6d5e69 100644
--- a/met/src/tools/other/wwmca_tool/Makefile.am
+++ b/met/src/tools/other/wwmca_tool/Makefile.am
@@ -44,6 +44,7 @@ wwmca_regrid_LDADD = -lvx_pxm \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/tc_utils/rmw_analysis/Makefile.am b/met/src/tools/tc_utils/rmw_analysis/Makefile.am
index eca92181cd..61223d7f69 100644
--- a/met/src/tools/tc_utils/rmw_analysis/Makefile.am
+++ b/met/src/tools/tc_utils/rmw_analysis/Makefile.am
@@ -26,6 +26,7 @@ rmw_analysis_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/tc_utils/tc_gen/Makefile.am b/met/src/tools/tc_utils/tc_gen/Makefile.am
index 4865e6a517..281811cd88 100644
--- a/met/src/tools/tc_utils/tc_gen/Makefile.am
+++ b/met/src/tools/tc_utils/tc_gen/Makefile.am
@@ -27,6 +27,7 @@ tc_gen_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/tc_utils/tc_pairs/Makefile.am b/met/src/tools/tc_utils/tc_pairs/Makefile.am
index 56d6239e2f..d5d4436698 100644
--- a/met/src/tools/tc_utils/tc_pairs/Makefile.am
+++ b/met/src/tools/tc_utils/tc_pairs/Makefile.am
@@ -29,6 +29,7 @@ tc_pairs_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/tc_utils/tc_rmw/Makefile.am b/met/src/tools/tc_utils/tc_rmw/Makefile.am
index 5aed64e561..43d075577c 100644
--- a/met/src/tools/tc_utils/tc_rmw/Makefile.am
+++ b/met/src/tools/tc_utils/tc_rmw/Makefile.am
@@ -26,6 +26,7 @@ tc_rmw_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/met/src/tools/tc_utils/tc_stat/Makefile.am b/met/src/tools/tc_utils/tc_stat/Makefile.am
index 413d2a5141..06b56431ce 100644
--- a/met/src/tools/tc_utils/tc_stat/Makefile.am
+++ b/met/src/tools/tc_utils/tc_stat/Makefile.am
@@ -29,6 +29,7 @@ tc_stat_LDADD = -lvx_stat_out \
-lvx_data2d_nc_pinterp \
$(PYTHON_LIBS) \
-lvx_data2d_nccf \
+ -lvx_statistics \
-lvx_data2d \
-lvx_nc_util \
-lvx_regrid \
diff --git a/test/xml/unit_python.xml b/test/xml/unit_python.xml
index 58936ecbad..c204534f05 100644
--- a/test/xml/unit_python.xml
+++ b/test/xml/unit_python.xml
@@ -19,6 +19,68 @@
&TEST_DIR;
true
+
+
+ &MET_BIN;/plot_data_plane
+
+ PYTHON_GRID G212
+
+ \
+ PYTHON_NUMPY \
+ &OUTPUT_DIR;/python/letter_numpy_grid_name.ps \
+ 'name = "&MET_BASE;/python/read_ascii_numpy_grid.py &DATA_DIR_PYTHON;/letter.txt LETTER";' \
+ -plot_range 0.0 255.0 \
+ -title "Grid Name: 'G212'" \
+ -v 1
+
+
+
+
+
+
+ &MET_BIN;/plot_data_plane
+
+
+ PYTHON_GRID
+ lambert 185 129 12.19 -133.459 -95 40.635 6371.2 25 25 N
+
+
+ \
+ PYTHON_NUMPY \
+ &OUTPUT_DIR;/python/letter_numpy_grid_string.ps \
+ 'name = "&MET_BASE;/python/read_ascii_numpy_grid.py &DATA_DIR_PYTHON;/letter.txt LETTER";' \
+ -plot_range 0.0 255.0 \
+ -title "Grid String: '${PYTHON_GRID}'" \
+ -v 1
+
+
+
+
+
+
+ &MET_BIN;/plot_data_plane
+
+
+ PYTHON_GRID
+ &MET_DATA;/sample_fcst/2005080700/wrfprs_ruc13_12.tm00_G212
+
+ \
+ PYTHON_NUMPY \
+ &OUTPUT_DIR;/python/letter_numpy_grid_data_file.ps \
+ 'name = "&MET_BASE;/python/read_ascii_numpy_grid.py &DATA_DIR_PYTHON;/letter.txt LETTER";' \
+ -plot_range 0.0 255.0 \
+ -title "Gridded Data File: 'wrfprs_ruc13_12.tm00_G212'" \
+ -v 1
+
+
+
+
&MET_BIN;/plot_data_plane