Registered deep-sky integration, and the eight-frame refusal
Deep sky registers your Lights against a reference, integrates them by mean, exact median or sigma-clipped mean, crops to the region every frame covers, and writes the result as a signed, unclamped 32-bit FITS — with sigma clipping refusing fewer than eight Lights before a single file is decoded.
Three ways to combine, and they are not interchangeable
- Mean. The lowest noise for a given number of frames, and no protection at all: one satellite pass is in the result, divided by the frame count.
- Exact median. Not an approximation of one. Rejects an outlier in any single frame, at a known cost in noise against the mean.
- Sigma-clipped mean. Discards samples far from the local mean, then averages the rest — most of the median's robustness with most of the mean's noise, provided there are enough frames for the statistic to mean anything.
Why sigma clipping refuses fewer than eight Lights, before reading a file
A sigma clip estimates a spread from the samples it is given and then throws away the ones that disagree with it. On five frames that estimate is itself made of five numbers, so the clip discards whichever frame is unluckiest and reports a tighter result — a picture that looks cleaner because information was removed, which is the worst possible failure to ship silently.
So it refuses. And it refuses before any file is decoded, which is a deliberate choice about your time: the alternative is to read forty megapixels of RAW forty times over and then explain the problem. A refusal at the door costs a second.
Registration, and the crop nobody asks for but everybody wants
Frames are measured against a reference you choose rather than against the first frame in the folder — the first is often the one taken while the mount was still settling, and every other frame then inherits its errors.
After registration the frames no longer cover exactly the same sky, so the result is cropped to the region every frame contributes to. Without that the border of the picture is built from fewer frames than the middle and is noisier for a reason nothing on screen explains.
What comes out, and what it says about itself
The display picture is a 16-bit PNG. The integration itself is a signed, unclamped 32-bit FITS: a pixel below the sky background keeps its negative value instead of being clipped at zero, and a bright star keeps its value instead of being flattened to white. Both matter to whatever measures it next.
The header carries its own provenance — which method built it, how many frames, how many channels, whether they were registered, and the original dimensions if it was cropped — so the next program is told rather than left to guess. Three channels are written plane-major and labelled R, G and B. Which file to open where is a page of its own, because opening the wrong one is the mistake that quietly ruins an integration.
Try it on your own night
Open the stacker Nothing is uploaded and nothing is installed; the frames are read in your browser.