Ensemble values
Any numeric position in a profile holds either a deterministic number or an ensemble object like this one:
{ "members": 21, "p10": 1.2, "p25": 1.8, "p50": 2.4, "p75": 3.1, "p90": 3.8}run.members declares how many members the run has in total. A position’s
own members counts the members that contributed at that position. It can
be lower when null or censored member values were left out. Do not rank an
absent value at zero.
A full-dropout position has exactly this shape:
{ "members": 0, "p10": null, "p25": null, "p50": null, "p75": null, "p90": null}Full dropout means no member contributed at that position. It is different
from an absent optional field, and from a position whose value is a plain
null.
Reading the block
p50 is the median of the members. It is neither a preferred member nor
the most likely outcome.
p25–p75 and p10–p90 describe how far the members spread at one
position. They are not calibrated probability intervals for an event.
The percentiles stay in order even when several of them share a value.
ceiledMembers appears on some height positions. It counts members that hit
the published column ceiling, where no physical top was resolved.
Wind direction is aggregated around the circle. Members clustered at 350° and 10° belong near north, where a plain arithmetic mean would give 180°. Use the published percentile object and the package’s scene, and do not recompute the direction as a straight average.
Count contributors before reading a percentile
A percentile block says how many members contributed and how many reached the published column ceiling.
9 ensemble members contribute to the selected boundary-layer value; 9 are column-ceiled and 0 are absent. The published p10, p50, and p90 are 4,200, 4,200, and 4,200 metres.
Declared members
Run membership from the profile and the package analysis envelope.
Position accounting
- Resolved
- 0
- Ceiled
- 9
- Absent
- 0
Ceiled values are lower bounds. Absent values never enter the ranking as zero.
Conditional distribution
- p10
- 4,200 m
- p50
- 4,200 m
- p90
- 4,200 m
These magnitudes describe the contributing members, not a calibrated probability.
Spread and censoring are different signals
Switch among controlled ensembles that are tightly grouped, widely grouped, or capped by the published column.
An interactive ensemble Meteogram comparing narrow and wide percentile bands with a separately counted column-censored case.
Conclusion. Percentile-band width describes the retained positions, while column censoring is separate member-accounting metadata; a narrow line at the column ceiling is not evidence of a resolved top.
Narrow safely in TypeScript
The profile reference has a worked example. Pick the guard that answers your question:
| Question | Guard |
|---|---|
| Does the spread band matter? | isEnsembleValue |
| Is this the zero-member dropout shape? | isEnsembleDropout |
| Does a numeric derivation need the median? | p50 from @azohra/meteo.briefing/derive, which returns a number or null |
| Does the integration reject ensemble documents outright? | isDeterministicProfile |
The scene graph draws median lines and percentile bands wherever the document has populated values. Dropout positions render as gaps. A level or hour whose required positions all dropped out adds nothing to the scene.
The column-ceiling study records how a 700 hPa source ceiling hid spread that appeared once the same member derivation was extended to 500 hPa.