Lunar Mosaic

When the Moon is bigger than your camera’s field, photograph it in overlapping tiles and BiggSky joins them into one full-resolution image. It lines the tiles up to a fraction of a pixel, bends each one slightly where the seeing left it distorted, matches their brightness and vignetting, and blends them so that no seam shows — inside your project, straight from your stacked and deconvolved tiles.

SSE Lite, SSE Pro, Universe Functions › Mosaic…

Read the Mosaic manual

A crescent Moon joined from fifteen overlapping panels, each panel's outline drawn in yellow.
Fifteen panels, outlined in yellow. Images: David Richards.
What it does

From a folder of tiles to one seamless Moon

The tiles can be in any order and need no hints. BiggSky works out which tiles overlap and where, from the lunar detail they share.

Sub-pixel registration

BiggSky finds which tiles overlap and lines them up to a fraction of a pixel, correcting small differences in rotation and scale. All the tiles are placed together, so small errors do not add up across the mosaic.

Local alignment

A stacked tile is not perfectly rigid: each carries a few pixels of its own distortion from the seeing. BiggSky bends each tile smoothly by just enough that the tiles agree where they meet, and leaves the rest of the tile alone.

Brightness and vignetting

Tiles stretched or exposed differently get their own gain and offset, fitted on the bright Moon and on the sky and night side, and all share one vignetting curve, so a crater has the same brightness in every tile.

No visible seams

Each seam runs through the middle of its overlap, and the tiles are blended so that fine detail stays sharp right up to the seam — nothing doubled or blurred — while brightness changes gradually.

Gaps and crops

Corners no tile reaches are filled with a smooth model of the surrounding sky that follows the glow fading away from the Moon, with the sky’s own grain, so they stay invisible under strong stretches. Or crop to the largest rectangle the tiles cover completely.

Fast, and honest about it

On the GPU when Use GPU is ticked, on all your cores otherwise. When it is done it tells you how well the tiles lined up, how far it bent them, and names any tile it could not place.

Worked example 1

Fifteen panels of a crescent Moon, 8° above the horizon

A hard test. The Moon was only 8° up at the meridian, focus was soft and there was low cloud at the horizon. Fifteen videos with a Skyris 236M, each stacked and deconvolved in BiggSky to a 1840 × 1124 tile. Images: David Richards, 16 October 2026.

15 of 15panels placed, in any order
3749 × 6100pixels in the finished mosaic
up to 8 pxof distortion per tile, corrected by local alignment
2.9 → 0.8 pxdisagreement between tiles, before and after local alignment
17 son a 6-core thread pool (18 s on the GPU)
The finished mosaic: a crescent Moon from the north to the south pole, the terminator running down the left side, the maria and the bright limb on the right.
The mosaic. All fifteen panels, joined. Images: David Richards. Select any image for a full-size view.
Fifteen tiles in a grid of three by five: parts of the crescent, the terminator and the limb, some of them showing nearly the same area.
The fifteen panels, in the order they were captured. Some cover almost the same area; some overlap their neighbors only by a thin strip. Images: David Richards.
The mosaic with each tile's outline drawn in yellow and the seams in red, running diagonally through the middle of each overlap.
The layout BiggSky saves beside every mosaic: each tile’s outline in yellow, the seams in red, each in the middle of its overlap.
A seam with local alignment and blending: craters and a ridge run straight across. The same seam with each tile placed rigidly and joined with a hard edge: a ridge and crater rims break along a diagonal line.
Rigid BiggSky

Local alignment

A seam between two panels, magnified three times and strongly stretched. Placed as rigid wholes and joined with a hard edge, the ridge and crater rims break where they cross the diagonal seam, by up to 4 pixels. With local alignment and blending they run straight through.

Drag the handle, or use the arrow keys · Images: David Richards

The mosaic rendered with CLAHE: relief and maria stand out across the whole crescent, the sky stays black, and no seams or tile edges show. The same mosaic with BiggSky's Clip render: the terminator bright and the limb side flatter.
Clip CLAHE

Clip and CLAHE

The mosaic in BiggSky’s Clip render and with CLAHE, which lifts local contrast across the whole crescent. A strong local stretch finds every small step a mosaic leaves — here no seams, tile edges or filled corners show. Settings: Source Clip, Distribution uniform, ClipLimit 0.0075, NumTiles 8.

Drag the handle, or use the arrow keys · Images: David Richards

Why local alignment matters

Fitted as rigid tiles, the overlaps of these panels disagreed by 1.2–2.5 pixels at the median and up to 7 in places — even where the detail was sharp and bright, and no smooth lens-distortion model removed it. It is the seeing frozen into each stack, different in every tile; the one stacked from only 129 good frames was the worst. Local alignment brought the disagreement, measured on matches it was not fitted to, from 2.9 to 0.8 pixels.

What each tile needed

Each panel had been stretched separately, so their brightness differed by tens of percent and their night side from 0.1% to 1.2% of full scale, with a glow from the low Moon through cloud. BiggSky gave each tile its own gain and offset from the overlaps, fitted on the sky and night side as well as the bright Moon, so the dark parts of neighboring tiles meet at the same level.

Worked example 2

A full Moon from six tiles

Six 4590 × 3460 tiles, each a stack of 900 frames deconvolved in BiggSky, overlapping by about a third. Each View image had been stretched to its own histogram, so the tiles differ in brightness by up to 25%.

