The METplus Ecosystem
METplus is an umbrella framework from the Developmental Testbed Center (DTC) for unified, reproducible forecast verification — taking model forecasts, comparing them against observations and analyses, and computing the statistics that tell you how good the forecast was. It bundles the Model Evaluation Tools (MET) statistical engine with a family of companion packages for orchestration, statistics, plotting, data loading, and analysis. These pages re-present the official User’s Guides as clean, readable guides so you can find your bearings before diving into the dense reference material.
What METplus is, in plain language
Section titled “What METplus is, in plain language”Forecast verification answers a deceptively simple question: was the forecast any good? Answering it rigorously means matching forecasts to a truth source — gridded analyses, point observations from stations and rawinsondes, or other models — and computing well-defined statistics over many cases. Doing that by hand, consistently, across many models and many variables, is where things get hard. METplus exists to make that process unified (one toolset for many verification problems) and reproducible (the same configuration yields the same result, every time).
Two ideas sit at the center. MET — the Model Evaluation Tools — is the statistical engine: a
set of C++ tools that ingest forecasts and observations and emit statistics. METplus Wrappers is
the orchestration layer: Python wrappers plus hierarchical .conf configuration files that set up
and run MET (and its companions) so you describe what you want verified rather than scripting how
to run each tool. The remaining packages handle shared statistics, plotting, data I/O, and
interactive analysis.
Verification — The practice of measuring forecast quality by comparing forecasts to a truth source and summarizing the comparison with statistics.
The statistical engine vs. the framework — MET computes the scores; METplus automates running MET. You can run MET tools directly, but most users drive them through METplus.
Companion packages — METcalcpy, METplotpy, METdataio, METviewer, and METexpress — Python and web tools that extend MET’s output into aggregation, plots, databases, and interactive analysis.
How the pieces connect
Section titled “How the pieces connect”The diagram below traces the real data flow. Inputs enter MET on the left; METplus wraps and automates MET in the center; MET’s output then fans out to the analysis companions on the right. Boxes are links — select a component to open its guide.
.stat,
.tcst, NetCDF, MODE) branches to METcalcpy (aggregate), METplotpy (plot),
and through METdataio into a database that powers METviewer (deep) and
METexpress (quick). Boxes link to each component's guide.The seven components
Section titled “The seven components”Each card opens a dedicated, human-readable guide. The role tag tells you what slot the component fills in the workflow above.
How they fit together
Section titled “How they fit together”Think of the ecosystem as one assembly line with four stages. First, the engine does the math:
MET tools such as Grid-Stat, Point-Stat, Ensemble-Stat, and MODE ingest GRIB and NetCDF
inputs and write statistics as ASCII .stat files (organized into line types like CTC, CTS,
CNT, and SL1L2), plus NetCDF, MODE, and tropical-cyclone .tcst output.
Second, the framework automates the engine: METplus wraps the MET tools so a single set of
.conf files can run them individually or as a sequence — the same configuration reproducing the
same verification on demand. Third, the analysis libraries refine the output: METcalcpy
aggregates statistics and adds confidence intervals and significance, and METplotpy turns numbers
into verification diagrams and diagnostic plots. Many METplus use cases call these two libraries
automatically, but they also run standalone.
Fourth, the interactive apps make results explorable: METdataio loads MET output into a database, which METviewer queries through a web GUI for deep, custom analysis, while METexpress layers fast pre-defined queries on top for quick looks. Because every stage shares the same statistics and conventions, you can stop at any stage that answers your question.
A suggested reading order
Section titled “A suggested reading order”If you read the guides front to back, this order follows the data as it moves through the assembly line — from raw computation to interactive analysis.
-
Start with the engine. Read MET to understand the inputs (gridded forecasts, point observations, gridded analyses), the tools that compute scores, and the output files and line types everything downstream consumes.
-
Learn the orchestration. Read METplus to see how Python wrappers and
.conffiles turn many manual MET runs into one reproducible workflow. -
Add statistics and plots. Read METcalcpy for aggregation, confidence intervals, and significance, then METplotpy for the verification diagrams that visualize them.
-
Move the data. Read METdataio to load MET output into a database and reformat it for the analysis apps.
-
Analyze interactively. Finish with METviewer for deep, flexible queries and METexpress for quick, pre-defined looks.
How these guides were checked
Section titled “How these guides were checked”Every component guide was reviewed by an agent team — a MET/verification domain expert (technical faithfulness against the official docs) and a persona scientist (human-readability) — then revised once and re-confirmed by a fresh team. The outcome, the corrections applied, and every remaining issue are documented in the review report.
A derived, human-readable re-presentation — not official documentation. Sources: METplus User’s Guide — Overview · MET User’s Guide — Overview · metplus.readthedocs.io