← TTastro Design & Theory 中文
Light-Pollution Map × Field Measurements · Divergence Analysis

The map is trustworthy where it's bright,
and drifts further the darker it gets

We take — clear-sky, moonless, zenith SQM measurements and bin them by the theoretical value the light-pollution map assigns, then look at the gap. The conclusion is clear: over rural/exurban skies (Bortle 4) the two nearly coincide, but as you move into low-pollution dark sites (Bortle 1–3) the map begins to systematically overstate how dark the sky is.

Bortle 4 (rural/exurban)
—
Median residual · —% fall within ±0.2
vs
Bortle 1–3 (dark sky)
—
Median residual · measurements are generally brighter than the map

Residual = measured − map theory; a negative value means the measurement is brighter than the map (i.e. the map overstates the darkness).

01

The gap widens as the sky gets darker

The horizontal axis is the map's theoretical SQM (darker toward the right). The center line is the median measured residual at each brightness; the dark band is the 25–75 percentile range, the light band the 10–90 percentile range. The background blocks mark the map-SQM interval of each Bortle class. Watch how the center line slides down from near 0.

Residual (measured − map) vs. map SQM
Gray dots are individual readings; the closer to the "residual = 0" dashed line, the more accurate the map
Median residual 25–75 / 10–90 percentile bands Residual = 0 (perfect agreement)
Over the darker half (map ≥ 20.5), for every 1 magnitude darker the map claims, the measurement falls — magnitude short of keeping up — a clear downward slope. The best-agreement zone is at map SQM ≈ 21.0–21.5 (the Bortle 4-to-3 boundary): median residual —, with —% of readings falling within ±0.2 mag.
02

Class by class: how the agreement collapses

For each Bortle class we count the "share of readings within ±0.2 mag" — the map's reliability at that class. Bortle 4 and brighter hold steady; from class 1–3 the agreement drops off markedly.

Map reliability · by Bortle class
Bar height = share of measurements within ±0.2 mag of the map value; the number is that class's median residual
BortleEnvironmentMap SQM rangeSamples Measured p10–p90Measured medianMedian residualWithin ±0.2Match
03

Misalignment with the "nominal Bortle SQM"

Each class has its nominal SQM interval (gray boxes). Overlay the measured distribution (box = 25–75 percentile, whiskers = 10–90 percentile, horizontal line = median): the Bortle 4 measurements sit right inside the box; but the class 1–3 boxes sink as a whole and fall outside the frame — where the map says "class 1," the measurements are often only "class 3–4" dark.

Measured SQM distribution vs. nominal Bortle interval
Gray box = that class's nominal SQM interval; colored box = measured distribution (colored by residual direction)
Nominal Bortle interval Measured brighter than map (dark end) Measured darker than map (suburban)
04

Dark-end decoupling · tune the thresholds yourself

The darker it gets, the closer zenith SQM presses against its physical ceiling (~22.0) and the less it changes; yet two sites with the same zenith reading can have wildly different surrounding dark areas. Drag the sliders to change the definition and thresholds, and drag the gold dashed line in the scatter plot to set the "crossover cutoff line" — the charts, readouts, and class table below recompute in real time. However you define it, you'll see the zenith plateau near ~21.8, after which the size of the open wilderness takes over.

Dark-area extent metric
Radius50 km
Dark-sky threshold SQM≥21.30
Light-dome threshold SQM<20.50
Same zenith, different wilderness
—
Crossover: when the zenith plateaus
X-axis = selected dark-area metric, Y-axis = zenith SQM; the gold line is the mean, the dashed line the plateau value
—
BortleZenith bandSamplesZenith stdMetric medianMetric range
05

Which one is the true Bortle-1 dark sky

Three sites with nearly identical zeniths (21.9–22.0), yet the light-pollution reality across a 240 km square around each is completely different. Behind one and the same zenith reading lie three utterly different dark skies — and the difference is entirely in the size of the surrounding wilderness.

06

Terrain shielding: a dark sky's invisible moat

Light pollution is directional. A city tens of kilometers away contributes nothing if a ridge in that direction blocks it below the horizon — so "surrounding glow" must be combined with terrain shielding. Using public Mapzen terrain tiles, we can compute the horizon angle in every direction.

Crestone (Colorado, USA): terrain horizon angle by direction
City light domes hug the horizon (~0°); the higher the horizon angle, the more thoroughly the city light in that direction is blocked
DirectionNNEE · Front Range citiesSESSW · AlamosaWNW
Horizon angle3.2°5.8°3.9°2.1°3.8°5.6°12.1°2.7°

The entire eastern half is walled off by the Sangre de Cristo range into a 3–12° barrier that keeps the Front Range conurbation of Denver / Colorado Springs / Pueblo, 100 km away, completely below the horizon — the physical reason it remains a top-tier dark site despite being close to major cities.

