Skip to content

The METplus Ecosystem

A human-readable field guide to the Model Evaluation Tools verification suite.

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.

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.

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.

The METplus ecosystem data flow Gridded forecasts, point observations, and gridded analyses feed into MET, the statistical engine, which is wrapped and automated by the METplus framework via Python wrappers and configuration files. MET emits output as STAT, TCST, NetCDF, and MODE files. That output branches to METcalcpy for aggregation and significance, to METplotpy for plotting, and through METdataio and METdbLoad into a database that powers METviewer for deep analysis and METexpress for quick analysis. METcalcpy also feeds METplotpy and the database tools, and METplotpy plots are used inside METviewer. INPUTS Gridded forecasts Point observations Gridded analyses / obs METplus framework Python wrappers + .conf automate MET MET statistical engine Grid-Stat · Point-Stat Ensemble-Stat · MODE · TC MET output .stat · .tcst NetCDF · MODE ANALYSIS METcalcpy aggregate · CIs · significance aggregate METplotpy verification + diagnostic plots plot METdataio METdbLoad · reformat load Database aggregated MET statistics METviewer database + web GUI · deep analysis deep analysis METexpress web apps · quick analysis quick analysis shared stats plots used in viewer LEGEND data flow orchestration / stats load / analyze
Figure 1. Forecasts and observations flow into MET, the statistical engine, which METplus wraps and automates. MET's output (.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.

Each card opens a dedicated, human-readable guide. The role tag tells you what slot the component fills in the workflow above.

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.

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.

  1. 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.

  2. Learn the orchestration. Read METplus to see how Python wrappers and .conf files turn many manual MET runs into one reproducible workflow.

  3. Add statistics and plots. Read METcalcpy for aggregation, confidence intervals, and significance, then METplotpy for the verification diagrams that visualize them.

  4. Move the data. Read METdataio to load MET output into a database and reformat it for the analysis apps.

  5. Analyze interactively. Finish with METviewer for deep, flexible queries and METexpress for quick, pre-defined looks.

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