Skip to content

Glossary

Each term has a short definition and a link to the page that covers it in full. A few words have two or three meanings in different parts of the project, and their entries list each one.

A versioned JSON file the engine publishes at a stable path. Readers accept one only through a contract guard. The kinds are profiles, manifests, catalogues, smoke, observation, and site context.

The forecast document for one site (<model>/sites/<site>.json). The engine writes it and renderers read it. Some pages call it a site profile or site-forecast document; all three names mean the same document.

A small document for each model, stored beside its profiles. It records which publication this is, what it covers, and what the build fetched. Model manifest.

models.json lists the available models and what each one declares: its cadence, levels, semantics, and declared capabilities. Model catalogue.

sites.json is the list of launches you write by hand. Each entry has a slug, name, coordinates, and timezone, and nothing about the terrain. Configure launches.

site-context.json holds measured facts about each site: the chosen elevation, the surrounding terrain, and land cover. The engine measures it, so you don’t edit it. Site context document.

A launch is the place you fly from. A site is that launch’s record in the data. The docs say launch when they mean the place and site when they mean the files (sites.json, the site block, siteSlug). Both refer to the same thing.

One execution of a model. A published run is identified by the pair (run.referenceTime, run.generatedAt). See publication identity.

run.referenceTime is the moment the model run starts from. Every forecast hour counts forward from it. The docs usually write the field name.

A document names its family with schemaVersion. Whether you can read it depends on the package version you installed. Compatibility explains the rule.

On its own, capability means a product area: the briefing, forecast, station, grib, and j2k capabilities, as in meteo <capability> <command>. A declared capability is a flag in a document’s capabilities block that says what a model or a station can publish.

The person or club that runs the engine and publishes the forecasts their audience sees. The responsibility boundary lists what the operator is responsible for.

The engine is the @azohra/meteo.forecast package. An instance is one operator’s deployment of it. The project ships only the engine. Engine and CLI.

The write side is the engine, which derives and publishes documents. The read side is @azohra/meteo.briefing, which works only from what was published. The read side.

The project’s main chart. It lines up surface forcing with the atmosphere above one model grid cell. Reading a Meteogram explains every mark.

One of the narrow rows under the Meteogram’s main panel, such as pressure, precipitation, cloud, or w*. Every strip shares the time axis and has its own scale. Reading a Meteogram.

The wind symbol. The shaft points to where the wind comes from. A half tick counts 5, a full tick 10, and a pennant 50, in the unit printed on the chart. Reading a Meteogram.

The layer of air that surface heating mixes. Its top is the dashed line on the chart, written BL top in the docs. PBL is the depth the model itself reports (pblHeightM, metres AGL). It answers the same question with different physics and is drawn beside it. Reading a Meteogram.

The convective velocity scale, derived from surface heat flux and boundary-layer depth. It is the number in the w* strip, stored as thermalVelocityMps. It measures the energy available and does not predict a climb rate. Reading a Meteogram.

The modelled height where climbing stops. It is where the strongest-core lift profile falls to the sink threshold, or cloud base if that comes first. It is the solid line on the chart, stored as usableLiftTopM. Reading a Meteogram.

The glider sink rate used to compute usable lift. The engine stores the result for 1.0 m/s, and the package can recompute the line for any other value. Pure derivations.

Serializable geometry built from one validated profile, independent of any renderer. The SVG serializer draws it, and the hit-testing queries read it. Scene graph.

A typed statement about one forecast. It has a kind, its numbers, the hours it refers to, and the thresholds used to compute it. Analyze a profile.

Stored derivations need raw model inputs, so the engine computes them and writes them into the document. Pure derivations depend only on the published document. Who owns each value explains the split.

An append-only gzip JSONL file for each month, holding everything a dataset published that month. A small index file beside it records byte offsets. History archives.

A loop a reader runs to keep its own copy of published documents. It polls runs.json, stores each complete publication, and keeps serving the last good copy through gaps. Run an ingest.

Two senses. The briefing package’s /transport subpath loads published documents consistently on the read side. The engine’s provider transports are the ways it fetches data from ECCC and NOAA on the write side.

Both senses come from the code. The station package’s wire contract is the shape of a live station document and its HTTP protocol. The engine’s [wire] report is the transport summary every build prints. Tune the wire explains how to read it.

A pair of functions (meta and load) that turn one station vendor’s data into a wire document. How adapters work.

Three senses, each used on its own page:

  • An ensemble member is one of a run’s perturbations (Ensemble values).
  • A comparison member is one (model, referenceTime) pair (Compare profiles).
  • A gzip member is one block of an archive that can be decoded on its own (History).

A station feed is the document the /feed endpoint returns, with every configured station in one response (Getting started). A model feed is a provider’s published data stream (Forecast model feeds).

This rule applies everywhere in the project. When an optional field is absent, it means not published or not measured, and a reader must never show it as zero. Compatibility states the rule formally.