Built for landscape astrophotography. Not for subscriptions.
Most of us only get a handful of clear, dark hours each month to do what we love. I built DarkHours because I needed a highly precise predictive tool for my own landscape astrophotography. It's open-source, free, and designed to help make the most of every dark hour.
Bortle class & SQM analysis, clear weather dark hours calculations, seeing & transparency forecasts, and cloud layers by altitude. Also a one-tap red night-vision mode for checking the forecast at 2 AM without losing your dark adaptation. Every metric sourced and time-stamped. Free, open-source, no account required.
The Bortle scale rates night sky darkness from 1 (the darkest skies on Earth) to 9 (inner-city glow). DarkHours calculates it from measured light pollution data at your exact coordinates. Read more on Wikipedia.
A plain average lets three good numbers hide one dealbreaker: a night with perfect moonlight and clear skies could still score well despite crushing light pollution. A geometric mean can't hide it: one bad factor drags the whole score down, the same way a cloudy night ruins a shoot regardless of how dark it is otherwise.
DarkHours uses a published astronomical model instead of just checking whether the moon is above the horizon: Krisciunas & Schaefer (1991, PASP) for lunar brightness, combined with a more recent single-scatter model (Winkler, 2022) for how that light forward-scatters through haze and smoke. A thin crescent barely registers; a bright gibbous moon near your subject gets flagged, and the usable imaging window gets cut off exactly when the added sky glow flattens contrast on faint targets.
Forecasts come from Open-Meteo, with seeing and transparency layered in from 7Timer's ASTRO model. The scoring underneath is tuned for photographers, not general weather: wind is scored on a quadratic curve that reaches zero around 38 mph (17 m/s), counting gusts as well as sustained speed, since a gust is what shakes a tripod mid-exposure even when the sustained reading looks calm. Dew risk is scored from the dew-point spread rather than raw humidity, and it is treated as a heads-up rather than a dealbreaker: it can shade an hour's rating by up to 20% and no more, because dew is something you can plan around with a heater strap or a dew shield. Watch for the dew point turning red in the hourly table, which is the same 5°C spread the score reacts to. Any active precipitation, or visibility under 1,000 meters, is a hard stop regardless of what the rest of the numbers say.
It samples Bortle class on a grid across your search radius, then ranks results by darkness first, distance second. The results are cross-referenced against a public-land index (so private, military, or tribal land never gets suggested) and a routable OpenStreetMap points-of-interest index, so a dark spot only surfaces if it lines up with an actual parking lot, viewpoint, campsite, or rest area. That means every result comes back named, reachable, with drive time, road distance, and a warning if the route includes unpaved roads.
DarkHours is built for landscape astrophotography, a stationary wide-field lens, not a telescope on a tracking mount hunting faint deep-sky detail. So the 63-target catalog is filtered by angular size and surface brightness: nothing under about 9 arcminutes across, and nothing so diffuse it would just read as noise in a still exposure. That's why the list leans toward large, prominent objects like the Andromeda Galaxy, the Pleiades, and Milky Way regions, rather than faint targets that need a telescope to resolve.