Skip to content

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.

Heights
Fields
Contours and wind
Strips
Labels and reference marks
Pressure kPa 90.3 90 Precip mm/h 0.5 0 Cloud % 100 0 H M L Layers % w* m/s 3 0 CAPE J/kg 1500 0 900m 2953ft 1604m 5262ft 2308m 7572ft 3012m 9882ft 3716m 12192ft 4420m 14501ft 10 11 12 13 14 15 16 17 18 19 7° 9° 11° 16° 23° 25° 24° 17° 13° 9° launch 1050 m G7 G9 G11 G14 G18 G22 G20 G16 G11 G9 0° 10° 20°
Usable lift Cloud base Boundary layer Model boundary layer 0 °C Condensation LAPSE RATEVery unstableUnstableConditional strongConditionalNear neutralStableInvertedStrong inversion-3-2.5-2-1.5-1.200.5UnstableConditional instabilityStableInverted
A controlled, model-shaped profile. Toggle layers to isolate an encoding; unavailable controls declare fields this scenario intentionally omits.Units altitude m and ft · wind km/h · temperature °C · pressure kPa · precipitation mm · w* m/s

Check lift, climb limits, wind, surface forcing, and pressure

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

StripMeasurementReading limit
Pressure · kPaMean sea-level pressure at the grid cell.The line shows tendency at one point; wind responds to pressure differences across space.
Precip · mm/hLiquid-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/sThermal velocity derived from surface heat flux and boundary-layer depth.It is an energy scale, not a predicted glider climb rate.
CAPE · J/kgSurface-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 nmSatellite-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.

Pressure kPa 101.6 99 Precip mm/h 4 0 Cloud % 100 0 1217m 3994ft 1890m 6200ft 2562m 8406ft 3234m 10612ft 3907m 12817ft 4579m 15023ft 13 14 15 16 17 18 19 20 21 22 launch 1591 m G11 G13 G16 G18 G29 G40 G52 G65 G68 G72
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.
Point pressure falls ahead of thickening cloud, stronger wind, and precipitation. Its G values are instantaneous gust diagnostics, as declared by the profile, not hour maxima. The trace is not a spatial pressure-gradient map.Units pressure kPa · instant precipitation rate mm/h · cloud % · wind and instantaneous gust km/h · altitude m and ft

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.

w* m/s 3 0 900m 2953ft 1599m 5245ft 2298m 7538ft 2996m 9831ft 3695m 12123ft 4394m 14416ft 12 13 14 15 16 17

A persistent inversion caps daytime heating

Strong surface heating is not enough to erase a warm cap, leaving the boundary layer below launch.

w* m/s 3 0 900m 2953ft 1599m 5245ft 2298m 7538ft 2996m 9831ft 3695m 12123ft 4394m 14416ft 12 13 14 15 16 17

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.

w* m/s 3 0 900m 2953ft 1604m 5262ft 2308m 7572ft 3012m 9882ft 3716m 12192ft 4420m 14501ft 10 11 12 13 14 15 16 17 18 19
  1. Very unstable≤ -3 °C/1,000 ft
  2. Unstable≤ -2.5 °C/1,000 ft
  3. Conditional · strong≤ -2 °C/1,000 ft
  4. Conditional≤ -1.5 °C/1,000 ft
  5. Near neutral≤ -1.2 °C/1,000 ft
  6. Stable≤ 0 °C/1,000 ft
  7. Inversion≤ 0.5 °C/1,000 ft
  8. Strong inversionhighest class
The package derives field geometry from each validated scenario and classifies every lapse interval with STABILITY_CLASSES. Colour identifies a layer; w* identifies the surface forcing active at that hour.Units lapse °C per 1,000 ft · altitude m and ft · w* m/s

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.

01

Total cloud

What fraction of the model grid cell is covered?

Coverage has no altitude or thickness.
02

Published cloud base

Where does the lower parcel-or-column moisture limit sit?

One lower boundary; not a complete cloud profile.
03

Near-saturated samples

Which published pressure levels put temperature within 0.5 °C of dew point?

Cloud % 100 0 900m 2953ft 1597m 5239ft 2293m 7524ft 2990m 9810ft 3687m 12096ft 4384m 14382ft 15 0° 10° 20° Td 0° Td 10°
  • 800 hPa2115 m · ΔTd 0.0 °C · RH 100%
Package geometry locates the sampled layers; sparse levels still do not imply full vertical resolution.
The values come from one controlled cloud-capped profile. Dew-point depression and relative humidity are computed with @azohra/meteo.briefing/derive.Units cloud % · altitude m ASL · temperature and dew-point depression °C

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.

Precip mm/h 4 0 Cloud % 100 0 1217m 3994ft 1889m 6197ft 2561m 8401ft 3232m 10604ft 3904m 12808ft 4575m 15011ft 17 18 19 20 21 22 0° 10° 20° Td 0°

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.

The plot exposes rate, temperature, moisture, and launch height without making a precipitation-phase verdict.Units precipitation mm/h · temperature °C · altitude m and ft · time UTC

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.

900m 2953ft 1604m 5262ft 2308m 7572ft 3012m 9882ft 3716m 12192ft 4420m 14501ft 10 11 12 13 14 15 16 17 18 19 launch 1050 m
The line geometry is serialized directly from the scene; this focused view changes visibility, not the scenario values.Units altitude m and ft · height lines m ASL · time UTC

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.

900m 2953ft 1599m 5245ft 2298m 7538ft 2996m 9831ft 3695m 12123ft 4394m 14416ft 12 13 14 15 16 17 launch 1050 m
Read the printed unithalf feather 5 · full feather 10 · pennant 50 km/hThe same shapes often count knots on other aviation charts.
Selected hour, sampled from the rendered scene
AltitudeWind fromSpeedBarb rounds to
1,002 m220°10.8 km/h10 km/h
2,125 m116°51.3 km/h50 km/h
4,225 m34°27.4 km/h25 km/h
The shaft points toward the direction the air comes from. The serializer draws every shaft, feather, pennant, placement, and rotation; the table samples its selected-hour scene graph.Units wind speed km/h · direction degrees from true north · altitude m ASL

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.

At launch 1.8 m/s from 338°At usable top 6.3 m/s from 57°Vector shear 6.2 m/s
900m 2953ft 1597m 5239ft 2293m 7524ft 2990m 9810ft 3687m 12096ft 4384m 14382ft 15 launch 1050 m

Conclusion. A single surface wind cannot describe this column: wind strengthens and turns between launch and the top of the usable-lift band.

Wind components are interpolated from the package scene; vector shear is calculated by @azohra/meteo.briefing/derive.Units wind m/s and degrees from · shear m/s · height m MSL

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.