With terrain added, "dark pockets" are correctly distinguished
Same zenith (~21.9–22.0); terrain gating cuts away the light domes blocked by mountains; the lower the glow index, the darker
SiteZenithRaw glowTerrain glowBlocked by terrain
Tivoli (Namibia desert)22.00−3.70−3.700%
Wiruna (Australia)21.96−2.42−2.420%
Kendrick Park (near Flagstaff)21.91−2.07−2.3952%
Crestone (backed by a 4300 m ridge)21.85−2.25−2.6156%
Kendrick Park has 52% of its glow blocked by the San Francisco Peaks (3850 m) → rescued from "a 3-class drop into a dark pocket" back up by 2 classes; Crestone is 56% blocked → actually surpasses Wiruna. Terrain also blocks moonlight (a measured full moon shielded by mountains brightened the sky 0.6 mag less).
07

Dynamic light-pollution rating · the full framework

Put all the factors together: a site's class is not a fixed number but a dynamic value that changes with the night's sky conditions, split into two axes — "light pollution" and "whether you can observe."

Rating formula
Static baseline (site-intrinsic, moonless) = f( zenith darkness , terrain-aware surrounding glow )
    · Class ≥4 (brighter): zenith-dominated
    · Class 1–3 (dark end): zenith + surrounding glow (incl. terrain shielding)

Per-night dynamic  effective SQM(t) = baseline − Δmoonlight(t) − ΔMilkyWay(t) − Δtwilight(t)
                       ↓  look up via the recalibration table
                    dynamic Bortle class(t)

Observability axis (independent)  = cloud (gate) + humidity + transparency

✅ Already fitted from 16k measurements

Zenith↔SQM recalibration, the two-way effect of cloud, and the moonlight-brightening curve (full moon high overhead +1.8 mag). These predictors are independent and act on the zenith, so they fit cleanly.

✅ Computed from public data

Surrounding glow (light-pollution tiles, distance-weighted d⁻²·⁵) + terrain shielding (Mapzen terrain tiles, horizon gating). No paid external data anywhere in the pipeline.

⏳ The only external ground truth needed

"How many classes the surrounding glow should knock off" — measurements give only the zenith while Bortle is a whole-sky scale, so this coefficient can't be fitted. For now it's anchored with a physical model + the Bortle definitions + Walker distances + benchmark sites.

External corroboration

The very definition of Bortle 1 vs 2 is "whether there's a light dome on the horizon" (SQM differs by only 0.15–0.4); NPS professionals use whole-sky ASL; Walker's law gives the distance threshold — all point to the same idea.

Field validation: China site 1 (class 4, map 21.24 ≈ measured 21.25, zenith-dominated, in agreement); site 2 (map 20.84 but measured only 20.20 — nearby street lights + high-humidity scattering, −0.64 mag, falls short of class 4) — showing that "sub-grid local pollution" needs external humidity / local-lighting data (v2).
08

Why this happens, and how to use it

The dark end has a "natural floor"

The real night sky is limited by airglow, zodiacal light, and the Milky Way itself, so the measured limit generally tops out around ~21.9–22.0. The map can extrapolate to darker values, but the sky can't get there; and disturbances like cloud, moon, and twilight only pull the reading brighter, so the dark-end residual is one-directionally negative and grows the darker it gets.

The Bortle scale is extremely dense at the dark end

In the nominal intervals, classes 1/2/3 are crammed into just 0.3 mag between 21.69–22.00, while class 4 alone spans a full 1.2 mag across 20.49–21.69. At the dark end a measurement error of a few tenths can cross a whole class, which amplifies the impression of "a big discrepancy from the nominal SQM."

The bright end isn't bias-free either

In the suburbs (Bortle 5–6) the measurement is instead slightly darker than the map (residual +0.1~+0.2), possibly related to the SQM-L's narrow field of view and the map's smoothing of near-suburban brightness; toward the city end (class 7 and below) agreement returns.

Zenith saturates → class becomes a spatial quantity

Past SQM≈21.7, the zenith reading hits the ceiling and stops rising (from Bortle 3 the standard deviation has already collapsed to 0.06, and by class 1 it is only 0.005). What decides "how many classes of dark sky" here is the area of the surrounding dark region — whether there's a light dome on the horizon and how deep the wilderness runs, exactly what Bortle described when he originally defined classes 1/2.

A recommendation for your analysis

Treat the map value as a reliable SQM estimate for regions that are Bortle 4 and brighter; once you reach dark-sky sites, stop using the zenith value to tell classes 1/2/3 apart and switch to areal metrics (distance to the nearest light dome, dark-area fraction within 100 km). This also explains your field observation that "differences in dark area far exceed differences in SQM."