SkyCruncher
Skycruncher logo Skycruncher observing log, night of 18/19 Sep 2026

What a hazy night looks like, frame by frame

Does haze show up in a smart telescope's frames as clouds you can see, or as something else? I played back all 1,301 ten-second frames from one night on the Triangulum Galaxy (M 33) as a flip-book. For the first 80 minutes a thin haze made every star about 6 % fainter (about 12 % in the first quarter hour) and the sky a little brighter, but it looked like an even veil: no wisps, no patches, nothing drifting across the field. The one surprise was a very faint extra glow on the galaxy's core, only while it was hazy, and I can't yet say what causes it. measured inferred

A time-lapse of every 10 s sub from a Seestar S30 Pro night on M 33 (1,301 subs, 07:03 to 13:10 UTC), in a sensor-fixed and a sky-fixed view, with rolling stacks of 1 to 50 subs at one fixed stretch per depth. Each sub is modeled as a sensor-fixed pattern plus an additive level plus a gray transmission times a sky-fixed scene; the residual is what a uniform veil cannot explain. stated

Result: haze in the first 1.35 h lowers the photometric zero point by 0.07 mag (median; 0.14 mag in the first ten minutes), with no residual structure at cloud scale at any stack depth. One center-weighted residual survives: +0.68 ADU inside r < 700 native px against −0.32 ADU later (single subs, sky view), correlated with the zero point at r = −0.49 and with an independent star-based center-dimming term at r = +0.48; the correlation with the zero point comes mostly from the step between the two periods (r = −0.20 within the hazy stretch, −0.11 after it). Its cause is not separated: on this night the galaxy core, the frame center and the field-rotation center coincide, and the excess fades as the field rotation speeds up. A second night on a compact target shows no such term. Exploratory: one night, with a second look on data used before. measured inferred

0.07 magstars dimmer through most of the hazy stretch (about 6 % of their light); 0.14 mag in its first ten minutes
07:03–08:24UTC, the hazy stretch: 337 frames, 336 of them usable
no wispsat any averaging depth: the haze is an even veil at cloud scale
+0.7 ADUextra glow on the galaxy core while hazy, in the camera's raw units (ADU), about 1.5 % of the sky level; cause not settled
1,301frames of 10 s, Seestar S30 Pro, IR-cut filter, one night

Each claim carries a marker: measured from my frames, stated from a source or setting, inferred from the measurements, or illustrative (an example calculation, not a measurement).

The flip-book

Six hours of M 33, in 82 steps

The sky: 25 frames averaged, one brightness setting all night
What an even veil can't explain: orange brighter, blue fainter
07:20 UTC

hazy stretch overhead pass, field turning fast dawn 10-minute medians

Drag the slider or press Play. On the left, the sky is drawn with one brightness setting for the whole night, so a brighter, flatter gray means a brighter sky. In the first stretch the background is lighter and the stars fainter than after 08:30. On the right, every frame has had an even veil removed: an even dimming of the stars and an even lift of the sky. What's left is mostly speckle, a broad two-tone tilt that turns as the telescope swings (the sky is naturally a bit brighter toward the horizon), satellite trails, and dawn at the end. Watch the galaxy's core on the right during the hazy stretch: it carries a faint orange smudge that fades later. The tiles show the middle 4 degrees of the field, taken from a video I made of the whole night. measured inferred

