All posts
Field Explainers·6 min read

Reading a forecast sounding without overreading it

The sounding endpoint gives you the full vertical profile at any point in the domain. Here is how to read the things a sounding is good for and ignore the things it is not.

The sounding endpoint returns the model's full vertical profile at a point: temperature, dewpoint, wind, and pressure at every eta level, for every forecast hour. It is the richest output the API provides, and also the most dangerous, because a skew-T diagram invites over-interpretation. Pilots and integrators alike will stare at it and see patterns that are not really there.

What soundings are good for. Three things, reliably. First, the shape of the boundary layer: where it starts, where it tops out, and how deep the mixed layer is. You can see this as a straight dry-adiabatic segment rising from the surface. The altitude where the line bends is the top of the boundary layer. This is almost always the most useful read off a sounding.

Second, the inversion structure. Above the mixed layer, how strong is the cap? A tight temperature jump at the PBL top (temperature rising by 2 to 4 C over 100 m) is a hard cap: thermals top out here, no cloud above, `hglider_agl_m` is the PBL top. A gentler stable layer means the day has the potential to go deeper as heating continues and potentially overdevelop.

Third, moisture. The spread between temperature and dewpoint tells you how close the air is to saturation. A narrow spread in the PBL means cloudbase is low. A wide spread means blue day. A narrow spread above the PBL is a warning for spreadout (a mid-level moisture layer will feed widespread cumulus once convection punches through the cap).

What soundings are not good for. Anything claiming more precision than roughly 100 m in vertical or 0.5 C in temperature. The model has finite vertical resolution (45 levels, coarser above 3 km), finite horizontal resolution (4 km, so the sounding is an average over 16 km²), and finite physical fidelity. A sounding that looks like it shows a wafer-thin 50 m inversion layer at 1450 m might be real or might be a single resolved level doing its best. Do not plan around details smaller than the grid.

Do not overread small wind features. Mid-level wind kinks on a sounding are the most over-interpreted signal pilots pick up. Any layer less than two or three grid levels thick is below the resolution of the model's interior wind field. The large-scale gradients in the wind field are trustworthy. The wiggles are mostly numerical.

Do not try to infer thermal strength from sounding lapse rate alone. The instability a sounding shows is necessary but not sufficient for strong thermals: you also need surface heating (which the sounding does not show directly), you need the inversion to be weak enough to break (captured in `thermal_trigger_temp_c`, not visible on the skew-T without manual work), and you need moisture conditions that avoid overdevelopment. If you want a thermal strength number, use `wstar_ms`. The sounding is for structure.

Soundings are returned as JSON rather than rendered skew-Ts, because the audience is mostly integrators building their own rendering. A good sounding viewer makes the key features visible (PBL top, inversion, LCL, cloudbase) and does not overlay precision the model cannot support. There is an open question about whether to ship a canonical renderer from Convek itself: the current answer is no, because every integrator wants a slightly different one and getting it half-right is worse than letting them render it themselves.

Full sounding schema is on the API reference. If you are building a sounding viewer for a pilot app and want to compare notes, contact us. We are interested in how people are rendering them.