Skip to content
GMST --h --m --s FR / EN
Coming soon Processing

YAGEx

Strip the sky's veil without taking away the faint nebulosity that cost you hours of exposure.

Work in progress

Overview

A perfect sky would be uniform. In practice every image carries a veil that varies from edge to edge: the city lights one corner of the field, the Moon another, the optics darken the corners. Removing it looks simple, except that a large diffuse nebula looks a lot like a gradient. Too aggressive a tool erases it along with the veil, and the result looks clean precisely because your signal is gone. YAGEx attacks that trade-off, and it aims at a weakness the current tools share: they reject their background samples against a global statistic that is itself distorted by the very gradient being removed. So YAGEx looks for the real sky rather than for the dark areas. It examines the texture of each region, because pure sky has a recognisable statistical signature whether it is bright or dark: a background area on the lit side of the gradient is recognised as background, and faint nebulosity, however dark, does not pass itself off as sky. It then fits its model to the bottom of the distribution, where only the sky lives, since everything that shines merely adds light. And rather than asking you to guess a degree or a smoothing factor, it puts a range of models into competition, from the rigid polynomial to relaxed splines, and keeps the one that best predicts the background in areas it has not seen. Subtraction for light pollution, division for vignetting, 32-bit internal computation, optional diagnostic images to see exactly what was removed. YAGEx is a native Process written in C++, and it is developed against a bench where the truth is known: synthetic gradients first, then real masters into which a measured gradient is injected. Two numbers are tracked on every image, the departure from the true background and the share of nebula flux preserved, because a perfectly flat background obtained by shaving the nebula off is not a success.

Features

The real sky, not the dark areas

Background classification works on the shape of the pixel distribution, tile by tile, not on its level. It is therefore insensitive to the gradient itself, whereas current tools reject their samples against a global statistic that the very same gradient distorts.

The floor, not the mean

Stars, nebulae and galaxies only ever add light to the sky. The background model is therefore fitted to the bottom of the distribution, where only the sky lives, and samples are pushed down towards the local minima.

A ladder of rigidity

No degree or smoothing factor to guess. A range of models is put into competition, from the rigid polynomial to progressively relaxed thin-plate splines, and the one that best predicts the background where it was not fitted wins.

Subtraction or division

Subtraction for light pollution and moon glow, division for residual vignetting. Internal computation in 32-bit float, output dithering so no banding is introduced.

Developed against a ground truth

A test bench measures every build: synthetic gradients whose shape is known by construction, then real masters into which a measured gradient is injected. It tracks the departure from the true background and the share of nebula flux preserved, against ABE and the Siril tools.

A native Process

YAGEx is not a script: it is a module compiled in C++, installed and driven like the processes shipped with PixInsight, real-time preview included. The same engine also powers a command-line tool for your own pipelines.

Install

Work in progress

This script is not released yet. Installation will be available once it ships.