Methodology & sources
Every darkness rating on Stargaze Atlas is measured from VIIRS 2024 annual-average satellite night-lights (Elvidge/Earth Observation Group, CC BY 4.0), sampled as a 3×3-pixel mean at each town's populated center and mapped to a darkness class and an estimated Bortle band. This page documents the exact sources and licenses, how the class thresholds are defined, why the rating is an honest satellite upward-radiance PROXY rather than a survey-grade sky-brightness reading, how the "darker skies within reach" list is built, and how the live "tonight" panel reads NOAA and Open-Meteo data in your browser without sending your location to us.
Data sources
| Source | Publisher | License | Retrieved | Notes |
|---|---|---|---|---|
| VIIRS 2024 annual-average nighttime lights | Elvidge / Earth Observation Group (Colorado School of Mines) | CC BY 4.0 | 2026-07-15 | The moat: upward radiance (nW/cm²/sr). Accessed via the open Zenodo mirror (the EOG host is login-walled). |
| GeoNames — U.S. populated places (cities5000) | GeoNames | CC BY 4.0 | 2026-07-15 | Town names and populated-center coordinates (not polygon centroids, which read false-dark on coastal/large-area cities). |
| SWPC OVATION aurora model + planetary Kp | NOAA Space Weather Prediction Center | Public domain (U.S. Government) | live | Fetched in your browser for the live 'tonight' aurora odds — never on initial page load. |
| Open-Meteo forecast (cloud cover) | Open-Meteo | CC BY 4.0 | live | Fetched in your browser for tonight's cloud cover, using a town's public coordinates — never your exact location. |
How each town's darkness rating is measured
Every rating on Stargaze Atlas comes from VIIRS 2024 annual-average nighttime-lights — a satellite measurement of upward light radiance. For each of 4,338 U.S. towns (population 10,000 or more), we sample a 3×3-pixel mean radiance at the town's populated-center coordinate and map it to a darkness class and an estimated Bortle band using the fixed thresholds below.
Upward radiance is a strong, well-established proxy for how bright the sky is overhead: the more light a place sends up into the sky, the more scatters back down as skyglow. Sampling a 3×3 block (rather than a single pixel) smooths out sensor noise and small gaps; using the populated center (rather than a town's polygon centroid) keeps coastal and large-area towns from reading falsely dark on an offshore or undeveloped pixel.
The class thresholds
| Radiance | Class | Bortle | Sky |
|---|---|---|---|
| < 0.25 | 1 | 1–2 | Truly dark sky |
| 0.25 – 0.75 | 2 | 3 | Rural sky |
| 0.75 – 3 | 3 | 4 | Rural / suburban transition |
| 3 – 8 | 4 | 5 | Suburban sky |
| 8 – 20 | 5 | 6 | Bright suburban sky |
| 20 – 40 | 6 | 7 | Suburban / urban transition |
| 40 – 100 | 7 | 8 | City sky |
| ≥ 100 | 8 | 9 | Inner-city sky |
Why this is a PROXY, not a survey-grade sky-brightness reading
This matters, so we say it plainly on every page: the Bortle band here is an estimate from satellite radiance, not a measurement of sky brightness taken on the ground with a sky-quality meter. Two honest limits follow. First, the reading is for the town center — the genuinely dark skies most people picture are usually a short drive out of town, which is exactly what the "darker skies within reach" list on each town page is for. Second, VIIRS measures upward light, so a place with strict, well-shielded lighting (Flagstaff, Arizona is the classic example) can have a darker sky than its ground radiance alone suggests.
A small number of towns — currently around three of 4,338 — read implausibly dark for their population, which usually means the town's center coordinate fell just outside the built-up area onto a dark pixel. Those pages carry a visible "data check" note, and we are refining that sampling. If a rating looks wrong for a place you know, it may be one of these; email us and we'll check it against the source.
Darker skies within reach
Each town page lists the nearest town in each darker class — a ladder from your sky toward truly dark skies, with the straight-line drive distance (great-circle, so real driving distance is a little longer) and each rung's Bortle band. We search within about 350 miles; a rung simply doesn't appear if no town of that darkness sits within range.
Tonight's live conditions — and your privacy
The "tonight" panel is computed live and entirely in your browser. Moon phase, sunset, astronomical twilight, and moonrise/set are calculated from standard astronomy formulas with no network call. Cloud cover comes from Open-Meteo and aurora odds plus the current Kp index from NOAA SWPC, fetched only when you open the panel — never on initial page load, so pages stay fast and self-contained.
When you use "stargazing tonight near me," your device location is used only in your browser to find your nearest town. Your exact coordinates are never sent to us or to anyone — only that nearest town's public coordinates are sent to the forecast services to look up its clouds. We set no cookies and store nothing about you.
Honest gaps, and what's next
Two things to know. Genuinely dark stargazing destinations that are tiny towns or unincorporated areas (many famous ones sit below the population floor) aren't individually rated yet; certified International Dark Sky Places are a planned addition that will cover them properly. And the radiance-to-Bortle thresholds above are a reasoned mapping, not yet calibrated against a published radiance-to-sky-brightness study — treat the band as approximate, and always favor a real on-the-ground check for a site that matters to you.
Update cadence
The VIIRS light-pollution data is an annual product; town ratings move when a new annual composite is released and this dataset is rebuilt. Tonight's Moon, cloud, and aurora figures are live every time you open a page.