Tiles are the sky-registered view (north up, east left, 29.4″/px, cropped to the central 518 grid px and scaled), from the N = 25 rolling-stack video, one tile every 15 subs (about 2.8 min). Left: asinh stretch fixed for the whole night (black point at the 1st percentile of the night's median frame minus 2σ, white point at its 99.9th percentile, knee 2σ). Right: the residual rt of the model in How it was done, each frame's own median removed, diverging color at ±4σ for this depth (σ = 1.65 ADU per binned pixel at N = 25, 4.17 ADU at N = 1). The first two tiles average only 1 and 16 subs. The strip below the tiles shows star dimming (the clear-sky zero point minus each sub's) and the residual center-minus-outer, single subs, with 10-minute medians; click it to jump. measured

The night, sub by sub

A frame-by-frame movie is good for spotting things; numbers say how big they are. For every frame I measured three things: how bright the stars came out compared with the clear part of the night, how bright the empty sky was, and how much extra light sat on the middle of the field after an even veil was removed. ADU (analog-to-digital units) are the raw numbers the camera records for each pixel; for most of this night the empty sky sat at about 40 to 47 ADU above the camera's zero level. stated

Per sub: star dimming = ZPref − ZPt, where ZPt is the sub's photometric zero point against Gaia G and ZPref = 18.877 is the median over usable subs from 08:30 to 12:15 UTC (after the haze, before twilight; chosen for this page). Sky level is the model's additive level ct (G channel, ADU above bias), which tracks the measured sky median at r = 0.9999. Center excess is the residual's median inside r < 700 native px minus its median in the 1000 to 1320 px annulus, sky view, single subs. stated

measured Every dot is one usable 10 s sub; the line is 10-minute medians. Hover for values.

Veil or clouds?

Before rendering a single frame I wrote down what I expected: most likely an even veil (I gave that 60 %), less likely visible patches or wisps drifting through (25 %), and least likely something stuck to the telescope, such as dew on the lens, which would stay put on the sensor while the sky turns (15 %). stated

The even veil won. In the hazy stretch the stars are fainter and the sky brighter, and that is all: once an even dimming and an even lift of the sky are taken out, nothing cloud-shaped is left, whether I looked at single frames or at averages of 5 to 50 frames. Nothing grew on the optics either: there was no dew-like smudge, and the focuser never moved all night. measured

How much did it cost? At its worst, in the first quarter hour (to about 07:18 UTC), stars lost about 12 % of their light (0.14 magnitudes over the first ten minutes; a magnitude is the astronomer's brightness scale, where bigger means fainter). For the rest of the hazy stretch they lost about 6 % (0.07 magnitudes), and by about 08:20 UTC they were back to normal. Stars were not blurrier while it was hazy: their sharpness, measured as FWHM (the width of a star's image at half its peak brightness), was 2.8 pixels, no worse than the 2.9 pixels later in the night. measured

The sky was also brighter while it was hazy: 46.3 ADU against 41.6 ADU for the rest of the night, about 11 % more. But not all of that is haze. The sky kept getting darker for three more hours after the haze had gone, from 43 ADU around 08:30 to 40 ADU around 11:30, as it often does after midnight when light pollution and the natural glow of the upper air fade. It also rose by about 5 ADU for 25 minutes around 08:35 to 09:00 while the stars were not dimmed at all, so the sky can change by that much without any haze. Over the whole night, sky brightness and star dimming hardly moved together. So the haze made the sky brighter by some part of that 4.8 ADU, probably not more, and I can't say exactly how much. measured inferred

One small extra: in the first nine minutes, 18 frames had a sky about 7.5 ADU brighter than the frames around them, flicking on and off from one frame to the next. That looks like thicker haze passing in the first minutes, but it never showed any shape in the frames. measured inferred

Expectations written before any frame was rendered: 60 % a uniform veil plus a smooth gradient with nothing center-weighted; 25 % structured patches drifting through the sky view; 15 % a sensor-fixed central feature (dew), which would sit still in the sensor view. I also set a test in advance: the residual center-minus-outer would correlate with ZP at |r| < 0.3 for a uniform veil and at |r| > 0.5 for a center-weighted one. stated The measured r = −0.49 (sky view, N = 1) meets neither threshold: it is outside the uniform band and just short of the center-weighted one, so by its own pre-set rule the test is undecided; the within-period correlations below show that most of it is a step between periods. measured

A faint glow on the galaxy's core

I expected nothing special at the middle of the field, and that was wrong. After the even veil is removed, a faint, diffuse extra glow sits on the core of M 33, about the size of the galaxy's bright middle, but only while it's hazy. It is tiny: about 0.7 ADU, roughly 1.5 % of the sky's own brightness, far too faint to notice in a normal picture. But it is steady: every one of the 336 hazy frames shows it, against about one frame in five later in the night. measured

What causes it? Haze scatters a little of each light source's light a short way to the side, giving it a faint halo. Over the galaxy's core, where the galaxy's own glow and many stars crowd together, those halos could add up to a slightly brighter patch than an even veil predicts. That is my best guess, not a tested result. inferred

Two things keep it a guess. First, on this night the galaxy's core, the middle of the sensor and the point the field turned around were all in the same place, so I can't tell whether the glow belongs to the galaxy, to the telescope's optics, or to the way the frames were lined up. Second, the glow outlasted the haze by about half an hour, and faded just as the field started turning quickly as M 33 passed nearly overhead, so the haze is not the only thing that changed. measured inferred

I did rule out one simple camera explanation: a brighter sky does not by itself leave a brighter middle. At dawn the sky got more than ten times brighter, and the middle did not light up. measured

To separate the galaxy from the telescope I ran the same measurement on a second hazy night, on the Dumbbell Nebula (M 27), a small target with no big galaxy in the middle, taken from a different place through a light-pollution filter. There, hazier frames showed no extra glow in the middle. That points toward the galaxy, not the telescope. But that night was different in many ways (37 minutes long, patchy haze, little rotation), and I had already used it for other checks, so it's a second look, not proof. measured inferred

Residual center-minus-outer (median inside r < 700 native px minus median in 1000–1320 px; each frame's own median removed), medians over usable subs: measured

quantityhazy (336)later (889)r with ZPr with star-based center dimming (300 subs)
sky view, N = 1 (ADU)+0.68−0.32−0.49+0.48
sensor view, N = 1 (ADU)+0.70−0.32−0.51+0.50
sky view, N = 25 (ADU)+0.55−0.23−0.49+0.44
How much the extra center glow grows for each magnitude the stars dim, with its uncertainty. On M 33 it grows clearly; on the second night, on M 27, it doesn't. The uncertainties come from resampling the subs and are probably too small, because neighboring subs are not independent. Hover for the numbers.

What it means for your imaging

Haze doesn't look like clouds

no wisps

Thin haze shows up as fainter stars and a brighter, flatter background, evenly across the frame. Don't wait to see shapes before you suspect it; watch whether your stars get fainter. measured

It costs time, not quality

up to ~1.25×

If stars lose 6 % and the sky is up to 10 % brighter, each frame carries up to about 10 % less signal against the sky's noise, so you need up to about a quarter more frames to reach the same depth (about an eighth more if the haze added no sky light). Star sharpness was unchanged. illustrative

Overhead is the hard part

3.45 px

On a Seestar's tracking mount the field spins fastest as the target passes overhead. Stars were blurrier then (3.45 px) than in the haze or the rest of the night (2.8 to 2.9 px). measured

A simple frame check would have kept almost every hazy frame: my own per-frame quality check, built to catch clouds, blur and trailing, passed 336 of the 337. I did not test the Seestar app's own frame selection, but a check aimed at clouds and blur has little reason to reject an even veil. That is fine for a pretty picture: the brighter background comes out with ordinary background removal, the dimming only costs some signal, and the 0.7 ADU glow on the core is far below what you would see. It matters only if you measure brightness precisely, for example of stars near a galaxy's core. measured inferred

Fixed in advance vs measured

Decided before I looked: where the hazy stretch ends (the first 1.35 hours, set from an earlier look at the stars' brightness on the same night); the size of the middle disk and the outer ring I compare; how many frames to average; one brightness setting for the whole night; and my written expectations, for this night and for the second night. stated

Changed after the first look: how the veil is removed (see What went wrong). Chosen while writing this page: the clear-sky reference for star dimming (08:30 to 12:15 UTC), the overhead-pass window, and the extra checks on the glow. Measured: everything else. stated

Fixed before lookingChanged or chosen after lookingMeasured
Hazy window: first 1.35 h after the first sub, from an earlier star-photometry analysis of the same nightThe plain median difference, replaced by the four-term model after the first render (disclosed below)Dimming, sky level, residuals and center statistic per sub
Center disk r < 700 native px, annulus 1000–1320 px; depths 1, 5, 10, 25, 50; one asinh stretch per view and depthClear-sky ZP reference window 08:30–12:15 UTC; overhead-pass window 08:54–10:42; within-period correlations; the brighter-sub and dawn checks (all for this page)Correlations with ZP, FWHM and the star-based center term
Written expectations for M 33 (60/25/15 %) and for M 27 (55/30/15 %, with pass thresholds) M 27 correlation, tercile difference and slope

What went wrong, and the limits

My first comparison was ruined by the field turning

My first plan was to compare each frame with the night's average frame. On this night the field turned through about 140° on the sensor, because the Seestar's mount follows the sky by moving up-down and left-right, which makes the field rotate, fastest when the target passes overhead, as M 33 did. Comparing against an average then mostly showed the turning itself. I threw those first numbers away and switched to a model that keeps what is fixed to the telescope separate from what is fixed to the sky. measured

Method changed after the first look

Field rotation of about 140° on the sensor (roll from about +110° through ±180° to about −113°, from the per-sub plate solutions; alt-az, near-zenith pass) made the plain median difference unusable: the sky view was dominated by the rotating vignetting pattern and the sensor view by a dipole where M 33 turns. The first center statistics (for example r = −0.41 with ZP) came from that artifact and were discarded. The four-term model replaced the median; the change is disclosed, not hidden. My first notes gave the rotation as about 340°, reading the span of roll values straight across the ±180° wrap; that number was wrong. measured

My first notes got three numbers wrong

I first wrote that stars lost 0.10 to 0.15 magnitudes and that the haze brightened the sky by 4.7 ADU. The bigger loss lasted only about the first quarter hour (it was about 0.07 for most of the stretch), and the sky lift mixes haze with the normal fading of the sky after midnight. I also first wrote that the field turned about 340°; it turned about 140°. measured

The first write-up quoted 0.10–0.15 mag of dimming and credited the full early-minus-late sky difference to haze. The median dimming over the hazy stretch is 0.070 mag (0.14 in the first ten minutes, with the deeper dimming over by about 07:18), and ct keeps falling for about three hours after transparency recovers, so the sky difference is an upper limit on haze light. The field rotation was first given as about 340° instead of about 140° (see the lesson above). measured

The glow is steady in the data, but its cause is open

One night, with the galaxy, the sensor's middle and the turning point all lined up, and the glow fading as the turning sped up. The second night points to the galaxy, but it is not fresh data and differs in many ways. A clean test is a new hazy night on a field with no big galaxy, followed for hours. measured inferred

Galaxy core, frame center and rotation center coincide; the statistic's later baseline depends on rotation rate; no autocorrelation-aware significance test; the M 27 comparison is a second look on previously used data with a different filter, location and rotation regime. The confirming test is a new, hazy, galaxy-free field with a long track, analyzed with this method unchanged. measured inferred

The flip-book is a sample

The page shows 82 tiles, one every 15 frames, from a 25-frame running average, cropped to the middle of the field and compressed. The full movie has every frame at five averaging depths, in both the sky-fixed and the sensor-fixed view; the numbers on this page come from the full-resolution data, not from the tiles. stated

How it was done

The Seestar's camera sees color through a pattern of tiny red, green and blue filters over its pixels, a Bayer matrix. I used only the green pixels, subtracted the camera's fixed zero level, and added up blocks of 8 by 8 pixels to make small, less noisy frames. Plate solving (matching each frame's stars to a star catalog, here ESA's Gaia) told me exactly where each frame pointed and how it was turned, so I could also redraw every frame north-up on one fixed map of the sky. stated

Then I split each frame into four parts: a pattern fixed to the telescope (such as the slight darkening toward the corners), a pattern fixed to the sky (the galaxy and the stars), an even lift of the background, and an even dimming of everything in the sky. Whatever those four can't explain is the “left over” view in the flip-book. Finally, I averaged runs of 1, 5, 10, 25 and 50 frames to see faint things through the noise, and played them back in order. stated

  1. Frames. 1,301 raw 10 s subs, GRBG Bayer, 2160 × 3840 native, gain 200, IR-cut filter. G = mean of G1 and G2 minus the header bias (1112 ADU), binned 4 × 4 on the G plane (8 × 8 native) to 270 × 480. 1,225 subs passed the per-sub quality screen (ZP, FWHM, elongation, star count, sky). stated measured
  2. Sky view. A TAN grid at the night's median pointing, north up, 792 × 792 at 29.4″/px (6.5°), sized to hold the rotating footprint. Each binned sub is resampled bilinearly through its own Gaia-matched WCS (pixel map computed on a coarse grid and interpolated). Bright Gaia stars land on binned peaks of 2,000–3,100 ADU; the vertically flipped placement gives about 0, which checks the orientation. stated measured
  3. Model. Ft(x) = A(x) + ct + Tt S(Rtx) + rt(x): A sensor-fixed (vignetting, bias structure; median-zeroed), S sky-fixed (galaxy and stars), from two rounds of alternating medians over usable subs. Per sub, ct and Tt by least squares against S minus its 20th percentile, with three passes of 5σ clipping (robust σ from the MAD). rt is kept in both views. stated
  4. Center statistic. On each rolling stack's residual, minus that frame's median: median inside r < 700 native px minus median in 1000–1320 px, about the frame center (sensor view) or the grid center (sky view). stated
  5. Stacks and stretch. Rolling means of the last N = 1, 5, 10, 25, 50 subs (NaN-aware in the sky view). One asinh stretch per view and depth for the whole night; knee 2σ at that depth, so deeper stacks get a harder stretch. Residual noise per binned pixel: sky view 4.17 / 2.31 / 1.95 / 1.65 / 1.68 ADU and sensor view 6.20 / 3.21 / 2.52 / 2.02 / 1.81 ADU at N = 1 / 5 / 10 / 25 / 50; the sky view stops improving past N = 25 because stacks straddle rotation and pointing changes. stated measured
  6. Star-based center term. An independent per-sub fit of star fluxes with a Gaussian radial term (σ = 700 native px about the frame center) over 300 subs with star-by-star photometry; it correlates with ZP at r = −0.85. Used here only as a comparison series. stated measured
  7. Video. All frames encoded as H.264 at 10 frames per second, so the whole night plays as a movie; the flip-book tiles are taken from a smaller copy of the N = 25 video that keeps every fifth sub. stated