Skip to content

Plots

METviewer turns the dense ASCII statistics that MET writes into pictures. Once your verification numbers are loaded into its database, you pick a plot type, choose a statistic and an axis, and METviewer renders a figure. This page walks the major plot families one at a time: what question each answers, what its axes mean, and what “good” versus “bad” looks like at a glance.

Every METviewer plot is built from the same raw material: rows of statistics that MET’s Point-Stat and Grid-Stat tools wrote out, grouped into named line types. A line type is just a category of output — for example, CNT holds continuous statistics like RMSE and correlation, CTC holds the four counts of a 2×2 yes/no contingency table, and PCT holds the probabilistic contingency table for probability forecasts. Which plots you can draw depends entirely on which line types you have.

Three ideas recur across the whole gallery, so it is worth naming them once:

Independent variable (the X axis you choose) — The thing you are varying — most often forecast lead time (how far ahead the forecast was valid), but also date, or threshold. Series, bar, box, and spread/skill plots all let you pick it.

Series variable (what splits the data into separate lines) — A grouping that draws as its own line or color — typically the model or an ensemble member, so two systems can be compared on one figure.

Fixed values (the filter that keeps comparisons honest) — Constraints you pin down — a single verification region (VX_MASK), forecast variable (FCST_VAR), level, or threshold — so METviewer does not blend together numbers that should never be averaged.

The whole gallery on one screen: what each plot is for, and what its axes carry.

Acronyms used below: POD = probability of detection (hit rate); POFD = probability of false detection (false-alarm rate); FAR = false-alarm ratio, so the success ratio is 1 − FAR.

Plot typeQuestion it answersKey axes
Series / lineHow does a statistic change as I vary lead time (or date / threshold)?X = independent variable · Y = statistic value
BarHow do a statistic’s values compare across discrete categories?X = category (date / lead / threshold) · Y = statistic value
Box-and-whiskerWhat is the spread / distribution of a statistic in each category?X = category · Y = statistic (median, quartiles, whiskers, outliers)
Reliability (attributes)When I forecast probability p, does the event happen about p of the time?X = forecast probability · Y = observed relative frequency
ROCCan my probability forecast discriminate events from non-events?X = false-alarm rate (POFD) · Y = hit rate (POD)
Performance (CSI)How does a yes/no forecast trade off detection against false alarms?X = success ratio (1−FAR) · Y = probability of detection (POD)
Taylor diagramHow close is the forecast pattern to observations, on three stats at once?radius = std dev · angle = correlation · distance to ref = RMSE
Spread vs. skillIs my ensemble’s spread a fair estimate of its own error?X = independent variable · Y = spread and skill (RMSE) together
Economic value (ECLV)For what cost/loss ratios does my forecast beat climatology?X = cost/loss ratio · Y = economic value
ScorecardAcross many variables, regions and leads, where does model A beat model B — significantly?grid: rows = stats/vars · columns = region × lead · cells = colored significance

Two further families catalogued on the METviewer overviewContour plots and Equivalence Testing Bounds — are not given their own deep-dive entry here; this gallery covers the most commonly read families rather than every plot type.

The workhorse of verification. A series plot is, in the guide’s own words, a special case of a scatter plot where the dependent value is connected from one value of the independent variable to the next with a line. In practice that means: pick a statistic for the Y axis, pick an independent variable for the X axis, and watch the line.

The classic example is a statistic versus forecast lead time. You put a statistic such as frequency bias (FBIAS) on Y and lead time (3 h, 6 h, … 36 h) on X. Choose a series variable — say model or ensemble member — and each one draws as its own line, so you can compare systems directly. The source example plots frequency bias for seven HRRR ensemble members across 3–36 h leads.

  • What good looks like: depends on the statistic. For a bias-style statistic you want the line near its perfect value (1.0 for frequency bias, 0 for mean error). For an error statistic like RMSE, lower and flatter as lead time grows is better.
  • Summary vs. aggregation: each plotted point can be a median (the default), mean, or sum of the underlying database rows.
  • Confidence intervals: series plots can draw confidence intervals around each line so you can judge whether two models really differ.

