Glossary#

Terms are written for scientific software engineers rather than meteorologists. Each entry states the concept plainly, then how it appears in tephpy. See Documentation Style for the entry and cross-reference rules.

tephigram#

A thermodynamic diagram that plots temperature against entropy on a rotated coordinate system, so that isotherms and dry adiabats form an exactly perpendicular straight-line grid. tephpy renders it as a Matplotlib projection named "tephigram".

sounding#

A vertical profile of atmospheric measurements (pressure, temperature, dewpoint, wind) from a single ascent. In tephpy a sounding is carried by the Sounding dataclass — pressure and temperature arrays (plus optional dewpoint and wind) held as pint quantities with station/time metadata — and drawn with ax.plot_sounding(...) as red temperature and green dewpoint profiles.

dewpoint#

The temperature air must cool to, at constant pressure and moisture content, to become saturated; it is never above the air temperature (equality means saturation). In tephpy it is the optional dewpoint field of a Sounding (°C internally, any pint temperature unit accepted), plotted green alongside the red temperature line.

profile#

One curve of a temperature-like quantity against pressure — a sounding’s temperature or dewpoint trace, or a computed parcel path (the calc.Profile dataclass). ax.plot_profile(...) draws it through the tephigram transform machinery.

potential temperature#

The temperature an air parcel would have if moved dry-adiabatically to the 1000 hPa reference pressure; written θ (theta). In tephpy it is the second native coordinate of the tephigram plane — transforms.theta_from_pressure_temperature computes it (°C) from pressure (hPa) and temperature (°C).

dry adiabat#

A line of constant potential temperature — the path an unsaturated parcel follows when lifted. On a tephigram, dry adiabats are straight lines exactly perpendicular to the isotherms.

isotherm#

A line of constant temperature. On a tephigram, isotherms are straight parallel lines; their exact perpendicularity to the dry adiabats is the diagram’s defining property and is asserted directly in the test suite.

isopleth#

A line along which one quantity is constant. The tephigram background is five isopleth families — isotherms, isobars, dry adiabats, moist adiabats, and lines of constant humidity mixing ratio — each drawn by one zoom-aware Matplotlib artist (IsoplethFamily) that selects the members appropriate to the current view.

isobar#

A line of constant pressure. Pressure is not an axis of the tephigram, so each isobar is a gentle curve across the temperature/potential temperature grid; tephpy labels isobars in hPa and reconfigures them via ax.isobars(...).

moist adiabat#
saturation adiabat#
saturated adiabat#
wet adiabat#

The path a saturated air parcel follows when lifted: heat released by condensation makes it cool more slowly than a dry adiabat. Each curve is labelled by its wet-bulb potential temperature — the temperature where it crosses 1000 hPa. tephpy computes moist adiabats with metpy.calc.moist_lapse() and truncates them at low temperature where they converge onto the dry adiabats; “moist adiabat” is the canonical name, matching the AMS Glossary headword and MetPy’s vocabulary.

wet-bulb potential temperature#

The temperature a parcel would have if brought saturated along a moist adiabat to the 1000 hPa reference pressure; written θw (theta-w). It is conserved along a moist adiabat, which is why tephpy uses it (°C) as the member value labelling each moist adiabat.

humidity mixing ratio#
mixing ratio#
isohume#

The mass of water vapour per mass of dry air, in g/kg. On a tephigram, a line of constant saturation mixing ratio (an isohume) marks where air of a given moisture content saturates; tephpy computes these lines with MetPy and labels them in g/kg via ax.mixing_ratios(...).

parcel#
air parcel#

An imagined small mass of air lifted through the surrounding environment without mixing with it — the tephigram’s basic tool for reasoning about stability. Its parcel ascent is what the diagram plots; in tephpy the parcel= option of calc.parcel_path chooses where that ascent begins: "surface" or "mixed-layer" (the lowest 100 hPa averaged).

parcel ascent#
parcel path#

The path a lifted parcel traces on the diagram: dry-adiabatically from its start level to the LCL, then along a moist adiabat above it. Comparing that path against the environment sounding is what yields CAPE, CIN, and the LFC and EL levels — the ascent is the construction, they are its readings. calc.parcel_path(...) computes it as a calc.Profile.

lifting condensation level#
LCL#
Normand’s point#

The level where a lifted, unsaturated parcel first saturates — on a tephigram it is Normand’s construction: the dry adiabat through the parcel’s temperature meets the humidity mixing ratio line through its dewpoint. calc.normand_point(...) returns it as scalar (pressure, temperature) pint quantities, calc.parcel_path splices it into the ascent exactly, and the operational -25 mb cloud-base correction is applied only when requested via cloud_base_correction=.

level of free convection#
LFC#

The level above which a lifted parcel becomes warmer than its environment and rises freely. In tephpy it is the lfc_pressure/lfc_temperature fields of calc.SoundingIndices — NaN quantities when the parcel never becomes positively buoyant (“does not exist” is an answer, not an error).

equilibrium level#
EL#

The level above the LFC where a rising parcel cools back to the environment temperature — roughly the anvil top of a thunderstorm. The el_pressure/el_temperature fields of calc.SoundingIndices; NaN when the parcel is still buoyant at the profile top (CAPE can be positive with no EL).

CAPE#
convective available potential energy#

The energy per unit mass (J/kg) available to a parcel between the LFC and the EL, where it is warmer than the environment — the fuel gauge for deep convection. calc.indices(...) reports it (0 J/kg — never NaN — when there is none) and ax.shade_cape(snd, parcel) shades the region.

CIN#
convective inhibition#

The energy per unit mass (J/kg, non-positive) a parcel must be given to reach its LFC through the layers where it is cooler than the environment — the lid that must break before CAPE is released. Reported by calc.indices(...) and shaded by ax.shade_cin(snd, parcel).

lifted index#

The environment-minus-parcel temperature difference at 500 hPa (°C); large negative values mean instability. The lifted_index field of calc.SoundingIndices; NaN when the profile tops out below 500 hPa.

radiosonde#

The instrument package a weather balloon carries aloft, transmitting pressure, temperature, humidity, and wind as it rises — the source of most real soundings. tephpy ingests radiosonde archives through the tephpy.io readers.

IGRA#
Integrated Global Radiosonde Archive#

NCEI’s quality-controlled archive of the global radiosonde record, distributed as one fixed-width file per station (version 2). igra.read(...) reads one ascent from such a file into a Sounding.

wind barb#

A glyph giving the wind at one level: the shaft points toward the direction the wind comes from, and its feathers sum to the speed — half barb 5 kt, full barb 10 kt, flag 50 kt, rounded to 5 kt bins; a bare circle is calm. ax.plot_barbs(snd) draws a sounding’s barbs on a staff in the right-hand gutter, each level at the height where its isobar meets the diagram’s edge.