E-PROFILE · Calibration monitoring Flag reference

Calibration flag reference

Every calibration carries a numeric quality flag. The Rayleigh and liquid-cloud methods share one flag vocabulary; a few molecular-fit flags are Rayleigh-only. A flag of 1 or 0.5 counts as a usable calibration, 0 means no data, and negatives are failures or unsuitable conditions. Click a flag in any station table to jump straight to its entry here.

1 Successful Both

Calibration succeeded — a lidar constant C_L was produced and passed every check.

Rayleigh: the range-corrected signal followed the molecular (Rayleigh) profile in a clean reference region and the sensitivity-perturbation ensemble agreed. Cloud: at least three fully-attenuating liquid-cloud profiles gave a consistent O'Connor coefficient.

How to recognise it: Green point on the time series; a diagnostic image exists for the date.

0.5 Partial success Both

Partial success — usable, but from limited evidence.

A calibration was produced from fewer profiles / a shorter clean period than the full-success threshold. Cloud: 1–2 valid liquid-cloud profiles (below the 3-profile bar). Rayleigh: only part of the night met the clear-sky criterion. Treat the value as lower-confidence.

How to recognise it: Light-green point on the time series.

0 No data Both

No data — nothing could be attempted.

No usable signal for that period: the file was missing or empty, or it carried no finite backscatter in the working range. Distinct from −5 (a file existed but every sample was NaN).

How to recognise it: No point; the Message column reads 'No data'.

-1 Unsuitable conditions Both

Unsuitable conditions — the scene is the wrong type for this method.

Rayleigh needs a CLEAR night so the signal can be matched to the molecular backscatter aloft; a cloudy / aerosol-laden night fails this. Cloud needs a fully-attenuating LIQUID cloud in the search window; a clear night legitimately has none. So −1 is expected and benign for the 'off' method, and the dashboard excludes it from success-rate denominators.

How to recognise it: The most common non-success flag. Cloud → 'No liquid cloud'; Rayleigh → 'Not a clear night'.

-2 Signal not proportional to molecular Rayleigh

Signal not proportional to molecular backscatter.

In the reference region aloft the range-corrected signal should decay like the known molecular (Rayleigh) profile. When it does not track the molecular curve — residual aerosol, thin cloud, or instrument issues — there is no clean region to anchor the constant, and the fit is rejected.

How to recognise it: Rayleigh diagnostic: signal and molecular curves diverge inside the fit window.

-3 Method disagreement Rayleigh

Method disagreement — two independent estimates of the lidar constant don't agree.

The Rayleigh constant is computed two ways and cross-checked. (1) C_L^window = the median of signal / molecular-backscatter taken directly inside the aerosol-free molecular reference window. (2) C_L^slope = the slope of the Rayleigh fit (signal vs molecular backscatter), which equals C_L attenuated by the aerosol two-way transmittance up to the window (C_L·T_a²); the transmittance T_a² is then estimated independently from a Klett aerosol-extinction inversion integrated from the ground to the window and divided out. The relative gap |C_L^slope − C_L^window| / C_L^window is compared to the configured tolerance (threshold_quality, ≈15 %); above it, the night is rejected as unreliable. The two routes agree in clean air but diverge when aerosol sits between the ground and the window — the Klett transmittance correction and the in-window value respond to it differently — so −3 is in practice the calibration's aerosol-contamination guard. Real example: STORNOWAY (0-20000-0-03018) on 2026-03-06 — the slope and window estimates disagreed by 17.9 % (> tolerance) and the night was rejected. Across Mar–May 2026 there are 183 such rejections, typically 15–18 %.

How to recognise it: Message reads 'Method disagreement: X%'. In the Rayleigh diagnostic, the 'Lidar constant C_L spread' panel shows the slope-method estimate sitting away from the window/perturbation ensemble (see example below).

-4 Missing model data (CAMS) Both

Missing model data (CAMS).

The calibration needs auxiliary model fields — molecular density (temperature/pressure) for Rayleigh, and water vapour for the transmission correction in the cloud method. When the required CAMS file or timestep is absent the calibration cannot proceed. Usually fixable by downloading the missing CAMS day.

How to recognise it: Message mentions CAMS / model data.

-5 Signal all-NaN Both

Signal is all-NaN.

Every backscatter sample in the working range was NaN / fill value — a data-quality failure distinct from 'No data': a file existed, but carried no finite values.

How to recognise it: Message reads 'all-NaN'.

-6 Uncertainty exceeds value Both

Uncertainty exceeds the value.

The estimated uncertainty on C_L came out larger than C_L itself — the result is not significantly different from noise. Rayleigh: the perturbation-ensemble spread was huge. Cloud: the per-profile coefficients scattered more than their median. The value is withheld.

How to recognise it: A value was computed but rejected; its relative uncertainty would exceed 100 %.