Inputs are MET Stat rows; the statistic you choose determines which line type is read.

A note on names: Stat, MODE, and MODE-TD are the labels in METviewer’s plot-data dropdown. They correspond to the same output families named elsewhere as STAT (the .stat line types), MODE, and MTD (MODE Time Domain) — so MODE-TD is the GUI label for MTD.

A bar plot answers the same kind of question as a series plot but for discrete comparisons: instead of connecting points with a line, it draws one bar per category, with bar height proportional to the statistic’s value. The X axis is a category — commonly a date, lead time, or threshold — and the Y axis is the numeric statistic you select.

Like series plots, bars support a series variable (e.g. MODEL), fixed values to prevent improper aggregation, and a summary method (median, mean, or sum). The source example plots total MODE object count for seven ensemble members across 3–36 h leads. Plot data can be drawn from Stat, MODE, or MODE-TD output.

Where a series or bar plot shows one number per category, a box plot shows the whole distribution of a statistic in each category — its center, its spread, and its outliers. That makes it the right tool when you care not just about the typical value but about how variable it is.

Anatomy of a box-and-whisker plot Three boxes along an X axis of lead time. Each box marks the median line, the first-to-third-quartile box, whiskers extending to 1.5 times the box height, and dots for outliers beyond that range. statistic (e.g. RMSE) lead time → 06 h 18 h 36 h median box = IQR whisker outliers
Figure 1. One box per category. The waist line is the median; the box spans the interquartile range (first to third quartile); whiskers reach to 1.5× the box height (or the min/max if nearer the median); dots beyond that are outliers.

Reading it: the median is the dark “waist” line, the box is the interquartile range (IQR), whiskers extend to 1.5× the box height (or to the min/max value when that is closer to the median), and points mark outliers more than 1.5× the IQR from the median. A tall box means a noisy, inconsistent statistic; a short box means a stable one. Plot data can come from Stat, MODE, or MODE-TD, and options control outlier display, notches, and box width.

Reliability (or “attributes”) diagrams check the conditional bias of probability forecasts: when you forecast a 30% chance of rain, does it actually rain on about 30% of those occasions? METviewer groups forecasts into probability bins, plots the issued probability on X and the observed relative frequency on Y, and compares the curve to the diagonal.

Reliability diagram A unit square with a diagonal perfect-reliability line. A sample forecast curve bows below the diagonal at high probabilities, marking over-forecasting. perfect reliability curve below diagonal → over-forecasting sharpness forecast probability observed frequency 0 1
Figure 2. Points on the dashed diagonal are perfectly reliable. A curve that sags below the diagonal is over-forecasting (probabilities too high); a curve above it is under-forecasting. The small inset histogram shows sharpness — how often each probability was issued.
  • Perfect: points lie on the diagonal — forecast probability equals observed frequency.
  • Over-forecasting: the curve falls below the diagonal (probabilities too high).
  • Under-forecasting: points sit above the diagonal (probabilities too low).
  • Reliable enough: the curve hugs the diagonal with a positive slope.

Reliability diagrams use the PCT line type (probability statistics from Point-Stat or Grid-Stat). An accompanying histogram of sample counts reveals sharpness — how confidently and how often each probability bin was used.

A Receiver Operating Characteristic (ROC) plot asks whether a probability forecast can tell events apart from non-events — its discrimination, or resolution. Because the ROC is conditioned on what was observed, it is the natural companion to the reliability diagram, which is conditioned on what was forecast.

