METexpress is the express counterpart to METviewer. Both read the same
world of MET verification statistics stored in a database, but where METviewer offers deep,
open-ended flexibility (and the training to match), METexpress trades that depth for speed and
approachability. It guides you through a handful of curated, purpose-built apps so
you can build common plots quickly — without first becoming a METviewer expert.
METexpress is, in the documentation’s own words, “an easy-to-use interface that displays plots
of statistical verification metrics for the data that a user defines interactively.” Per the docs,
it lets a model developer explore metrics about their model runs quickly and flexibly,
so the developer can “slice and dice data in the way that best gives them insight into how their
model performed” — without waiting on someone else to produce pre-generated plots.
It is a single web application that houses several specialized apps, each
tuned to a verification domain (surface, upper air, precipitation, ensembles, and so on). Within an
app, METexpress walks you through parameter selection for the kinds of plots people make most often.
The docs frame the primary audience as model developers, but the guided, low-training interface
serves anyone — forecasters and evaluators included — who wants a common verification plot quickly.
A key point about scope: METexpress only views data — it does not create it.
It “can only produce plots based on the data that has been loaded into the METdatadb database.”
If statistics for a model, variable, or region were never loaded, METexpress cannot plot them.
METexpress is one component of the METplus verification suite, created and managed by the
Developmental Testbed Center (DTC). It was developed at NOAA/OAR Global Systems Laboratory (GSL),
based on a GSL system called the Model Analysis Tool Suite (MATS), and adapted
to work against the METplus database.
METexpress sits at the end of a three-stage pipeline. The MET tools verify model
output against observations and write statistics as ASCII; the METdbload tool loads
those statistics into the METdatadb database; and METexpress queries that database
to draw plots in your browser. Crucially, the apps issue pre-defined queries —
you choose parameters from menus, and the app builds the query for you.
Figure 1. The pipeline: MET tools emit ASCII statistics → METdbload
loads them into the METdatadb database → METexpress apps run pre-defined queries → standard
verification plots render in the browser. METexpress only reads the database.
One consequence of querying a live database is dependent-menu filtering.
Generally each app “only presents the user with choices for data parameters
that are valid for the data sets that the user has selected.” Pick a model such as
GFS, and the variable menu narrows to variables actually available for that model in
the database — you can’t ask for a combination that doesn’t exist.
METexpress ships a set of purpose-built apps. Each app is tuned to a verification domain, with a
plot-type toolbar and parameter menus appropriate to that domain. Selectable parameters are always
“derived from the data” loaded for that app’s database.
App
Scope (one line)
Upper Air
Scalar and contingency-table statistics at different pressure levels in the atmosphere.
Surface
Scalar and contingency-table statistics at different heights above the ground.
Air Quality
Scalar and contingency-table statistics at heights above the ground, focused on air-quality variables.
Anomaly Correlation
Anomaly correlations at different pressure levels and at different heights above the ground.
Precipitation
Scalar and contingency-table statistics for precipitation-related variables.
Ensemble
Scalar, contingency-table, and ensemble metrics for multi-member ensemble model runs.
Cyclone
Track and intensity verification for tropical and extratropical cyclones.
Objects
Skill scores and model–obs pair verification statistics for convective objects.
Every app follows the same consistent layout, so once you learn one you’ve largely learned them
all. Below the app name sits a Plot Type selector; the center holds the
Curve Data Parameters (blue selector fields and green action buttons); once you add
curves a Defined Curves section lists them; and a lower Plot Parameters
section holds settings that apply to the whole plot.
You build a plot from one or more curves. Parameters fall into two kinds:
Dependent parameters
Driven by what’s in the database and constrained by your other choices. They include
Group, Database, Data-Source, Region, Statistic, Variable, Interp-Method, Scale, forecast lead
time, pressure level, Description, and date controls. Selecting a superior field (e.g.
Data-Source) narrows the dependent ones.
Static fields
Independent of the data: Valid UTC Hour (0–23), an
Average window (None, 1hr, 3hr, 6hr, 12hr, 1D, 3D, 7D, 30D, 60D, 90D, 180D),
and an Aggregation Method — Overall statistic, Mean statistic, Mean statistic
weighted by N, or Median statistic.
Add a curve with Add Curve (it’s auto-assigned a color — Curve0 defaults to
red); edit it later via the selectors directly or with Edit Curve →
Save Curve Changes. At the plot level you can also compute differences:
Show matching diffs (each curve minus Curve0) or Pairwise diffs
(adjacent pairs); the default is no diffs.
Plots are interactive (built on Plotly): zoom by click-drag box, double-click to reset, pan, and
hover for point-specific x/y values and statistics. You can customize axes, legends, curve styles,
colorbars (for contour plots), toggle a Y Linear/Log scale on profiles, merge axes,
show/hide curves and markers, and edit legend text. A Text view shows the underlying
data tables, and Export saves them as CSV; plots themselves save as PNG or PDF.
Whole configurations can be stored and reloaded with Save All Curve Settings and
Restore Settings.
Open an app. Choose the app that matches what you’re verifying (e.g. Upper Air for
pressure-level fields), then pick a Plot Type from the toolbar.
Define a curve. Work in reading order (left-to-right, top-to-bottom). Set the superior
fields first — Database and Data-Source — and the dependent menus (Variable, Region, Statistic,
level, lead time) narrow to valid choices automatically.
Set static fields. Choose Valid UTC Hour, an Average window if you want smoothing, and
an Aggregation Method, then click Add Curve.
Add comparison curves. Repeat for each model or configuration you’re comparing; each
gets its own color. Optionally enable matching or pairwise diffs.
Generate. Click Plot Matched or Plot Unmatched. The
app issues the pre-defined query and renders the plot in your browser.
Refine and export. Zoom, restyle axes and legends, toggle curves, then export to
PNG/PDF or pull the underlying data to CSV via the Text/Export controls.
The appsReference — Full descriptions of each app — Upper Air, Surface, Air Quality, Anomaly Correlation, Precipitation, Ensemble, Cyclone, Objects — and the data each is built to plot.
Interface & plot typesReference — The full interface walkthrough: curve data parameters, plot types, matched vs. unmatched plotting, diffs, interactive controls, exports, and a note on the scorecard concept.