PixInsight Mosaic Processing
A working reference for assembling multi-panel mosaics in PixInsight — plate solve, MosaicByCoordinates, GradientMergeMosaic — with a complexity ladder so you only do as much as your data needs.
A working reference for assembling multi-panel mosaics in PixInsight, built from three source videos with their actual on-screen settings folded in, and reconciled against authoritative references.
Sources
- Video 1 — Build a Perfect Mosaic in PixInsight. The thorough method. Transcript incorporated.
- Video 2 — Seamless Mosaics in PixInsight by Seti Astro. The DNALinearFit method. Transcript incorporated.
- Video 3 — How to Create a Mosaic in Just 5 Minutes by Galactic Hunter. The bare-minimum method. Transcript incorporated.
- PixInsight official tool documentation (GradientMergeMosaic, MosaicByCoordinates, StarAlignment).
- John Murphy, astroprocessing.com, author of PhotometricMosaic and NormalizeScaleGradient.
- Chaotic Nebula and Light Vortex Astronomy tutorials, plus recent Cloudy Nights consensus, 2025.
How to read this
All three videos use the same spine: plate solve, MosaicByCoordinates, GradientMergeMosaic. They differ only in how much preparation they add before the merge, which scales with how well-matched your panels are. The complexity ladder below maps that out. PhotometricMosaic is documented separately as the modern alternative for difficult builds, even though none of the three videos use it.
How much do you need to do?
The three videos are really three tiers of the same workflow. Start at the lowest tier your data allows and only climb if you see a problem.
- Tier 1, minimum (Galactic Hunter). Panels from one session, identical exposures, consistent sky, good overlap. Just plate solve, MosaicByCoordinates, then GradientMergeMosaic on defaults. No gradient work, no brightness matching. The presenter got a clean result this way.
- Tier 2, brightness matching (Seti Astro). Panels that came out at different brightness. Add DNALinearFit after reprojection to even them, then merge.
- Tier 3, full preparation (Build a Perfect Mosaic). Panels with gradients or larger differences. Add per-panel gradient removal and a brightness match done before reprojection, and tune the GradientMergeMosaic feather radius rather than trusting the default.
The stages below are written for Tier 3, the complete version. Skip the optional stages when your data does not need them.
Tool reference
What each tool does and why it is in the chain, in roughly the order you meet them. Standard post tools (StarNet, BlurX, NoiseX, SPCC) are not listed, as they sit outside the mosaic itself.
| Tool | What it does | Why it is in the chain |
|---|---|---|
| WBPP | Calibrates, registers and stacks the subs of one panel into a single master | Gives you the clean linear input each panel needs |
| NormalizeScaleGradient | Matches the brightness and gradient of every sub to a reference using differential photometry | Makes panels consistent before stacking, so the later blend is easier |
| AutomaticBackgroundExtractor | Models the background and subtracts it from a panel | Removes gradients that would otherwise show up as seams |
| GradientCorrection | Modern built-in background and gradient remover | Same job as ABE or DBE on current PixInsight |
| Statistics | Reads pixel values such as the Mean | Lets you measure and compare panel brightness |
| LinearFit | Scales one image to match another’s brightness | Evens panels before reprojection, while they still have full frames |
| HistogramTransformation | Manual tone adjustment via the midtone slider | Robust manual brightness match by raising a panel’s mean to the reference |
| ImageSolver | Plate solves a panel, writing its sky coordinates (WCS) into the file | Tells the mosaic script exactly where each panel sits on the sky |
| MosaicByCoordinates | Reprojects and places every panel into one shared frame using their WCS | Positions all panels correctly, ready to merge |
| DNALinearFit | Brightness match that tolerates the black borders of reprojected panels | Evens reprojected panels where plain LinearFit fails |
| CatalogStarGenerator | Synthesises a star field for a sky area | Gives a registration reference for large mosaics |
| StarAlignment | Registers images to a reference by matching star patterns | Alternative panel registration when MosaicByCoordinates drifts |
| GradientMergeMosaic | Blends overlapping panels in the gradient domain, spreading intensity differences smoothly across the join | Smooths the seam so the boundary between panels disappears |
| TrimMosaicTile | Shaves a few pixels off each panel edge | Gives PhotometricMosaic the hard, clean borders it requires |
| PhotometricMosaic | Merges panels using photometric scale and gradient modelling, one join at a time | The most artefact-free blend, and low on memory |
| Copy Astrometric Solution | Copies the WCS from one image to another | Carries the plate solution across the separate channels |
| DynamicCrop | Crops, and can rotate, the frame | Trims the black borders and skew from the finished mosaic |
The short version
Stack each panel, prepare it while linear, register the panels into one frame, then blend the seams. Stay linear until the blend is done.
WBPP per panel › (gradient removal) › (brightness match) › ImageSolver › MosaicByCoordinates › (DNALinearFit) › GradientMergeMosaic › DynamicCrop › normal post
Brackets are the steps you add as your data demands.
Choosing the blend tool
- GradientMergeMosaic is what all three videos use and is the default choice. On clean, matched, single-session data the defaults work. On harder data the feather radius is the lever that makes seams disappear, covered in Stage 4.
- PhotometricMosaic is the more forgiving alternative for difficult builds: many panels, bright stars sitting on a join, or a memory-heavy mosaic. It models each panel photometrically and only holds two images at once, so it avoids both the seam-star artefacts and the out-of-memory failures GMM can hit.
Stage 0 — Prerequisites
- One stacked master per panel from WBPP, calibrated and debayered. A 2×2 mosaic means four masters.
- Each master must be plate-solvable. All three presenters stress that MosaicByCoordinates cannot place a panel without a valid plate solution.
- Build the mosaic immediately after stacking, while the data are still linear. Every mosaic tool here is designed for linear data, and running them on stretched or denoised data is the most common cause of seam artefacts.
- Mono: build a separate mosaic for each channel (Ha, OIII, SII, L, R, G, B). OSC: build the colour channel, and if you add luminance, build that separately too.
Optional but worth it: run NormalizeScaleGradient (NSG) on each panel’s subs after calibration and before integration. It matches the brightness and gradient of every sub to a reference using differential photometry, which makes the panels much easier to blend later. It helps even from a dark site like Shinfield.
Stage 1 — Gradient removal, per panel (optional, Tier 3)
Any gradient left in a panel becomes a visible seam later, so do this whenever your panels carry gradients. You can skip it only for genuinely flat, matched, single-session data, which is the Tier 1 case. Always do it on each panel separately, never on the assembled mosaic.
- All presenters who do this step reach for AutomaticBackgroundExtractor (ABE) for speed. Video 2 notes any method is fine — DBE, ABE, or GraXpert — use whatever you trust.
- Video 1’s exact recipe: ABE with default parameters, but set Target Image Correction to Subtraction. Drag it onto each panel, keep the corrected panel, delete the background model. Run it even if the panel looks flat.
- On modern PixInsight, GradientCorrection is the current built-in tool and is a fine substitute for ABE or DBE here.
Stage 2 — Match panel brightness (optional, Tier 2 and 3)
Skip this if the panels already match — that is, one session, identical exposures, good overlap. Otherwise even them out, or the blend will show. There are two valid timings, and the timing decides which tool you can use.
Before reprojection (Video 1’s method)
Done on the original panels, before MosaicByCoordinates, while they still have full frames and no black borders.
- Open Statistics (Process › Image Inspection › Statistics) and read the Mean of each panel. The brightest panel — the highest mean — becomes the reference. Bring the others up to match it.
- If the panels are already similar, use LinearFit (Process › IntensityTransformations › LinearFit) with the brightest as reference. Video 1 warns that LinearFit can give poor results when panels differ a lot.
- The robust alternative is a manual match with HistogramTransformation: enable the real-time preview, clear the STF so you see true linear data, target that preview in Statistics, then nudge the midtone slider right until the mean matches the reference, within about 0.002. Apply it to the panel.
After reprojection (Video 2’s method)
Done on the reprojected panels, after MosaicByCoordinates, which is why it needs a special tool. The reprojected panels carry large black borders, and plain LinearFit cannot cope with those. DNALinearFit was written for exactly this case.
- Install DNALinearFit once via Script › Feature Scripts (download link is in the video description). It then appears under Script › Utilities › DNALinearFit.
- Choose a reference panel, set the target panel, run, and repeat for each panel. The console reports each result.
- Windows scripts folder:
C:\Program Files\PixInsight\src\scripts. On macOS, just add it through Feature Scripts.
Pick one timing per project and stick to it. Matching both before and after means matching twice.
Stage 3 — Register the panels
Plate solve
Run ImageSolver on each panel (Script › Image Analysis › ImageSolver). All three videos stress this is non-negotiable.
- Use List of Files rather than Active Windows. Video 3 found Active Windows unreliable.
- Add the masters, then confirm the metadata that auto-fills from the FITS headers: RA and Dec, date and time, focal length, pixel size. Leave Model Parameters on Automatic Catalogue.
- Output files gain a
_WCSsuffix. - Reflector note: with a RASA, Newtonian, or any train that mirror-flips the image, flip the panels before solving or the solve can fail. This does not affect refractors shooting straight through, so you can ignore it for the Askar scopes.
MosaicByCoordinates
Script › Mosaic › MosaicByCoordinates.
- Add Files, select the
_WCSpanels. - Choose a projection. The tool defaults to Mercator. Gnomonic suits typical focal lengths, which covers the Askar refractors. Stereographic or Mercator suit very wide fields. If stars look stretched in the result, try a different projection.
- Set an output directory. Leave the other options unchecked.
- Run. Each panel is reprojected and rotated into the correct mosaic position, output with a
_WCS_registeredsuffix. They look mostly black because each sits on the full mosaic canvas. They are placed, not yet merged. - Save the reprojected panels as
.xisf(Ctrl+Shift+S), ideally all in one folder to simplify the merge.
Alternative registration for large mosaics
If MosaicByCoordinates drifts on a big build, register instead against a synthetic star field: ImageSolver the centre panel, run CatalogStarGenerator to make a star field slightly larger than the whole mosaic, then StarAlignment each panel to it with Working mode Register/Union, Separate. Brightness matching is then handled by DNALinearFit or PhotometricMosaic.
Stage 4 — Merge the panels
Method 1 — GradientMergeMosaic (all three videos)
Process › GradientDomain › GradientMergeMosaic.
- Add the registered, brightness-matched
.xisfpanels. - Combination: Average. Overlay is harsher and rarely needed.
- Shrink Radius: about 5. This trims noisy panel edges.
- Feather Radius: this is the lever. For clean, matched, single-session data the default works, which is the Tier 1 case Video 3 shows. When a seam appears, raise it toward 100. Video 1 found the default of 10 far too low for less-matched data. Feather scales with how much overlap you captured.
- Apply Global.
Reading the seams: apply an STF and zoom into an overlap. One visible line means raise the feather radius. Two parallel lines means the feather is too large, so lower it.
Practical warning from Video 2: the FFT stage runs on a single CPU core, so it is slow, and a large mosaic can use 36 to 38 GB of RAM. Plan a big build accordingly.
Method 2 — PhotometricMosaic (modern alternative)
Install John Murphy’s repository in PixInsight (astroprocessing.com/repository.html), which adds PhotometricMosaic, TrimMosaicTile, and NormalizeScaleGradient.
- TrimMosaicTile each reprojected panel to shave about 2 pixels off every edge. PhotometricMosaic needs hard, clean borders.
- PhotometricMosaic (Script › Mosaic › PhotometricMosaic): build one join at a time, columns first then rows. It measures overlap stars to model each panel’s scale and gradient, so it handles brightness itself and you do not need DNALinearFit.
- Defaults usually work. If a join is poor, try the different mix modes, use the star mask option for bright seam stars, and move the join, since its placement changes how gradients are calculated.
Adam Block has a full PhotometricMosaic tutorial (AdamBlockStudios, PixInsight Horizons) if you want a visual walk-through.
Stage 5 — Per channel, and copying the solution across
For mono or split colour, run the whole route once per channel (Ha, OIII, SII, or R, G, B), independently.
Copying the astrometric solution between channels: PixInsight changed how it stores WCS, so the old copy script is gone. Two current options:
- Console command: type
CPA(Copy Astrometric Solution) and select the target image. This copies the WCS from the active image. - Script: Scripts › Utilities › Copy Astrometric Solution, by Mike Cranfield.
Stage 6 — Finish
- DynamicCrop the assembled mosaic. You can rotate the crop box and move its rotation centre to align with the slightly skewed mosaic geometry, so you keep as much data as possible. For several channels, draw and rotate the crop on the first, drag the process icon onto the others so every channel gets the identical crop, then apply. Alternatively crop after channel combination to avoid any mismatch. Keep the crop subtle to preserve field of view.
- Rejoin your normal pipeline: combine channels (SHO, HOO, LRGB), stretch, then BlurX, NoiseX, SPCC or your narrowband palette, and the rest. From here it is a single image.
Late seam fix from Video 3: if a faint seam only appears later, during stretching or colour work, remove the stars (StarNet or StarXTerminator), CloneStamp the seam away on the starless layer, then add the stars back. It is a touch-up, not part of the automated flow.
Reference end-to-end example: WBPP, register and crop, GraXpert, ImageSolver, MosaicByCoordinates, TrimMosaicTile, PhotometricMosaic, DynamicCrop, BlurX, NoiseX, StarNet, stretch, Foraxx palette, add luminance, add stars, final curves.
Gotchas worth pinning to the wall
- Feather Radius is the seam lever. Defaults can work for clean matched data, but raise it toward 100 the moment a seam shows.
- Stay linear until the merge is done.
- Remove gradients per panel before the merge, never after.
- Match brightness before reprojection and you can use LinearFit or HistogramTransformation. Match after reprojection and you must use DNALinearFit, because of the black borders. Do not do both.
- Skip the brightness match entirely if panels are from one session with identical exposures and good overlap.
- ImageSolver via List of Files, not Active Windows.
- With PhotometricMosaic you do not need DNALinearFit — it does its own photometric scaling.
- One seam line, raise feather. Two seam lines, lower feather.
- GMM and PMM both blend brightness, not noise. Matching texture comes from giving each panel similar sub counts and exposure at capture.
- Big GMM mosaics are slow and RAM-hungry; 36 to 38 GB is normal.
Capture notes for the kit
- ASIAIR Plan and mosaic: lay out the panel grid before the session. Aim for 10 to 15 percent overlap so the blend, and PhotometricMosaic’s photometry, have enough to work with.
- Shoot in one session at identical exposures where you can. That is what unlocks the Tier 1 minimum workflow with no brightness matching needed.
- Askar FRA400 widefield suits large emission targets across several panels. 107PHQ suits tighter-framed work where you want more scale. Both sit in the focal-length range where the Gnomonic projection is the right default.
- From Shinfield, order the panels to track your usable window from north and north-east round to south-west above 30 degrees altitude, so each panel sits at a sensible altitude when you reach it.
Appendix — References and links
Source videos (the three transcripts)
- Build a Perfect Mosaic in PixInsight
- Seamless Mosaics in PixInsight, by Seti Astro
- How to Create a Mosaic in Just 5 Minutes, by Galactic Hunter
PixInsight tools and scripts
- GradientMergeMosaic, official reference documentation
- John Murphy, AstroProcessing home
- AstroProcessing repository (install PhotometricMosaic, TrimMosaicTile and NSG)
- PhotometricMosaic and TrimMosaicTile detail page
- NormalizeScaleGradient official video tutorials
- Adam Block Studios, PixInsight Horizons (PhotometricMosaic tutorial)
- DNALinearFit, original by David Ault, with the reasoning behind it
- Copy Astrometric Solution, script by Mike Cranfield, found in PixInsight under Scripts › Utilities. The console command
CPAdoes the same job.
Written tutorials and references