ROC curve A unit square with a diagonal no-skill line from bottom-left to top-right. A sample ROC curve bows toward the top-left corner, the ideal location. no-skill line ideal POFD (false-alarm rate) POD (hit rate)
Figure 3. The X axis is the probability of false detection (POFD, the false-alarm rate); the Y axis is the probability of detection (POD, the hit rate). The dashed diagonal is no skill. The further the curve bows toward the top-left corner, the better the discrimination.
  • Axes: X = probability of false detection (POFD, the false-alarm rate — equivalently one minus the probability of correctly detecting non-events, PODn); Y = probability of detection (POD / hit rate).
  • No-skill line: the dashed diagonal — a forecast on it has no discrimination.
  • Better forecasts pull toward the top-left corner (high hits, few false alarms); the ideal forecast sits in that corner.
  • Area under the curve: when ROC_AUC is present in the PSTD line type, METviewer plots it (0–1 scale); it does not compute the value itself.

ROC plots are built from “Stat” probability output using the PRC, PCT, and CTC line types from Point-Stat or Grid-Stat. The observation threshold must be identical at every point on the curve.

A performance diagram packs four categorical scores into one square so you can see how a yes/no forecast trades detection against false alarms. The X axis is the success ratio (1 − false-alarm ratio); the Y axis is the probability of detection (POD). Two reference families overlay the plot:

  • Frequency-bias lines radiate from the origin as dashed straight lines; the main diagonal is unbiased (bias = 1.0). Points above it over-forecast the event; below, under-forecast.
  • CSI contours (Critical Success Index) are curves sweeping from the top down to the right side, labeled on the right margin. Higher CSI clusters toward the top-right.

A perfect forecast sits in the top-right corner: high detection, high success ratio, no false alarms. Performance diagrams accept the categorical line types CTC, NBRCTC, and CTS from Point-Stat or Grid-Stat, accumulated over time while kept stratified by model, lead, region, and so on.

How to read a performance diagram A performance diagram plots success ratio on the horizontal axis and probability of detection on the vertical axis. Dashed lines radiating from the origin mark equal frequency bias; curves of equal Critical Success Index connect the top edge of the plot to its right side. A perfect forecast sits in the upper-right corner. Success ratio (1 − false alarm ratio) → Probability of detection → bias=0.5 bias=2 bias=1 CSI CSI perfect a model
Figure 4. The performance diagram packs detection, success ratio, frequency bias and CSI into a single panel. Dashed lines from the origin are equal frequency bias; the curves of equal CSI sweep from the top edge to the right side. Closer to the upper-right corner is better.

A Taylor diagram is a clever piece of geometry that shows three continuous statistics at once — how well the forecast field matches the observed field on pattern, amplitude, and error. It is drawn in polar coordinates:

Correlation → the azimuthal angle — The Pearson correlation coefficient sets the angle; perfect correlation (1.0) points straight along the axis.

Standard deviation → the radial distance from the origin — How far out a point sits encodes the amplitude of variability. The ideal is a normalized standard deviation of 1.0.

RMSE → distance to the reference point — The (normalized) root-mean-square error is proportional to the straight-line distance from a forecast point to the “observed” reference point on the X axis.

The observation is marked as a reference point on the X axis. The closer a forecast plots to that reference point, the better it is on all three statistics at once; worse forecasts fall further away. Taylor diagrams read the continuous-statistics line type CNT from Point-Stat or Grid-Stat. In the source example, seven station locations for one model are plotted for downward longwave radiation flux, with the Bondville site performing best at about 0.85 correlation and near-1.0 standard deviation.

This plot judges whether an ensemble knows its own uncertainty. The guiding principle is that a well-calibrated ensemble’s spread (how much its members disagree) should be about equal to its skill (the error of the ensemble mean). Both quantities are plotted on the Y axis against an independent variable — usually lead time — on X.

  • Perfect ratio = 1: spread matches the ensemble mean’s error.
  • Under-dispersed: the ensemble lacks spread — it is over-confident, its members too similar.
  • Over-dispersed: the ensemble has too much spread — its uncertainty is exaggerated.

