Skip to content

DeAstroStacker 0.8.1

Choose a tag to compare

@github-actions github-actions released this 12 Sep 15:24
· 2 commits to main since this release

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 says Dark · 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.