Star/Galaxy Separation


Near the limiting magnitude of an image it becomes difficult to distinguish galaxies from stars. In this 9 x 3 minute inverted image of NGC 7331 it was possible to identify 117 galaxies, each circled in red, from 383 galaxy candidates reduced from 6073 detected objects. The image is 45.8' x 30.8' with 0.96 arcsec/pixel resolution and was taken with a 17” reflector under dark skies. Seeing conditions were about 2.0". A search in NED and SIMBAD showed no identified quasars in this image.

NGC 7331


  1. PixInsight CosmeticCorrection was applied to remove 1 dead pixel row in each raw image.

  2. The 9 images were stacked with DeepSkyStacker using Median with kappa-sigma clipping set to 2.0. Per channel correction was enabled, all other options were disabled.

  3. PixInsight was used to crop about 10 pixels on each border and stretch the image.

  4. The image was plate solved using

Object Extraction and Reduction

SExtractor was used to extract objects and object positions from the plate solved image. SExtractor assigns a Star/Galaxy classification value (CLASS_STAR) from 0 to 1 to each extracted object. Classification values near 0 indicate the object is likely a galaxy. Classification values near 1 indicate the object is likely a star. To classify objects, SExtractor uses a neural network which takes into account object attributes including FWHM. Star/Galaxy classification is about 95% accurate. Further reduction was applied to the data set. SExtractor execution parameters reset from default values were:

  1. seeing = 2.6

  2. detect_thresh = 1.40

  3. deblend_mincount = 0.0014

SExtractor detected 6073 objects of which 4660 have a flux equal to or above the background noise level of 260. A detected object was considered a galaxy candidate if:

  1. FLUX > 780 (3x background noise level of 260)

  2. FWHM > 3.4 (Star profiles in the image generally had FWHM < 3.0)

  3. CLASS_STAR < 0.05

Changing these values to include more objects had little effect. Reduction left 383 galaxy candidates.

Object Mapping

The galaxy candidates were queried by position in the NED database. Each galaxy candidate’s position as reported by SExtractor was queried with a position error radius of 0.059 arcmin (3.54”). If two objects were returned, the object closest to the queried position was used. The following galaxies are visible in the image but were not considered identified and were not included in the total:

  1. NGC 7325, CLASS_STAR = 0.983

  2. NGC 7327, Incorrect position in NED?

  3. GALEXASC J223646.47+342442.1, CLASS_STAR = 0.982

  4. GALEXMSC J223748.24+340823.5, flux = 625

  5. GALEXMSC J223810.25+341958.9, flux = 294

  6. Dwarf galaxies NGC 7331A, B and C, not extracted

117 galaxy candidates were mapped to a galaxy in the NED database and considered identified which is roughly 300 identified galaxies per square degree.

Image Creation

The image above was created with Aladin Sky Atlas. The plate solved image, NED data and the Aladin filter were loaded into Aladin and Aladin was used to invert the image. To mark each identified galaxy on the image there is a row in the Aladin filter similar to:

${Identifier}="GALEXASC J223708.66+343344.0" { draw red circle (14) }

The number of galaxies in the image is greater than 117 but only 117 galaxies can be confirmed.


File Producer Description
NGC 7331.fits Fits image data
NGC 7331 Plate Solved.fits Fits image data with World Coordinate System values added to the FITS header
extract.txt SExtractor Extracted object data. Output fields specified in default.param. Execution parameters specified in default.cfg.
AladinFilter.txt Python script The Python script scans the extracted object data, filters galaxy candidates from the object list and looks up each galaxy candidate on NED. If a match is found on NED, it writes a record to the Aladin Filter. The script uses AstroPy for coordinate formatting.