{{ bestSub }}
{{ nearbyResultLine }}
{{ nearbyFoot }}
Mist {{ fogLine }}
Noctography is a free planner for nightscape and landscape astrophotography. It answers two questions: is tonight worth going out for, and what should you point the camera at.
It needs JavaScript, because every calculation happens on your own device rather than on a server: sun and moon positions, the astronomical darkness window, real-world Bortle sky darkness, meteor rates, aurora thresholds, star trail geometry, NPF exposure limits and satellite passes.
The tools are Tonight, a fifteen-night forecast grid, Aurora, Meteors, Trails and timelapse planning, Sky with a framing view, a live AR overlay on the phone camera, a panorama calculator, and a saved kit profile.
Read what it does, and the common questions, on the Noctography home page.
{{ greetLine }}
{{ conjFoot }}
Cloud {{ tonCloudNote }}
{{ nlcDetail }}
Noctilucent cloud is ice that's about 83 km up, far above normal weather, lit by sunlight long after the ground is dark. It only forms when the summer mesosphere turns cold, which is typically only in the Summer months. They cannot be reliably forecast: this flag tells you when and where they would be visible if they have formed, not that they have. Radar echoes and cold-mesosphere signals available on some websites can correlate with sightings, but not always. Follow relevant social media groups or keep an eye on things yourself to really see what's going on.
Displays that fade in the evening can often come back before dawn, as the cloud drifts back out of the Earth's shadow. Worth staying up for, or setting an alarm.
{{ bestSub }}
{{ nearbyResultLine }}
{{ nearbyFoot }}
Mist {{ fogLine }}
{{ tideInfoLine }}
{{ calGridFoot }}
{{ calFoot }}
Airglow is caused by the ionisation of gasses in the upper atmosphere. Green comes from oxygen in a thin layer around 95 km up, orange from hydroxyl just below it, and a deeper red from oxygen higher still. It is what the green and orange banding low in a wide nightscape usually is.
Its brightness typically follows the solar cycle, brighter around maximum. The number here is F10.7, the sun's radio output at 10.7 cm, measured daily at Penticton in Canada and used as the standard stand-in for the ultraviolet that drives the airglow chemistry. Today's reading is blended with the average over the last solar rotation, to take account of the build-up over time.
{{ glowMean }}
It tends to appear brighter near the horizon simply because you're looking through a greater thickness of atmosphere; overhead you see through about 10 km of it, while at 15° above the horizon your line of sight travels obliquely through four times as much.
Treat the number as a fuel gauge for the spell you are in, not a forecast for tonight.
It is mostly a camera phenomenon: grey at best to the eye, colour only in long or stacked exposures.
The 11-year solar cycle passed its peak in 2025, so High will get rarer between now and the next minimum around 2030.
The light pollution atlas tells you what a site is like on a perfect moonless night. Real-world Bortle tells you what your sky might actually be like tonight, with the moon, the haze and light pollution bouncing off thin, high cloud all counted.
The main light pollution atlas underpinning the reading is a satellite-derived model rather than a measurement, so it cannot know about very localised light, for example individual security lights.
Only high cloud is treated as scattering town glow back down at you. Mid and low cloud have already blocked the sky behind them, so they count as blocking alone: on a night of thick low cloud this figure will read dark, and it should be read alongside the cloud figure rather than on its own.
{{ aheadLead }}
Tonight is the highlighted column on the left. Scroll left for the last five nights, as they actually were; tap any date for the night in full.
{{ dayCompare }}
Conj {{ dayConjLine }}
{{ aurSub }}
Cloud {{ aurCloudNote }}
{{ aurMetaLine }}
{{ aurThreshNote }}
{{ aurBestLine }}
{{ aurEyeLine }}
The chart shows measured data right now, what's confirmed as on its way and lower-confidence “forecasts” for further out.
Up to and including now is from GFZ's half-hourly Hp30, a measurement of how disturbed the earth's magnetic field actually is.
Hp30 steps in thirds, like Kp, so a genuine build arrives as a staircase rather than a smooth ramp. The direction is therefore read across the last two hours rather than off the last pair of readings, which means it is deliberately slow to call a change: better late than confidently wrong.
After that, the line hands over gradually to NOAA's Kp forecast, issued in three-hour blocks. Confidence decays rapidly over time. NOAA's own checking shows that forecast tends to over-call moderate nights (i.e. it tends to disappoint), which is why the far end is drawn as a wide band, indicating the uncertainty.
The chance itself is worked out for where you are standing or the location you've selected. It folds in how far the band would have to stretch to reach you, how high it would stand above your horizon, moonlight from the published sky-brightness model, the cloud forecast over that part of the sky, and the light pollution towards the poleward horizon rather than overhead.
The answer is always one of five words, in this order: unlikely, possible, very possible, likely, very likely. Nights after tonight stop at very possible, and anything from the 27-day outlook stops at possible, reflecting increasing uncertainty. I very nearly didn't include an aurora section in Noctography because of the risks of disappointing people.
It's important to note that this isn't a sophisticated aurora-chasing forecast. Hardcore chasers use their own methodology from the underlying data or use dedicated apps like Norlys or Glendale. You can also sign up to social media groups like Facebook's AUK – Aurora UK to get regular updates from people who really understand these things. The purpose of this forecast is to give generalist nightscape photographers a heads up that their night might be about to get better.
{{ aurCoupleLine }}
Bars below the line are pointing south, which is the direction we want. The faded ones have left the spacecraft and not yet arrived.
{{ aurLoadLine }}
The spacecraft feed has gone quiet. These are the last numbers that arrived, not the current ones.
Two things are considered here.
The first is the wind arriving from the sun, measured by spacecraft between us and the sun. When the wind's magnetic field points south it connects with ours and energy pours in. That is the push that sets things up.
The second is how the earth's magnetic field is responding, measured by magnetic observatories on the ground and reported as one number for the whole planet.
The app attempts to combine both readings to provide an indication of likelihood of aurora activity.
{{ sightTeaseLine }}
{{ sightPrompt }}
{{ sgtSelNote }}
{{ sgtSelDoubt }}
{{ sgtHpLine }}
{{ sgtCountLine }}
{{ aurMagLine }}
Aurora sits in a ring around the magnetic pole. The ring swells outward as things get more disturbed, so what matters is not your latitude on a map but your magnetic latitude, and how far the ring has to stretch to reach you.
Those figures are that sum, run for where you are standing.
A camera sees five to ten times fainter than a dark-adapted eye, and the eye cannot see colour at these levels at all. This graph attempts to model when something is only likely to be visible on camera and when it might show up by eye, at your location and in your conditions.
This is a model, not a strict forecast. Take it with a pinch of salt.
{{ aurSkyLine }}
{{ aurSkylineEl }}{{ aurHorizonLabel }}: {{ aurHorizonLine }}
The cloud figure is taken over the patch of sky where the arc would actually be, half a degree to a degree {{ aurPoleWord }} of you, rather than over your head. Cloud above you is irrelevant if the poleward part of the sky is clear.
{{ aurDampLine }}
The panorama above is your own skyline in the poleward direction, with the light pollution this place has washed in behind it.
Beyond about two days there is no live measurement to lean on, only the forecast, so treat these with a pinch of salt.
{{ aurRecLine }}
These come from NOAA's Kp forecast. A night only reads as likely when the number, the geometry, the darkness and the cloud all agree.
A watch means forecasters have seen a coronal mass ejection, or CME, leave the sun and expect it here on that date. A CME is a billion tonnes of the sun's atmosphere thrown outwards, and it takes one to three days to cross to us. Arrival routinely slips six to twelve hours, so a watch shows on both nights it could touch, and its size stays unknown until it reaches the spacecraft and its field can be measured. Arriving pointing north, the whole thing can fizzle.
None of this is a substitute for live reports from real people in the field!
Each column is one night. The start of darkness is at the top and dawn at the bottom.
Cloud {{ metCloudNote }}
The headline figure is meteors an hour you could realistically expect to see. One relation is evaluated every 15 minutes through the night, separately for every active shower and the sporadic background.
rate = ZHR(t) × sin(h) × r^(lm − 6.5) × clear × 0.75
ZHR(t) is the shower's strength at this point in its cycle. sin(h) is the radiant altitude, tapered below 8° for extinction and terrain. r is the population index, an exponent, which is why one lost magnitude of sky darkness roughly halves the rate.
Limiting magnitude is built in linear brightness units: an airglow floor at 22.0, artificial ground light from the light pollution atlas, twilight, then moonlight from the Krisciunas & Schaefer (1991) model with Kasten & Young airmass. Thin cloud counts twice: it hides part of the sky and scatters light pollution and moonlight back down, so the same 60% high cloud costs about a magnitude at Bortle 5. Humidity above 65% adds haze. Everything is scaled by 0.75, since ZHR assumes a perfect observer watching the whole sky at once. We might tell our children we have eyes in the back of our head, but we know it's not really true.
Shower parameters are hand-encoded from the International Meteor Organization's calendar and working list. Cloud, humidity, temperature and dew point come from Open-Meteo, interpolated between hourly samples. Sky darkness comes from David Lorenz's 2025 light pollution atlas, baked into the app. Beyond 16 days the cloud figure is what this place typically does at that time of year, averaged over three years and a ±3 day window: useful for choosing a week.
{{ camLine }}
{{ airLine }}
{{ trailsSub }}
{{ trailCloudLabel }} {{ trailCloudLine }}
The sky turns 15° an hour. A star's speed across the frame is that times the cosine of its declination, so stars near the pole crawl and stars on the equator race. Trail length is speed times time, read against your lens's field of view.
Change the lens or the body on the Kit tab and this number moves with it.
{{ tDetail }}
One run of frames, two finished pieces: stack them for the trail, play them in order for the timelapse. Pick how long you want the timelapse and the shutter speed follows.
A timelapse runs at 24 frames a second, so a {{ tlFilmWord }} timelapse needs {{ tlFrames }} frames. Spread those across the session and you have the interval; take the gap between exposures off it and you have the shutter speed.
Your kit holds points for {{ tlClean }} pointed here. Below that the timelapse has point stars; above it each frame trails a little on its own, which the stack does not mind and the timelapse shows as short dashes. {{ tlCleanFilm }}
{{ skySub }}
Not tonight {{ skyPoorLine }}
{{ l.text }}
This shows you where things are, not what the photograph will look like. Exposure, gradients and airglow are the night's business. Sizes are true to scale, which means some famous things look humblingly small.
{{ logSub }}
The last thing you wrote could not be saved: this browser is out of room, or it is refusing to store anything. Copy the log out now, before you lose it.
{{ sh.desc }}
Nothing written for this night yet. A shot with a time on it is already a record: tap the button, and fill the settings in when it's more convenient.
Nothing written this month. Nights only appear here once you have said something about them.
{{ logExportLine }}
The log is held on this device only. Nothing is sent anywhere, which also means nothing is backed up: clearing your browser data, or the phone reclaiming space, will take it with them.
{{ logBackupLine }}
{{ logStepSub }}
Saved as you go. Walk away at any point and the shot keeps its time.
Your kit feeds through to the rest of the app.
Exposure decision for static shots to avoid noticeable trailing. Pin-sharp means no trailing at all. Relaxed means you are unlikely to notice the tiny trails in normal viewing and printing.
The NPF rule uses aperture and pixel pitch, which is why it lands so far from 500 ÷ focal length on a dense sensor. Both rules assume the worst case, a star on the celestial equator moving at the full 15° an hour.
In the framing view, where the app knows what you are pointing at, it uses the fastest star actually in your frame instead. Near the pole that is worth a stop or more, for nothing.
It is a model of acceptable blur, not a law. Print big or pixel-peep and you will want the pin-sharp figure or less.
{{ compsEmptyLine }}
Drag to move, pinch to zoom. Take the crosshair as your site whenever you find somewhere worth the drive.
{{ ringLine }}
A flattened map of your sky: straight up at the centre, the horizon at the rim. Each bar grows inwards from the direction its glow comes from.
Read from the light pollution atlas. {{ ringHazeLine }}
Noctography is where I keep the tools I actually use in the field. I'm adding to them all the time. If there's an idea you have, let me know via the Feedback button.
There may be flaws in the logic and methodology used within Noctography. I'm not an expert in all of this. If you see something you think could be better, let me know. Always keen to learn.
I'm also not a software developer by background. If something looks broken or weird, or you see a bug that needs squashing, let me know.
Night vision overrides all of these while it is on.
Everything you've created on Noctography only lives on your device until you save it, so it could get lost easily. Back it up below.
{{ bkCount }}{{ i.text }}
{{ b.foot }}
In addition to the providers of the data sources listed below, I am grateful to the many people who have given up their time to test and provide feedback on various elements of this app. Thanks guys, this wouldn't have been possible without your diligence, patience and encouragement. You know who you are.
With particular thanks to: Paul Clark, Martin Fransson, Jeroen Linnenkamp, Matej Mlakar, Henry Page and Raymond Kamstra.
Live feedsNoctography has no server of its own, no account and no sign-in. I do not know who you are and I have not built anything that could tell me.
Three things leave your device. Your coordinates go to the feeds above so they can return a forecast, a place name or the ground under you: there is no way to ask for the weather where you are standing without saying where that is. Map tiles are fetched as you pan, so Esri and OpenStreetMap see roughly which patch of ground you are looking at. And the app counts usage with GoatCounter: a page view, which tab you opened, whether you added it to your home screen, and whether AR got the camera going. GoatCounter sets no cookies, stores no IP address and cannot follow anyone between sites; it derives a country and a browser from the request and discards the rest. Counts are per visit, not per tap.
Nothing else goes anywhere. Your saved places, your skyline and the obstructions you have drawn, your kit profile, your colour scheme and everything you type stay in this browser's own storage, on this device, and are never uploaded. The aurora probability grid is fetched whole and asked about your position here, so that one never leaves at all. The one-file copy of the app you can keep on a laptop reports nothing whatsoever.
The ethos, in one line: the app should know where you are only for as long as it takes to answer a question, and I should never know at all.
{{ copyrightLine }}
{{ takeoverLabel }}
{{ takeoverBody }}
{{ b.text }}
{{ takeoverFoot }}
Nothing saved yet. In Sky AR, find a picture in the landscape, scrub the clock to the moment the sky lines up with it, and press the amber button. The frame, the aim, the lens and the night are kept together, and the app will tell you every future night the same sky comes round.
These live on this phone only. Keep Noctography on the home screen, or iOS may clear them after a week unopened, and save a copy of everything from the More tab now and again.
Find other nights when this composition could work under good conditions.
Nothing in the next year clears both filters. Loosen the moon rule, or take nautical twilight and accept a brighter sky.
{{ compStoreErr }}