0.28 pxRMS registration across all eleven overlaps
7510 × 7685pixels, 58 megapixels
1%vignetting at the tile corners, removed
19 son the GPU (24 s on 6 cores)
Six tiles of the full Moon in a grid of three by two, each showing part of the disk and its limb.
The six tiles.
Where two tiles meet in the finished mosaic: one even surface with no visible boundary. The same place with the tiles joined as they are: a bright tile and a dark tile meet along a straight edge.
As stretched BiggSky

Brightness matching

Where tiles meet, strongly stretched. Joined as they were stretched, each tile is a different brightness. Matched and blended, no seam is visible, and the smallest craters cross the boundary without a break.

Drag the handle, or use the arrow keys

The finished full-Moon mosaic: the whole disk with Tycho's rays at lower left, the maria and the bright highlands.
The mosaic. Six tiles, 7510 × 7685 pixels.
In BiggSky

Functions › Mosaic…

Stack and deconvolve each tile as usual, then:

  1. Put the tiles in a dataset

    Add the tile images — the View images of each tile’s decon, or its 32-bit decon if you want to stretch the result yourself — as one dataset, and select it. Or skip this: Mosaic asks for the files when the dataset has none.

  2. Choose Functions › Mosaic…

    If the tiles have been deconvolved, pick which images to use; the View folder is listed first.

  3. Press OK

    The defaults suit almost every lunar mosaic: similarity geometry, multiband blending, brightness and vignetting matching, and local alignment.

  4. Check the result

    The mosaic opens as a new dataset and is saved in a Mosaic folder beside the tiles, with a layout image of the seams. The message says how well the tiles lined up and names any it could not place.

GeometrySimilarity (shift, small rotation and scale) by default; affine or translation if you need them.
BlendingMultiband (seamless), feather, or none — hard seams, to see where they fall.
Brightness and vignettingA gain and offset per tile, and one vignetting curve for all, fitted on the overlaps.
Local alignmentBends each tile by the few pixels the seeing left, so the overlaps agree. On by default.
Edge trimPixels left off every tile edge (8 by default), away from stacking and decon edge effects.
CropThe full extent of the tiles, gaps filled with the sky; or the largest rectangle with no gaps.
SuffixOptional: saves to a Mosaic_<Suffix> folder, so a new try does not overwrite the last one.
OutputA 16-bit PNG or TIFF, or a 32-bit floating-point TIFF scaled 0–1 that Photoshop and GIMP open; the layout image; and a new dataset in your project. Gray or color, as the tiles are.

How long it takes

Mosaic1 thread6 coresGPU
15 panels, 2 Mpx each23 s17 s18 s
6 tiles, 16 Mpx each31 s24 s19 s

Measured on an Intel Core Ultra 9 185H with an NVIDIA GeForce RTX 5070 Ti, from reading the tiles to the finished mosaic. Mosaic uses BiggSky’s Use GPU and Use CPU Multi-Core settings, and the results are the same either way.

Capturing the tiles

Overlap well, keep the camera square

Overlap by 20–40%

The matches come from the detail the tiles share, so more overlap places them more surely. A thin strip still works, but a tile that overlaps its neighbors only in shadow or sky may not be placed.

Same scale, same angle

The same telescope, camera, Barlow and binning for every tile, and the camera not turned between them. A degree or two of rotation — field rotation, a slewed mount — is measured and corrected.

Process them alike

Stack and deconvolve every tile with the same settings — Do It All on a folder of videos, or a saved profile, makes that easy. Brightness differences are matched; differences in sharpness are not.

Limitations

What it cannot do

These are the limits we measured or know about.

It cannot add detail

A tile taken in worse seeing or out of focus stays softer than its neighbors. The seams do not show as steps, but the change in texture can, under close inspection. Re-process or re-capture that tile.

Small rotations only

The tiles must be at one image scale and the camera at one angle, give or take a few degrees. It is not a tool for joining images from different telescopes or cameras, or mirror-flipped frames.

Distortion is corrected where tiles meet

Local alignment fixes the few-pixel distortions stacks normally carry, near the overlaps, where the tiles can be compared. A tile distorted much more — a poor stack — is reported as still differing from its neighbors.

Brightness is matched, not re-rendered

Each tile gets a gain and an offset. Tiles rendered with very different curves, or with local-contrast processing already applied, cannot be matched exactly. Join tiles rendered alike, or the 32-bit decons, and stretch the mosaic.

The dark parts are matched to a whisker

Sky and night-side levels are matched to about 0.03% of full scale. Under an extreme local-contrast stretch, faint level changes can still be found there, especially where scattered light differed from tile to tile.

Gaps are filled, not imaged

Where no tile reached, the mosaic shows a model of the sky fitted to the sky around the gap — not data. Far from any tile, or in a thin strip beside the limb, it can be a little lighter or darker than the real sky. Choose the covered crop to leave such corners out.

A flat projection

The tiles are joined on a flat plane, which is right for the Moon and Sun at telescope focal lengths. It does not make the spherical projections a wide-angle landscape panorama needs.

Tiles it cannot place are left out

A tile with no overlap with the others, or whose overlaps cannot be matched, is named in the message and left out rather than guessed at. An exact duplicate of another tile is left out too.

Make your own lunar mosaic

Mosaic is in BiggSky SSE Lite, SSE Pro and Universe.

Download BiggSky Compare editions Read the manual

Thanks to David Richards for the fifteen-panel crescent Moon.