Two statistics are chosen together; the source example uses SSVAR_RMSE (the skill measure) and SSVAR_Spread (the spread), drawn from the Spread/Skill Variance (SSVAR) aggregation. The example shows 2 m temperature RMSE and spread across 36 lead times for an HRRR ensemble over the EAST domain.

An Economic Cost/Loss Value plot answers a decision-maker’s question rather than a purely statistical one: for what range of cost-to-loss ratios is my forecast worth acting on? The X axis is the cost/loss ratio (the cost of protective action divided by the loss avoided); the Y axis is the relative economic value, which ranges up to 1 and can go negative.

The curve traces the relative improvement in value between climatological information and perfect information across cost/loss ratios. A positive value means the forecast beats simply following climatology; at very low or very high cost/loss ratios the value turns negative because the optimal action is the same regardless of the forecast. ECLV plots require the ECLV line type — 2×2 contingency-table counts from deterministic forecasts — generated by Point-Stat or Grid-Stat.

A scorecard is the big-picture summary: a grid that compares two models across many variables, regions, and lead times at once, coloring each cell by which model is better and whether the difference is statistically significant. It is how operational centers answer “did the upgrade actually help, and where?”

Scorecard grid A grid whose rows are statistics and variables and whose columns are region by lead time. Cells are colored: upward triangles where the first model is better, downward triangles where the second is better, and gray where the difference is not significant. Day 1 Day 3 Day 5 Day 7 AC · Z500 RMSE · T850 BIAS · WIND RMSE · MSLP model 1 better model 2 better not significant
Figure 5. Rows are statistics paired with variables; columns are a region crossed with lead time. Upward triangles flag where the first model is significantly better, downward triangles where the second is, and gray cells where the difference is not significant. Significance is graded at the 0.95, 0.99, and 0.999 levels (as listed in the source).

Anomaly correlation (AC) — the correlation between forecast and observed anomalies from climatology — is the standard upper-air scorecard score and is what the “AC” rows measure. Rows hold statistics and variables (anomaly correlation for heights, RMSE for temperature, wind bias, …); columns hold regions crossed with lead times (e.g. North America Day 1–10). Each cell is color-coded with a symbol showing direction and significance — upward triangles in one tone when the first model wins, downward triangles in a contrasting tone when the second wins, gray when the difference is not significant. Significance bands are 0.95, 0.99, and 0.999 (the 99.9% level); a bootstrap supplies the test, and you can choose the EMC or NCAR significance algorithm.

Across the GUI-driven plot types the recipe is the same; only the tab and the statistic change.

  1. Select a database. Point METviewer at the loaded database holding the MET statistics you want to visualize.
  2. Pick the plot tab. Choose the plot family — Series, Bar, Box, Reliability, ROC, Performance (“Perf”), Taylor, Spread/Skill, or ECLV. (The scorecard is XML-only.)
  3. Choose the plot data type. Usually Stat; box and bar plots also accept MODE and MODE-TD.
  4. Set the Y-axis statistic. Pick the dependent variable and statistic — e.g. FBIAS for a series plot, or two SSVAR statistics for spread/skill.
  5. Choose a series variable. Select what splits the data into separate lines or colors, such as MODEL or ensemble member.
  6. Fix the rest. Pin down FCST_VAR, region (VX_MASK), level, and threshold so nothing improper is aggregated together.
  7. Set the independent variable. Define the X axis — lead time, date, or threshold — and label its values.
  8. Pick the summary method. Plot each point as a median, mean, or sum, and enable aggregation statistics (e.g. SSVAR) where the plot type needs them.
  9. Generate and verify. Render the figure, then sanity-check the underlying numbers in the “R data” tab.

A derived, human-readable re-presentation — not official documentation. Sources: Series · Bar · Box · Reliability · ROC · Performance · Taylor · Spread/Skill · ECLV · Scorecards