-7 Negative fit slope Rayleigh

Negative fit slope.

The linear fit of signal vs molecular profile returned a negative slope, which is unphysical (the constant must be positive). Indicates the fit window did not contain a valid molecular region.

How to recognise it: Rayleigh-only molecular-fit diagnostic.

-8 Fit issue: |b| > a Rayleigh

Ill-conditioned molecular fit (|b| > a).

A consistency check on the molecular-fit coefficients failed — the offset term dominates the slope term, flagging an ill-conditioned fit rather than a clean molecular signal.

How to recognise it: Rayleigh-only molecular-fit diagnostic.

-9 Another layer with lower signal Rayleigh

Another candidate window has much lower signal than the one chosen.

A molecular-window selection QC. Each candidate window's fit slope is a lidar-constant proxy; in clean air these are nearly equal across the 2–6 km search range (molecular two-way transmittance varies < 1 %). When the chosen window carries excess backscatter (typically an aerosol layer in or near it), its slope is inflated relative to the cleanest (lowest-signal) candidate window — meaning a cleaner molecular layer was available and the selection is suspect. The night is rejected when the chosen window's slope exceeds a robust cleanest reference (10th percentile of the clean-window slopes) by more than the threshold (default 2.0). Validated on L1 Mar–May 2026: clean nights cluster at ~1.1–1.4 (p95 = 1.4) with a clear gap to the aerosol tail above ~2.8 (e.g. STORNAWAY-type residual free-tropospheric aerosol; 0-20000-0-10838 on 2026-03-03 scores ~2.8). It catches contamination that the slope-vs-window cross-check (−3) lets through.

How to recognise it: Message reads 'Another layer with lower signal found (signal ratio X)'. In the Rayleigh diagnostic the range-corrected-signal panel shows a cleaner (lower-signal) layer than the chosen molecular window.

-20 Cloud: window transmission too low Cloud

Cloud rejected — window transmission too low.

Cloud rejection reasons (−20…−26) replace the generic 'no liquid cloud' when a cloud WAS present but every candidate profile failed a filter; the dominant filter (the one that rejected the most profiles) is reported. −20: the ceilometer window/blower transmission was below threshold for the cloud profiles, so they are untrustworthy.

How to recognise it: Message 'Cloud: window transmission too low'. Genuine clear sky stays −1.

-21 Cloud: laser energy too low Cloud

Cloud rejected — laser pulse energy too low.

The laser pulse energy was below threshold for the cloud profiles (degraded emission), so the integrated backscatter cannot be trusted for calibration.

How to recognise it: Message 'Cloud: laser energy too low'.

-22 Cloud: peak not sharp above Cloud

Cloud rejected — peak not sharp enough above.

The peak-sharpness test failed on the upper side: the backscatter 300 m ABOVE the peak was not a factor ≥ 20 smaller. The cloud did not fully attenuate the beam (not a suitable opaque stratocumulus), so the O'Connor integral constraint does not hold.

How to recognise it: Message 'Cloud: peak not sharp above'.

-23 Cloud: peak not sharp below Cloud

Cloud rejected — peak not sharp enough below.

The peak-sharpness test failed on the lower side: the backscatter 300 m BELOW the peak was not a factor ≥ 20 smaller — drizzle or a diffuse base, not a sharp liquid cloud base, so the profile is unsuitable.

How to recognise it: Message 'Cloud: peak not sharp below'.

-24 Cloud: aerosol below cloud Cloud

Cloud rejected — too much aerosol below the cloud.

The aerosol below the cloud contributed more than the allowed fraction (~5 %) of the total integrated backscatter, so the integral constraint B = 1/(2ηS) would be biased by the sub-cloud aerosol.

How to recognise it: Message 'Cloud: aerosol below cloud'.

-25 Cloud: cloud base out of range Cloud

Cloud rejected — cloud base out of range.

The detected cloud base fell outside the allowed [cbh_minheight, cbh_maxheight] band (too low — overlap/near-range artefacts — or too high), so the profile is excluded.

How to recognise it: Message 'Cloud: cloud base out of range'.

-26 Cloud: inconsistent neighbours Cloud

Cloud rejected — inconsistent neighbouring profiles.

The temporal-consistency filter removed the profiles: the lidar ratio of neighbouring in-cloud profiles did not agree within tolerance, so no stable run of consistent profiles remained — the cloud field was too variable to calibrate.

How to recognise it: Message 'Cloud: inconsistent neighbours'.

-99 Exception during calibration Both

Exception during calibration.

The calibration code raised an unexpected error for that day — a driver / IO / edge-case bug rather than a physical rejection. The Message column carries the exception type; these are worth investigating as code issues.

How to recognise it: Message shows an exception name (e.g. 'ValueError: ...').