DeAstroStacker 0.8.1
DeAstroStacker 0.8.1. Everything since 0.6.2 — mosaics, a whole night of
planetary recordings as one picture, one Season for both pipelines, live
stacking from N.I.N.A., and a gradient step that stops eating the nebula.
Mosaics
A mosaic is stacked straight into the mosaic. Not a master per panel merged
afterwards — that is two rounds of resampling, two sets of rejection statistics
that never saw each other, and a seam solved by a tool that has forgotten which
frames were involved. One output big enough for every pointing, one alignment
solve per frame, one integration, one sky solved across the whole thing, and
the picture filling in on screen as the frames arrive.
The words: the output is a slab, one pointing's worth of frames is a
patch. A walk — a Seestar or a Dwarf in framing mode — is a mosaic whose
patches nobody laid out.
- Pointings are worked out from the headers alone, and a pointing with no
WCS is plate-solved rather than dropped. - The sky is levelled per channel. It used to measure one luminance number
per block and move all three channels by it, so every colour difference
between pointings survived intact — nothing on a linear frame, and three
different colours after a stretch. Across a real 3×1 of Rho Ophiuchi, B/G ran
0.675 to 0.711 and R/G 0.876 to 0.846. - Patches cross-fade into each other. A changeover is a line however level
it is: on one side of a row the mean is over two pointings' frames and on the
other over one's, and the couple of ADU they still disagree about arrives all
at once along eleven thousand pixels. Over the last two hundred pixels of its
coverage a frame is worth progressively less and its neighbour more. Measured
on that same 3×1: the worst rim's biggest bin-to-bin jump went from 3.15 ADU
to 0.42, inside the 0.49–1.10 the slab shows along rows with no seam at all. - The levelling correction now carries its own geometry. It was grown to full
size with a plain resize, which is right for a single field and wrong on a
slab, where the blocks are laid on the slab and the window starts wherever
the placement put it — so the surface slid by up to half a block, in opposite
directions at the two ends.
A whole night of planetary recordings, as one picture
Forty clips of Jupiter are two different things depending on what was wanted,
and nothing in the files says which. Stacking each on its own has always been
one press; stacking them as one is new.
- The frame with nothing in it used to win the ranking. A frame was scored
as contrast over brightness squared, and when the cloud took a frame the
divisor goes to nearly zero: on a synthetic Jupiter, sky glow and read noise
scored 5159 against the best real frame's 243. Not merely kept — ranked
first, which is the frame the whole recording is stabilised onto. There is
a floor under the divisor now, and a discard: frames with nothing in them
and frames the stabilisation could not solve leave the ranking entirely, so
"keep the best 25%" is 25% of what is left. The Scale has a Discarded column
and draws them as a band along the bottom of the seeing curve. - The reference is capped at a hundred frames. It was the best ten per cent
averaged, so forty thousand frames meant four thousand reads — and The Cook
paid twice, because the preview built one and the stack built its own. Noise
in a mean falls as the square root of the count, so everything past the first
hundred bought nothing measurable and made the reference blunter, since
what a ten per cent share adds up there is the mediocre tail of the ranking. - A mono night is several reels, and one of them is colour.
One Season, for both pipelines
There were two Seasons. One composed three mono stacks into a colour picture
and stopped; the other, a rail click away, had twenty-six operations, palettes,
masks, PixelMath, two lanes and a crash-proof Icebox. Two screens, one of them
a decade behind the other, for the same job. There is one now.
Wavelets were six sliders over the same grain. Every slider maxed moved a
soft Venus by three per cent, and the stack was not the problem: the six bands
were spaced one pixel to two and a half, so all six were the same detail and
the sliders pushed it eight times over. The default spacing was linear with a
step of zero. It is the à trous transform now — B3-spline taps with the taps
moved twice as far apart at each scale — which is what every other program
computes, and the panel's labels of 1, 2, 3, 5, 7, 10 are now what it does.
The last screen stops stretching a planet. The Serve rendered through a
throwaway deep-sky autostretch, which on a planet saturates the disc and turns
the sky around it into a blizzard, with no control anywhere to turn it off. It
carries the same Show bar the Season and both planetary screens have.
The gradient step
Every model this app had would subtract the thing being photographed, and so
would GraXpert, which decides a planetary nebula's inner disk is background.
They fail in the same place: a tile is called an object when it stands above
the middle of the tile map, and when the target covers most of the field the
target is the middle of the tile map.
Automatic DBE is a fourth model on the Gradient step. Samples are clipped
against its own fitted surface rather than the global middle, refit, and
asked again; the model is a low-degree trend plus a thin-plate spline of
what the samples have left over from it, so it follows a lumpy sky like a local
model and cannot be talked into following the target. Measured on a synthetic
Helix — a disk covering most of the frame with sky only at the corners — the
nebula's height against the corners survives at:
| model | left standing |
|---|---|
| polynomial, degree 2 | 47% |
| polynomial, degree 4 | −7%, which is to say a hole |
| local | 43% |
| Automatic DBE | 99.8% |
Exclusion zones are for the nebula rejection cannot find — large, faint, no
further above the sky than the sky glow varies. Draw free-hand loops on the
picture and no sample is taken inside them. On a frame like that, 73% survives
on rejection alone and 97% with a loop round it, where a local model flattens
it to nothing. Draw generously: an object's outskirts reach past the part of it
you can see, and a sample taken in them is still a sample taken off the object.
Show BG draws the surface being removed instead of the picture, the way the
Mask tick draws the mask a step builds — for every method, GraXpert's included.
A model that curved up into a nebula looks exactly like a model that followed
the sky, until you look at it. Show samples draws where the sky is being
measured and what became of each one: kept, thrown out for sitting on
something, or inside a zone.
Calibration
- A dark flat was being treated as a dark. Anything whose type said "dark"
went to the darks, and a dark flat says both words — so a catch holding
thirty 300-second darks and twenty 0.04-second dark flats built one master
out of all fifty and subtracted the average from every light. It is its own
kind of frame now, and it is what calibrates the flats in preference to the
bias. - Keep masters writes the four out beside the stack, each saying what it is,
how many frames went into it, and the camera, gain, offset, temperature,
exposure, binning and filter it belongs to. There is no library and no
manager: a master is a frame you catch, so the way to reuse one is to point
The Catch at that folder. - A caught master is used as it is rather than being rebuilt — PixInsight's
and WBPP's too. The frame table saysDark · master of 30.
Watching a stack happen
- A frame now says where it came down. An align was a bar and a file name
for however long it took. It draws the frame's own outline where it landed,
the stars its fit agreed with the reference about, and behind it the faint
trail of everything already down — in the output's own pixels, so the
outlines sit exactly over the picture forming underneath. On a mosaic this is
the slab assembling itself in the first minute rather than the fourth hour. - The landing brings its own pixels with it, about a hundred kilobytes a
frame, so a mosaic with levelling on has something to show while its frames
are still being solved. - Matched stars are drawn as corner brackets rather than rings. A closed
circle covers the star it is pointing at, so a hundred of them read as a haze
over the picture rather than as a set of marks.
Live stacking from N.I.N.A.
The stack stays open while the night keeps adding to it, previews travel in the
message rather than through a folder, and a preview that will not write says
why and tries again first.
Fixes worth naming
- A cleared Catch left the whole session behind it. A mosaic of Rho was
cooked, Clear all pressed, a folder of M31 dropped in, and The Cook died in
three seconds on an alignment error that had nothing to do with the new
frames: the alignment reference is settled once per session, which is the
whole point when a second filter has to land on the first one's pixels, and
exactly wrong when the list has been swapped for a different object. - The Season's store threw away results to pay for their own files. On a
21-step Line over M31 at 8250×12400, clicking from step three to step six ran
all six from step one, every time. Spilling a result to disk to make room in
memory put the disk over budget, and the next line forgot the result that had
just been spilled. - Add stars put them back in the wrong place, twice over: a picture's own
stars already carry every crop above the fork, so replaying those cut them a
second time. And "it came out the same size" stood in for "it did nothing",
which a mirror or a half turn of a square frame is not. - Whole right angles are three buttons under the picture — 90, 180, 270 —
and they say which way up the picture is rather than how much further to turn
it. Typing 90 into the crop angle turns the box, which is a different
answer. The box carries an "up" mark, because a box at 170° and one at 350°
are the same four corners and produce upside-down crops of each other. - The AI steps say which card to think on. RC-Astro keeps a saved default
this app cannot see, and on a machine whose default is the processor every
one of those steps ran roughly nine times slower with nothing on screen to
say why — BlurXTerminator is 77 ms a tile on an RTX 3060 against 725 ms on
the processor. Settings offers the machine's own device list, and Measure the
fastest runs RC-Astro's own benchmark over every one of them. - Deleting a saved preset now wears a bin and asks first; dropping a step keeps
its unguarded cross, because guarding an undoable action is a click for
nothing.
macOS: the app is not signed by Apple, so the first launch is refused. One
line clears it, and it is only ever needed once:
xattr -dr com.apple.quarantine /Applications/DeAstroStacker.app
Windows: SmartScreen will warn for the same reason — More info, then Run
anyway.