Why Are My Stars Purple, Red or Magenta?

Three different faults look alike from a distance. How to tell a wrong white point from a lens fringe from a clipped core, and what fixes each one.

Colored stars are correct. Stars range from deep orange to blue-white, and an image that shows that is better than one where every star is a white dot. But color that belongs to the star is different from color added by the pipeline, and there are three common ways to get the second kind. They look similar in a thumbnail and have unrelated causes, so it is worth knowing which one you have.

All three were found and fixed in Akastroid during one afternoon with a DSLR Pleiades and a Seestar M 101. The measurements are included because they make the causes concrete.

Fault one: the whole field is red (or blue)

What it looks like: every faint star has the same tint. You do not get a mix of warm and cool stars. They are all red, or all blue.

What it is: the white point. Color calibration has to decide what “neutral” means, and it does that by looking at stars. If it takes the brightest stars as neutral, then on a field whose bright stars really are blue (the Pleiades, most of Orion) it strips their blue and pushes everything else red. Measured on the Pleiades with the balance set from flux-weighted star color, the faintest third of the stars came out at a red-to-green ratio of 1.16 while Alcyone sat at 0.97. The blue giants had been turned gray, and the ordinary stars had paid for it.

The fix is to use the typical star as the reference, not the brightest. Most stars in any field are sun-like or a little cooler, and treating that as white is the convention every catalog-based calibration rests on. On the same Pleiades data that put Alcyone at a blue-to-green ratio of 1.06 and left the field neutral.

One detail took a second attempt. “Typical” has to mean typical among stars measured well enough to have a color. A faint star’s aperture is mostly noise. If the measurement clips that noise at zero, which is a common shortcut, the noisier channel reads brighter and the faint majority drags the white point toward whichever channel has the most noise. On the M 101 field that was blue, and the balance came out at 1.4× blue until the measurement was corrected.

How to tell you have it: the tint is uniform, it follows the faint stars, and the very brightest stars are the wrong color for what they are.

Fault two: a colored rim around white stars

What it looks like: the center of the star is white, with a thin ring of red, blue or magenta around it. Mid-brightness stars show it most. Faint stars are too small, and bright stars are swamped by their own glare.

What it is: the lens. Red, green and blue do not focus at exactly the same distance, so a star’s red image is slightly larger than its green one. In the linear data the difference is one or two percent of the star’s peak, three pixels from the center, which you cannot see. The stretch that makes the image viewable multiplies everything at that level by ten or more, and the rim appears. On a 111-frame DSLR Pleiades, the red channel carried 60% more than green at three pixels out in the linear stack, and twice as much after the stretch.

This is not a stacking or calibration error, and white balance will not touch it, because it is a difference in the shape of the star between channels rather than a tint.

The fix in Akastroid is a halo match: each star’s outer halo takes the color of that star’s own core. A white star’s rim goes white, a blue star stays blue to its edge, and the sky under the halo is left alone. It runs after the stretch, where the rim exists, and it is what took the Pleiades from red-rimmed stars to plain ones.

How to tell you have it: zoom in. A rim is a ring around a center of a different color. A tint covers the whole star.

Fault three: bright stars with magenta centers

What it looks like: the few brightest stars have a magenta or purple core, sometimes with a violet halo, while everything else looks fine.

What it is: clipping. The green pixels on a color sensor collect the most light, so on a bright star green reaches full scale first. Once green is flat, red and blue keep rising, and a pixel that is “red and blue but not green” is magenta. Then the white balance, which boosts blue on almost every color camera, turns the magenta violet. The core was never that color. The sensor stopped recording green and kept recording the other two.

The fix is to recognize that a clipped core has no color to read and render it white, which is what it is once the sensor has saturated. The catch is that the usual test for a clipped star looks at luminance, which is mostly green. A core with green at 0.8 and red and blue at 1.0 has a luminance of 0.86, which does not look clipped. Akastroid now checks each channel separately.

How to tell you have it: only the brightest stars are affected, and the colored part is the center.

A note on the Seestar’s blue halo

Seestar S50 images show a blue glow around bright stars that is none of the above. It is chromatic aberration in the telescope’s own optics: a real blue halo, present in the data, which any strong stretch will show. The pipeline does not introduce it, and it does not currently remove it either. If a saturated core is rendered white, the halo match takes the halo with it, which is usually an improvement. If the star is not clipped, the halo keeps the core’s color and stays visible.

Summary

you seeit isfix
every faint star the same tintwrong white pointreference the typical star, measured properly
colored ring, white centerlens chromatic aberration, revealed by the stretchhalo takes the core’s color
magenta centers on the brightest starsgreen channel clipped, then blue boostedrender clipped cores white

If you are not sure which you have, zoom in on a mid-brightness star. Whether it is a tint, a ring or a colored center is usually obvious.

Try it on your own data

Akastroid runs its processing on your own frames and logs each step it took.

Download Akastroid