Noctography

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.

Noctography
Noctography Paul Haworth Nightscapes
Where are you shooting
Favourites {{ favHint }}
Increase precision
Drag the map to pinpoint your location under the crosshair. {{ pinEl }}
{{ pinCoord }} {{ pinCredit }}
{{ pinMovedLine }}
Your skyline
{{ hzStatusLine }} {{ hzSummaryLine }}
{{ hzScaleLine }} Ground In the way
{{ skylineEl }}
{{ hzGlowLine }} Combines mapped horizon with any edits you have made. Light pollution simulated for a clear moonless night. Nothing to draw here yet. {{ hzDriftLine }}
Edit horizon for unmapped obstructions
{{ hzSliderLabel }} Hold a fist at arm's length: that is about ten degrees.
Sky darkness {{ skyLine }}

{{ greeting }}

{{ greetLine }}

Together tonight {{ conjCount }}
{{ cj.pair }} {{ cj.sepText }} {{ cj.closeness }}
{{ cj.when }} {{ cj.note }}

{{ conjFoot }}

Cloud {{ tonCloudNote }}

{{ nlcLabel }} {{ nlcLine }}

{{ 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.

Best window tonight
{{ bestRange }}

{{ bestSub }}

Worth a drive tonight?

{{ nearbyResultLine }}

Drag to move, pinch to zoom. The rings are how far you could get; the wash is how clouded over the dark hours look, thickest where it is worst. {{ nbMapEl }}
ClearClouded over
{{ nbAtLine }} {{ nbCredit }}

{{ nearbyFoot }}

Mist {{ fogLine }}

Cloud
{{ cloudVal }} {{ cloudSub }}
Air temperature {{ airVal }} {{ airSub }}
Wind {{ windVal }} {{ windSub }}
Sun set / rise
{{ sunVal }} {{ sunSub }} Terrain {{ terSunLine }} {{ solLine }}
Moon
{{ moonVal }} {{ moonSub }} {{ moonDayLabel }} {{ moonDayLine }} Terrain {{ terMoonLine }} {{ lunLine }}
Darkness
{{ darkRange }} {{ darkSub }}
Real-world Bortle
{{ rwbVal }} {{ rwbSub }}
Airglow
{{ glowVal }} {{ glowNote }} {{ glowSub }} {{ glowPrimedLine }} {{ glowBlockLine }} {{ glowStormLine }}
ISS {{ issVal }} {{ issSub }}
Starlink {{ slVal }} {{ slSub }}
Tide, {{ tideStationName }} UK&I
{{ tideDistLine }} {{ tideVal }} {{ tideTrend }} {{ tideTrendSub }} {{ tideSub }}

{{ tideInfoLine }}

The month ahead
{{ calTitle }}
{{ d.label }}
{{ calSelTitle }}
{{ calSelMoon }} {{ calSelSun }} {{ calSelDark }} {{ calSelLine }}

{{ calGridFoot }}

Day {{ calColA }} {{ calColB }}
{{ r.day }} {{ r.sub }} {{ r.a }} {{ r.b }} {{ r.note }}

{{ calFoot }}

What is airglow

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.

Real-world Bortle

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.

Looking ahead

{{ 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.

Rating {{ a.starsOn }} {{ a.starsOff }} Cloud {{ a.cloudLabel }} Moon {{ a.moon }} Sky {{ a.sky }} Met {{ a.met }} Kp {{ a.kp }} Conj {{ a.conjSep }} {{ a.conjWho }} Sun ↑ {{ a.sunRise }} ↓ {{ a.sunSet }} Moon ↑ {{ a.moonRise }} ↓ {{ a.moonSet }}
{{ dayTag }}
{{ dayTitle }} {{ dayStarsOn }} {{ dayStarsOff }} {{ dayStarsWord }} {{ dayWindow }} {{ dayWindowSub }}

{{ dayCompare }}

Conj {{ dayConjLine }}

Across the night {{ detNote }}
{{ col.label }}
{{ row.k }} {{ c.v }}
{{ aheadHint }}
Rating: the night out of five: clear sky first, then how dark the site is, then whether anything special is going on. Cloud: approximate cloud coverage. Green is clear, amber is patchy, grey is covered. Sky: real-world Bortle, your location with that night's moon and haze counted in. Met: realistic meteors an hour at their best. Kp: aurora strength, 5 and up is worth watching. Conj: the closest two of Mercury, Venus, Mars, Jupiter, Saturn and the moon, when they come within 5° of each other and both stand at least 5° up in a dark or nearly dark sky. Initials name the pair, and a + means another pairing that night. Amber is inside 2°. Sun and Moon: rise on the top line, marked with an up arrow, and set below it, marked with a down arrow. These are the times for the calendar date in the column heading, midnight to midnight, as an almanac quotes them. The hours of the night itself are the Stars row.
Eclipses ahead {{ e.line }}
Aurora tonight

{{ aurHead }}

{{ aurSub }}

Cloud {{ aurCloudNote }}

{{ aurMetaLine }}

Ten nights like tonight
{{ aurTenColour }}: colour on a long exposure {{ aurTenFaint }}: a grey smudge – nothing spectacular {{ aurTenNone }}: nothing at all
Magnetic disturbance against what you need
{{ bl.label }} now arrives
{{ tk.label }}
measured, what the sky is doing now {{ aurArrLegend }} forecast, with uncertainty indicated by the shading

{{ 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.

Right now
{{ aurCoupleLabel }}

{{ aurCoupleLine }}

Measured here {{ aurHpTag }} {{ aurHpStamp }}
{{ aurHpVal }} {{ aurHpArrow }} {{ aurHpTrend }}
{{ aurHpLine }} {{ aurHpSource }}
On its way {{ aurArrive }}
Bz {{ aurBz }} nT {{ aurSpeed }} km/s
{{ aurBzArrow }} {{ aurBzTrendWord }}
{{ aurBzLine }}
N S
3 hours ago reached us newest

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 }}

What showed
And it also had
{{ sightMarksHint }}
How high it stood
Put it on the shared map {{ sightShareFoot }} {{ sightObserverLine }}
{{ sightFoot }}
{{ sgtMapEl }}
{{ sgtHint }}
{{ sgtSelWho }} Regular observer
{{ sgtStackLine }}
{{ sgtSelWhat }} {{ sgtSelWhen }}

{{ sgtSelNote }}

Conditions where they stood {{ r.k }} {{ r.v }}

{{ sgtSelDoubt }}

{{ sgtTimeLabel }} {{ sgtHpLabel }}
{{ sgtFromLabel }} {{ sgtToLabel }}

{{ sgtHpLine }}

{{ sgtCountLine }}

What the pins mean
{{ k.label }}
{{ sgtKeyFoot }}
{{ sgtFoot }}
{{ r.when }}
{{ r.saw }} {{ r.said }} {{ r.note }}
Send the log to Paul {{ sightSendFoot }}
What it takes from here
Camera Eye Overhead
{{ aurLevelLabel }} now
On camera {{ aurCamWord }} tonight {{ aurCamHp }} To your eye {{ aurEyeWord }} tonight {{ aurEyeHp }} Overhead {{ aurOverWord }} {{ aurOverHp }}

{{ 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.

Your sky tonight
{{ aurSkyLabel }} {{ aurCloud }} {{ aurCloudSub }} Moon {{ aurMoon }} {{ aurMoonSub }} Dark {{ aurDarkAt }} {{ aurDarkSub }}

{{ 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.

The nights after this one
{{ ni.day }} {{ ni.word }} {{ ni.watchLabel }} {{ ni.watchLine }}

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!

Meteor outlook

{{ ribbonTitle }}

Each column is one night. The start of darkness is at the top and dawn at the bottom.

{{ c.k }} {{ c.v }}
{{ ribbonRead }}
DARK 00:00 DAWN
{{ ribbonEl }}
{{ scrollHint }}
Meteor rate Moon up, left edge Cloud, right edge Twilight

{{ nightTitle }}

{{ nightSub }}

Cloud {{ metCloudNote }}

Where these numbers come from

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.

{{ s.k }} {{ s.v }} {{ s.s }}
{{ chartEl }}
Meteor rate, left axis Moon altitude, right axis Shower radiant altitude, right axis
Capturing images

{{ camLine }}

{{ airLine }}

{{ sw.verdict }}

{{ b.k }} {{ b.note }}
{{ m.k }} {{ m.v }}

{{ sw.facts }}

Star trails

{{ trailsHead }}

{{ trailsSub }}

Tonight, for trails
{{ trailDark }} {{ trailDarkSub }}
{{ trailMoonLine }}

{{ trailCloudLabel }} {{ trailCloudLine }}

Choose the pattern
How long for a given trail
{{ trailLenKit }} {{ trailLenVal }} {{ trailLenSub }}

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.

{{ tKind }}

{{ tName }}

{{ tDetail }}

{{ tSpanLabel }}
{{ tArc }} {{ tArcWord }}
{{ tArcLine }}
Tonight's session
{{ tRange }} {{ tSpare }}
{{ tDarkFrom }} {{ tDarkTo }}
{{ f.text }}
Timelapse from the same frames

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.

{{ tlExp }} shutter
{{ tlInterval }} {{ tlGapSub }}
{{ tlFrames }} frames
{{ tlVerdict }}

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 }}

{{ frameNoteLine }}
Sky AR

{{ skyHead }}

{{ skySub }}

Not tonight {{ skyPoorLine }}

{{ cursorLabel }} {{ cursorClock }}
{{ cursorFrom }} {{ cursorTo }}
The arch {{ archBadge }}
{{ archTitle }} {{ archLine }} {{ archMono }}
Not tonight
{{ o.name }} {{ o.why }}
{{ sEyebrow }}

{{ sName }}

{{ l.text }}

Through the night
{{ sFrom }} {{ sPeak }} {{ sTo }}
{{ sWhen }}
Shot window {{ swHead }} {{ swSub }} {{ swClearLine }}
Does it fit your lens {{ sFits }}
{{ sFrameLabel }}
{{ sFitsSub }}
Tonight's obstacles
{{ o.text }}
{{ frameNoteLine }}
{{ frameFov }}
{{ frameLook }} {{ frameClock }}
up down
{{ panLabel }} {{ pitchLabel }} {{ spanLabel }}
NESWN
{{ frameSFrom }} {{ frameClock }} {{ frameSTo }}
Exposure
This framing {{ framingLine }} {{ framingNote }}

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.

Log

{{ logTitle }}

{{ 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.

The night, as it was {{ logCondStamp }}
{{ c.label }} {{ c.value }}
Say something about tonight {{ logNoteSaved }}
This night, so far {{ logShotCount }}
{{ sh.time }} {{ sh.typeLine }} {{ sh.stateLabel }}

{{ sh.desc }}

{{ sh.skyLine }} {{ sh.foreLine }} {{ sh.extraLine }}

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.

{{ logCalMonth }}
{{ w.label }}

Nothing written this month. Nights only appear here once you have said something about them.

Getting a copy out

{{ logExportLine }}

{{ logToast }}

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 }}

{{ logStepKicker }} {{ logStepStamp }}
{{ logStepCount }}

{{ logStepTitle }}

{{ logStepSub }}

{{ fd.label }}
{{ r.label }} {{ r.value }}
Anything else about this shot

Saved as you go. Walk away at any point and the shot keeps its time.

Kit

What you are shooting with.

Your kit feeds through to the rest of the app.

{{ row.label }}
or type one mm
What that comes to {{ kitProfileLine }} {{ kitFovLine }}
Points or trails

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.

Points Trails
{{ npfTick }} {{ ruleTick }}
Longest clean exposure
{{ npfSecs }} {{ npfWord }}
{{ npfLine }}
{{ tolLine }}
Where these numbers came from
t = (35 × N + 30 × p) ÷ f

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.

Comps

Compositions you've saved

{{ compsCount }}
{{ compsRadiusLabel }}

{{ compsEmptyLine }}

Compositions show as amber pins on the Place map when the view is close enough to place them.
Place

Light pollution around you

Drag to move, pinch to zoom. Take the crosshair as your site whenever you find somewhere worth the drive.

{{ mapEl }} Reading the atlas…
{{ mapKmLabel }} {{ mapCredit }}
{{ mapLayerNote }} {{ mapDeltaLine }}
Under the crosshair {{ mapBortle }} {{ mapSqm }} {{ mapCoord }}
Sets it as your site and returns you to Tonight.
Reading the shading
B1 B9
The amber dot is your current site. White dots are places you have saved.
Real-world Bortle map {{ ringHaze }}
N E S W
The dot is straight up, where your sky reads {{ ringZenith }}

{{ 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 }}

More

Constantly being updated

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.

Colour scheme Set it once. Night vision, on the bar at the bottom, overrides whichever you pick.

Night vision overrides all of these while it is on.

Layout {{ layoutNote }}
Your own copy

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 }}
{{ bkMsg }} {{ bkErr }} It is a zip: the compositions inside are ordinary photographs with the stamp and the coordinates already in them, readable on any machine without this app. Restoring only adds, so nothing already here is overwritten.
{{ verLine }}
{{ b.v }} {{ b.when }}
{{ b.title }}

{{ i.text }}

{{ b.foot }}

Credits and privacy

Where it all comes from

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 feeds
Open-Meteo forecast open-meteo.com Cloud in three layers, temperature, dew point, humidity, wind and gusts. Hourly, 16 days out. CC BY 4.0. Open-Meteo historical weather, ERA5 archive-api.open-meteo.com Typical cloud beyond the 16 day forecast, from three previous years. Photon, by Komoot photon.komoot.io Place search, tried first. Built on OpenStreetMap data, ODbL. Open-Meteo geocoding geocoding-api.open-meteo.com Place search fallback, when Photon does not answer. OpenStreetMap openstreetmap.org/copyright Place names and geometry behind the search, and the Detail layer on the maps. © OpenStreetMap contributors, ODbL 1.0. Esri basemaps server.arcgisonline.com The Map and Satellite layers on Place, and the imagery behind Refine location. Esri, HERE, Garmin, Maxar, Earthstar Geographics. AWS Terrain Tiles elevation elevation-tiles-prod.s3.amazonaws.com The ground behind Your skyline, and the height at the pin. Roughly 30 m. Mapzen and Nextzen, from USGS 3DEP, SRTM, CDEM, EU-DEM, ArcticDEM and GEBCO. NOAA SWPC, planetary K index services.swpc.noaa.gov Kp forecast for tonight and the ten-night outlook. Public domain. NOAA SWPC, real-time solar wind services.swpc.noaa.gov/json/rtsw Field strength, Bz and wind speed at L1, every minute. Drives the aurora trace and the Bz pane. NOAA OVATION aurora model services.swpc.noaa.gov Visible-aurora probability on a one degree grid, 30 to 90 minutes ahead. Behind camera against naked eye. NOAA SWPC, alerts and watches services.swpc.noaa.gov/products/alerts.json The G-level storm badge and CME watches. NOAA SWPC, 27-day outlook services.swpc.noaa.gov Largest expected Kp per day for 27 days. The recurrence line. GFZ Hp30 kp.gfz.de Half-hourly geomagnetic index, uncapped. The measured end of the aurora chart, through a relay of mine. GFZ Helmholtz Centre for Geosciences, CC BY 4.0. TLE API tle.ivanstanojevic.me Orbital elements for the station. Same US Space Force data, served with the header a browser needs. CelesTrak celestrak.org Elements for the station and for launches in the last thirty days. Dr T.S. Kelso's service. Environment Agency tide gauges environment.data.gov.uk Measured water level, and a month of past readings, from the nearest of 43 National Tide Gauge Network stations. Both the level and the predicted times come from this. Open Government Licence.
Sky brightness and showers AR sky imagery Published models and type Worked out on your device
Real-world Bortle The atlas value for your site, plus moonlight, haze from humidity and glow scattered back by cloud, at the zenith across the dark hours.
Your skyline The elevation data ray-cast out to 150 km with curvature and refraction, giving a real horizon, terrain rise and set times, and a shot window per subject.
Which satellite passes are named Only ones worth going outside for: the station at magnitude −1 and 20°, a Starlink train at 3.2 and 25°, and only within eight days of launch while the batch is still in a line.
High and low water Nobody publishes free UK tide predictions, so this works them out: a month of the gauge's own record fitted to the ten tidal constituents a month of record can separate, then run forward, renewed monthly. Expect a few minutes and a few centimetres against a published table. Heights are in the gauge's own datum, not chart datum. What no table predicts is surge: when the measured level and the prediction disagree, the difference is the weather. Coverage is the UK, Ireland, the Isle of Man and the Channel Islands; elsewhere the tile does not appear.
Mist and fog risk Fires when air near its dew point, near-still wind and a clear sky line up. Defers to the visibility forecast where there is one.
Eclipses From the same sun and moon positions as everything else, computed for your position rather than the centre of the Earth. Times to the nearest few minutes.
Looking ahead Ten nights ranked on clear sky, then real darkness, then what is overhead. Faded where cloud is climatology rather than forecast.
Light pollution around you The atlas sampled on sixteen bearings out to 150 km, near towns weighted more, then scaled by tonight's humidity and high cloud. My own weightings, not a published model.
Aurora geometry Kp to the equatorward limit of the oval by the published table, then your geomagnetic latitude by dipole. The photographed band sits 8° poleward of the limit, which is my number and the least settled one here.
Camera against naked eye One OVATION signal, two thresholds, about 12% and 42%, pushed up by moonlight, cloud in that direction and a brighter site. Starting guesses.
Bz trend Half-hour mean, the fraction of the hour below zero, and the length of the current run below −2. The dotted line is what is arriving now, from the distance to L1 over the measured wind speed.
Cloud in the direction that matters For aurora, the forecast is also fetched 55 and 110 km poleward and averaged over the dark hours.
Sun, moon and radiant positions Computed on your device, no third party library.
Privacy

Noctography 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 }}

{{ takeoverTitle }}

{{ takeoverBody }}

{{ b.text }}

{{ takeoverFoot }}

{{ takeoverCtaLabel }}
Beta
{{ arNoticeTitle }} {{ arNoticeBody }}
{{ compBusyLabel }}
Composition saved {{ l.t }}
Saved without a calibrated compass, so the card and the stamp will say the bearing may be inaccurate. {{ compNewPlace }}
Lens {{ arOpticLine }}
{{ arLensLine }} · pinch to zoom
Line up the horizon
Drag the amber line onto the real skyline. Sideways sets the compass, which moves the whole sky at once. Up and down records what is standing in the way in the direction you are facing: a hedge, a barn, a treeline. Now tap the {{ arAlignWord }} where you can see it on the screen. One tap sets the whole overlay. Never look at the sun through a viewfinder or with the naked eye: work from the screen.
compass {{ arCalNudge }} in the way {{ arCalSector }}
Compass offset {{ arNudgeLabel }}
Match the camera's field {{ arHfovLabel }}
Widen or narrow until a known star sits on the real one. Some cameras simply won't see the stars.
noon noon next day
Exposure
Contrast
Trails
Saved compositions

Scouted, and waiting for a night

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.

{{ g.place }} {{ g.coord }}

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.

{{ compD.stampName }} {{ compD.stamp1 }} {{ compD.stamp2 }} This composition was not calibrated and may be inaccurate.
That band is burned into the file when you save a copy out. {{ compD.countdown }}
{{ r.k }} {{ r.v }}
Note
{{ compD.walk }}
Same composition, different night.

{{ compD.stampName }}

Find other nights when this composition could work under good conditions.

How dark it has to be
Moonlight
{{ compMonthLabel }}
{{ w.d }}
{{ c.day }} {{ c.time }}
{{ compTally }}
Next nights that work
{{ m.date }} {{ m.moon }} {{ m.time }}

Nothing in the next year clears both filters. Loosen the moon rule, or take nautical twilight and accept a brighter sky.

{{ compStoreErr }}

{{ compToastMsg }}