Reading a Meteogram
A Meteogram lines up the surface conditions with the atmosphere above one model grid cell. Each vertical slice is a forecast sounding, and the horizontal axis joins those soundings through the day. Read the chart from the flight band outward: usable height first, then stability and moisture, then the wind through that height, and last the surface fields that drive the change. What a chart carries depends on the model. The catalogue declares each model’s fields, and What each model can, and cannot, tell you explains the differences.
Read one complete convective cycle
Morning stability gives way to a deep midday unstable column. The boundary layer, usable lift, and cloud base follow distinct arcs beneath light wind that veers gently and gains only a few km/h with height.
A complete fair-weather convective cycle. This Meteogram shows one atmospheric profile in Etc/UTC. Morning stability gives way to a deep midday unstable column. The boundary layer, usable lift, and cloud base follow distinct arcs beneath light wind that veers gently and gains only a few km/h with height.
Check lift, climb limits, wind, surface forcing, and pressure
- When does usable lift reach launch? Follow the solid usable-lift line across the horizontal launch marker. A valley thermal forecast below launch does not establish a launch cycle.
- What stops the climb? Compare usable lift with the dashed boundary-layer top and dotted cloud base. Their order identifies an energy limit, a stable cap, a moisture limit, or a sounding ceiling.
- What occupies the flight band? Read wind from launch to usable-lift top. Cloud shading puts model-cloud or near-saturated layers inside that band; the 0 °C contour locates the freezing level.
- Does the surface support the profile? Thermal velocity w* should grow with boundary-layer depth. Cloud and precipitation can interrupt the surface heat that feeds it, and the CAPE strip says whether that heat has fuel enough to overdevelop.
- Is the synoptic pattern changing? Pressure tendency can flag an approaching system or a building ridge. It cannot select a launch hour by itself.
Pressure, precipitation, cloud, and w* use separate scales
The strips share the time axis, but each has its own numeric scale. Every model carries the first four. A model that publishes CAPE adds a CAPE strip, and a model with layered cloud adds a three-row layer strip.
| Strip | Measurement | Reading limit |
|---|---|---|
| Pressure · kPa | Mean sea-level pressure at the grid cell. | The line shows tendency at one point; wind responds to pressure differences across space. |
| Precip · mm/h | Liquid-equivalent precipitation rate. semantics.precipitation declares an instantaneous diagnostic or a step-window mean rate. | The rate does not identify rain, snow, or freezing precipitation. |
| Cloud · % | Total cloud fraction in the model column. | Coverage has no height; body shading and cloud base carry vertical information. |
| w* · m/s | Thermal velocity derived from surface heat flux and boundary-layer depth. | It is an energy scale, not a predicted glider climb rate. |
| CAPE · J/kg | Surface-based CAPE at the grid cell. | Fuel for overdevelopment, not a storm forecast; a dimmed cell means a CIN cap is holding it down. |
| Layers · % | Low, middle, and high cloud fraction, on models that publish them. | The rows are terrain-following model layers, not fixed altitudes. |
| Smoke · µg/m³ | Near-surface wildfire smoke, with a haze tint that deepens with the model’s own published optical depth. Smoke joined from another model is labelled with that model and its run and draws no tint, because its column is quarantined. | Surface air can be clean under an elevated plume (line low, tint deep) and vice versa; see Smoke and thermals. |
| Sun · W/m² | Satellite-measured surface sunlight (GOES-18), with a shadow that deepens as the sky under-delivers against a clear-sky expectation. | A measurement, never a forecast; it always renders below the provenance divider. |
| AOT · 550 nm | Satellite-measured aerosol optical thickness (GOES-18): the same sun-dimming number the smoke strip forecasts, tinted with the same haze encoding so the two compare directly. | Measured like the Sun strip, not forecast; below the divider, daytime only; a missing hour means no accepted retrieval, not clear air. |
Strips below the dashed divider, labelled beside this model — not in its physics, come from another source: a different model’s forecast or a satellite measurement. Each is named inline with its run or instant. Nothing below the divider was part of the forecast above it.
Each vertical slice of the main panel is one atmospheric column at the local time printed below it. The left axis gives metres above sea level and the right axis gives feet above sea level, so the launch marker, winds, temperature contours, cloud layers, and derived heights all share one vertical coordinate. The coloured field interpolates lapse rate between the model’s pressure levels. It is not a stack of observed layers.
The launch marker comes from the renderer, and the document does not carry
it. The consumer passes a launch elevation at render time, normally the
measured elevation pick from
site-context.json. A render given
no launch draws no marker. Surface values refer to the model’s own
smoothed terrain.
The mountain the model sees
shows how large that gap is and how to read across it.
In the complete example, pressure eases from 90.30 to 90.01 kPa before a small evening rebound to 90.10, no precipitation reaches the grid cell, and w* peaks at 2.59 m/s at 15:00 UTC. Total cloud thins from 35% to 8% at peak heating, then rebuilds to 50% by 19:00. The profile also publishes CAPE and CIN, gust, model-PBL height, and layered cloud. At peak heating, CAPE reaches 780 J/kg, CIN weakens to −5 J/kg, the gust reaches 6 m/s, and the model PBL reaches 1,950 m AGL. The w* peak identifies the hour with the greatest modelled convective energy. Height, moisture, and wind describe the resulting column.
The CAPE strip classifies each hour as calm below 300 J/kg, watch from 300 J/kg, risk
from 800 J/kg, or severe from 1,500 J/kg. These labels are renderer classes, not weather-severity
categories or flight advice. A dimmed cell means the model also publishes CIN of −50 J/kg or
stronger, which can delay or suppress the convection that CAPE alone suggests. The front-arrival
scenario carries that controlled sequence: a calm cell begins under −180 J/kg of CIN, a 360 J/kg
watch cell remains dimmed while CIN is −59 J/kg, and a 330 J/kg watch cell becomes undimmed after
CIN weakens to −34 J/kg.
What each model can, and cannot, tell you
explains what surface-based CAPE measures and why an empty cell means the
model declined to answer, which is different from a zero.
Read pressure as a tendency
The pressure strip scales itself to the displayed hours. A small tendency
can fill it just as the large fall in the front-arrival lesson does, so
the height of the line is no guide to the pressure gradient.
Falling pressure often accompanies an approaching low, trough, or front. Read it with thickening cloud, precipitation, and strengthening or backing winds before inferring deterioration. Rising pressure often follows a frontal passage or marks a building ridge. Clearing can follow, while subsidence under the ridge can also strengthen an inversion and trap valley haze or smoke. A flat line says that mean sea-level pressure changes little at that grid cell during the displayed hours.
Wind responds to the pressure difference between places, and the value at one launch does not tell you that. Two days can both read 101.2 kPa and carry different wind because the surrounding isobars differ. Treat the strip as a clue that the weather pattern is changing, then check forecast maps, winds aloft, and observations.
Pressure tendency is one clue in a sequence
Pressure falls first, followed by increasing cloud, wind, and then precipitation as the synthetic front arrives.
A controlled frontal arrival sequence. This Meteogram shows one atmospheric profile in Etc/UTC. Pressure falls first, followed by increasing cloud, wind, and then precipitation as the synthetic front arrives.
- Falling
- Can accompany an approaching low, trough, or front; companion fields establish the sequence.
- Rising
- Can follow a system or mark a building ridge; it does not guarantee useful mixing.
- Flat
- Reports little pressure evolution at that point, not a weak spatial gradient.
Read the stability scale against a rising parcel
The chart reports the local environmental lapse rate in degrees Celsius per 1,000 ft, and the sign matters. Negative values mean the environment cools with height. Positive values mean temperature increases with height, which is an inversion.
An unsaturated rising parcel cools at about 3 °C per 1,000 ft. When the environment cools at least that quickly, the parcel can remain warmer than its surroundings and continue upward. The red and orange classes at or below −2.5 °C per 1,000 ft therefore mark the least resistance to dry convection. Between about −2.5 and −1.5, a dry parcel loses buoyancy more readily, while a saturated parcel may continue because condensation slows its cooling. The exact moist-adiabatic rate changes with temperature and moisture, so the chart’s fixed “conditional” bins are a reading aid rather than a parcel calculation. The −1.5 to −1.2 class sits near the moist-adiabatic range and remains condition-dependent. Values from −1.2 to 0 are stable. Positive grey classes are inversions: temperature warms with height and caps vertical exchange.
Read the shape before the colour name. A shallow unstable layer under a stable band supports low, short-lived mixing. A deep unstable column with positive w* supports a deeper boundary layer and can mix stronger winds from aloft toward launch. An unstable column ending in a stable lid can produce a defined top and organized climbs below it. An inversion crossing launch height must erode before surface-driven air can connect the valley with launch. A red column at night or under zero surface heat still has no modelled thermal engine. Lapse rate describes how readily the air would convect, and w* describes the heating that drives it.
Read stability as a vertical sequence through time
Similar surface heating can erode an inversion, remain trapped below one, or build a deep mixed layer.
Three profiles compare an eroding morning inversion, a persistent inversion, and a complete convective cycle using the reference stability field and default package tokens.
A morning inversion erodes past launch
The mixed layer starts below launch, then daytime warming deepens it through launch altitude.
A persistent inversion caps daytime heating
Strong surface heating is not enough to erase a warm cap, leaving the boundary layer below launch.
A complete fair-weather convective cycle
Morning stability gives way to a deep midday unstable column. The boundary layer, usable lift, and cloud base follow distinct arcs beneath light wind that veers gently and gains only a few km/h with height.
- Very unstable≤ -3 °C/1,000 ft
- Unstable≤ -2.5 °C/1,000 ft
- Conditional · strong≤ -2 °C/1,000 ft
- Conditional≤ -1.5 °C/1,000 ft
- Near neutral≤ -1.2 °C/1,000 ft
- Stable≤ 0 °C/1,000 ft
- Inversion≤ 0.5 °C/1,000 ft
- Strong inversionhighest class
Separate cloud cover, cloud base, and cross-hatching
Cloud percentage is the model’s total column coverage. It does not say where the cloud sits. The dotted cloud-base line estimates the lifting condensation level for a parcel starting at the model terrain, which is the height where that surface parcel would first saturate. When the sampled column is already saturated lower down, the line drops to the model’s own cloud.
The body shading answers a different question. On most models the renderer grades each level by dew-point depression, densest below 0.5 °C (the classic hatch threshold), which infers cloud from near-saturation. On a model that publishes its own cloud fraction per level, the shading comes from that cloud directly, and the model’s own statement takes precedence over the inference. Either way, the shaded layers sit in the model sounding itself. What each model can, and cannot, tell you lists which models publish cloud and which leave it to inference. A shaded layer above a high surface cloud base can therefore be mid-level or upper cloud that the surface parcel did not create. Shading through the flight band means the model places cloud in the air pilots would fly through.
The three moisture signals can disagree without contradicting each other. The cloud-limited example keeps total coverage at 15%, while one sampled pressure level is saturated and the published cloud base caps usable lift near 2,079 m. A small coverage fraction can still come with a cloud layer that matters for height, and neither signal replaces the other.
Coverage, cloud base, and sampled saturation answer different questions
A horizontal coverage fraction cannot locate cloud vertically, and one cloud-base height cannot describe every moist layer aloft.
At the selected hour, total cloud coverage is 15 percent, published cloud base is 2079.3 metres, and 1 pressure level is within 0.5 degrees Celsius of saturation.
Total cloud
What fraction of the model grid cell is covered?
Published cloud base
Where does the lower parcel-or-column moisture limit sit?
Near-saturated samples
Which published pressure levels put temperature within 0.5 °C of dew point?
- 800 hPa2115 m · ΔTd 0.0 °C · RH 100%
Add temperature and moisture to precipitation
The precipitation strip reports the liquid-equivalent rate in mm/h.
instantRate means the provider’s diagnostic at validAt.
windowMeanRate means the step’s accumulation divided by the length of
that window. Account for that difference before comparing rates.
The strip does not classify phase. The 0 °C contour shows the dry-bulb freezing level, and the shaded layers show where the sampled column is near saturation. Precipitation reaching a launch in air well above 0 °C is likely rain. A subfreezing column supports snow. A warm layer above a subfreezing launch can melt snow and let it refreeze, so a precise phase call needs the full temperature and wet-bulb profile. The freezing contour alone is not enough.
The front-arrival example shows these signals separately. Over its final six hours, precipitation builds from zero to an instantaneous peak of 4.0 mm/h in the second-to-last hour, then eases to 3.0 mm/h, while the package renders temperature and moisture through the full column. The precipitation rate and the 0 °C contour are evidence for a fuller phase analysis. They do not make the phase call on their own.
Precipitation amount and phase are separate questions
A precipitation-rate strip and a freezing contour provide evidence, but neither alone classifies what reaches the ground.
The final six hours of a controlled front reach 4.0 millimetres per hour. Temperature and dew-point geometry show the atmospheric fall path while the profile declares instantaneous-rate precipitation semantics.
The contour is evidence, not a verdict. Phase depends on the temperature and moisture through the complete fall path, including melting and refreezing layers that a single height cannot summarize.
Boundary-layer top, usable-lift top, and cloud base answer different questions
- Boundary-layer top · dashed amber. A dry parcel lifted from the model surface becomes no warmer than the environment at this elevation. It describes thermodynamic depth.
- Usable-lift top · solid blue. canadarasp’s strongest-core profile falls to a 1 m/s sink threshold here, unless cloud base stops it first. It describes a modelled climb limit.
- Cloud base · dotted slate. A surface parcel reaches saturation here, or the sampled column already has; the line takes the lower height. When this line pins the solid line, moisture limits usable height.
- Model boundary-layer top · tighter dash. The model’s own boundary-layer depth, placed on the altitude axis and drawn next to the parcel-derived dashed line, on models that publish it. The two answer the same question with different physics, so a gap between them is information rather than an error.
The complete example shows the energy-limited case. At 15:00 UTC the document puts usable lift at 3,082 m, above the parcel boundary layer at 2,829 m, and cloud base is higher still at 3,490 m, so moisture plays no part in limiting that climb. Read these numbers from the figure’s readout panel rather than the line vertices. The renderer smooths the cloud-base and usable-lift lines by default, so a sharp one-hour spike like this one draws flattened while the published value stays exact. The cloud-limited example shows the opposite: its cloud base pins the solid line at 2,079 m, a moisture-limited climb, while the parcel-derived boundary layer reaches 4,215 m.
Thin isotherms show the elevation of fixed temperatures, and the emphasized 0 °C contour is the freezing level. Body shading and cloud base stay separate. The shading shows every near-saturated layer in the column. The cloud-base line gives a single height, the lowest point where a climb would meet cloud, whether from the lifted parcel or a model layer.
The boundary-layer and usable-lift lines can cross because they do not estimate the same quantity. Why usable lift can sit above the boundary layer explains the updraft coefficient and sink threshold behind the solid line. On an ensemble model, each of these series carries a p25–p75 band. The band is the spread of the members, and it is not a confidence interval. Ensemble values explains how to read it.
Three heights answer three different questions
Usable lift, the parcel-derived boundary-layer top, and cloud base can separate or meet because they encode different limits.
A complete fair-weather convective cycle. This Meteogram shows one atmospheric profile in Etc/UTC. Morning stability gives way to a deep midday unstable column. The boundary layer, usable lift, and cloud base follow distinct arcs beneath light wind that veers gently and gains only a few km/h with height.
Wind barbs: read the flight band
The shaft points toward the direction the wind comes from. A half tick counts 5 units, a full tick 10, and a pennant 50. A circle means calm. The unit is a chart convention and is not part of the symbol. Aviation charts commonly count knots, and canadarasp and this project count km/h, so read the printed unit before decoding the feathers.
On models that publish a gust, a “G” readout above the surface barb shows the gust in the same printed unit. Each model declares whether that number means “gusting to” over the past hour or an instantaneous sample; see What each model can, and cannot, tell you. The wind-profile example publishes no gust, so the barbs carry the whole story: around the selected hour, wind strengthens from 23.4 km/h near launch to 99 km/h at 3,025 m while turning from 5° to 124°.
Scan vertically at the hour of interest. Start near launch, continue through the usable-lift band, and read the wind just above its top. Speed increasing with height implies stronger drift and can bring faster air toward launch as mixing deepens. A directional change through the band marks shear and can place part of the climb in lee flow even when the launch-level barb looks acceptable. Then scan through time for the arrival of valley circulation, strengthening synoptic flow, or a reversal.
Read wind from launch through usable lift
Wind strengthens and turns materially from launch height toward the top of usable lift.
Wind shear crosses the usable-lift band. This Meteogram shows one atmospheric profile in Etc/UTC. Wind strengthens and turns materially from launch height toward the top of usable lift.
Follow the wind through the lift band
Move through the day's hours while the package samples the same wind field at launch and usable-lift top.
An interactive vertical wind profile showing changing wind speed and direction between launch altitude and the derived usable-lift top.
Conclusion. A single surface wind cannot describe this column: wind strengthens and turns between launch and the top of the usable-lift band.
Two overlays that fail in mountain terrain
The optional buoyancyShear strip and verticalVelocity field are off by
default because of mountain sites. Both rest on flatland assumptions, and
terrain breaks those assumptions in specific ways.
The B/S ratio reads as poor on good days. The buoyancy/shear ratio
divides thermal velocity w* by the vector wind difference between the
surface and the boundary-layer top. Its surface end is the model’s 10 m
wind. On flat ground that wind is the bottom of the boundary layer’s own
profile, so a large difference across the layer is a real gradient a
thermal has to climb through. In a mountain valley the 10 m wind is
thermally driven valley circulation: anabatic flow that rotates with the
sun and decouples from the flow aloft. There the subtraction measures the
angle between two separate wind systems, and no parcel experiences it as
a gradient. That angle is large on the best days by construction,
because the valley wind follows the heating while the flow aloft follows
the synoptic pattern. The ratio reads low exactly when conditions are
best.
B/S does not transfer to the valley traces
a production day condemned three times over. The height-resolved
windShear field asks the same question layer by layer within the
column, never across that decoupling, so it still works in terrain.
A sparse omega column misreads ridge lift as sink. Models declare
vertical velocity (omega) on only some of their pressure levels; RDPS
declares it on 850 and 700 hPa only. At a high site the model’s own
terrain sits above some of those levels, so a single level can be all
that is left. A band interpolated from one level makes a claim about the
whole column from almost no data. Near ridges the value at that level also
inverts in meaning. Air forced up a windward face
descends past it, so the strong sink a mid-column level shows over the
grid cell is often the mark of the very mechanical lift a pilot flies. For
this reason the scene does not draw the field when fewer than 3 declared
omega levels sit inside the altitude window, and it records that decision
in scene.suppressed. Build a scene graph
describes the rule and its inputs, and
What each model can, and cannot, tell you
lists which levels each model declares.
Add local evidence
A Meteogram samples one model grid cell. Use current observations, aviation forecasts, radar or satellite, forecast maps, and local site knowledge to resolve rotor behind a spur, a launch cycle inside that cell, smoke suppressing surface heat, the break time of a capped CAPE column, precipitation phase, and an early valley-wind arrival.
A forecast is the model’s statement, not a site assessment. Conditions at launch are measured by the pilot, and the launch decision is theirs.
The stability interpretation follows the
FAA Glider Flying Handbook,
the CAPE classes take their overdevelopment framing from
Weather Forecasting for Soaring Flight (WMO-No. 1038),
and pressure tendency follows the
National Weather Service observing handbook.
The rendering descends from
canadarasp’s windgram-continental.ncl.