Deep-Sky Objects

From Stellarium Wiki
Jump to: navigation, search
Information is actual for version 0.14.1

Extended objects are those which are external to the solar system, and are not point-sources like stars. Extended objects include galaxies, planetary nebulae and star clusters. These objects may or may not have images associated with them. Stellarium also comes with a catalogue with over 14,000 extended objects containing the combined data from many catalogues, with 190 images.

Since to version 0.10.0 Stellarium uses new method of displaying textures using the “json” cataloguing system. At the same time the Simbad online catalogue was added to the search feature making it largely redundant and used now only as a first search point or if there is no internet connection.

If the object has a name (not just a catalogue number), you should add one or more records to the .../nebulae/default/names.dat file (where ... is either the installation directory or the user directory). See section Modifying names.dat for details of the file format.

If you wish to associate a texture (image) with the object, you must now add a record to the .../nebulae/default/textures.json file. See section Modifying textures.json for details of the file format.

Nebula images should have dimensions which are integer powers of two, i.e. 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 ... pixels along each side. If this requirement is not met, your textures may not be visible, or graphics performance may be seriously impacted. PNG or JPG formats are both supported.


GUI for manage by Deep-Sky Objects


Stellarium DSO Catalog

Stellarium DSO Catalog is contains over 1400 objects and he available for end users as collection of files:

  • catalog.txt - Stellarium DSO Catalog in ASCII format for editing data;
  • catalog.dat - Stellarium DSO Catalog in binary format for usage within Stellarium;
  • names.dat - list of proper names of the objects from catalog.dat file.

ASCII file can be converted into binary format through enabling option devel/convert_dso_catalog = true in the config.ini file. The file catalog.txt should be put to the directory .../nebulae/default/.

Stellarium DSO Catalog contains data and supported the designations for follow catalogues:

  • New General Catalogue (NGC)
  • Index Catalogue (IC)
  • Messier Catalog (M)
  • Caldwell Catalogue (C)
  • Barnard Catalogue (B)
  • Sharpless Catalogue (Sh2)
  • Van den Bergh Catalogue of reflection nebulae (VdB)
  • A catalogue of Hα-emission regions in the southern Milky Way (RCW)
  • Lynds' Catalogue of Dark Nebulae (LDN)
  • Lynds' Catalogue of Bright Nebulae (LBN)
  • Collinder Catalogue (Cr)
  • Melotte Catalogue of Deep Sky Objects (Mel)
  • HYPERLEDA. I. Catalog of galaxies (PGC)[1]
  • The Uppsala General Catalogue of Galaxies (UGC)[2]
  • Cederblad Catalog of bright diffuse Galactic nebulae (Ced)

Modifying catalog.dat

This section is described inner structure of files catalog.dat (has binary format) and catalog.txt (has ASCII format). Stellarium can convert ASCII file into the binary format file for usage within planetarium.

Each line contains one record, each record consisting of the following fields with tab char as delimiter:

Column Type Description
Generic columns
1 integer Deep-Sky Object Identificator
2 float RA (decimal degrees)
3 float Dec (decimal degrees)
4 float B magnitude
5 float V magnitude
6 string Object type (Possible values see in table Types of Objects).
7 string Morphological type of object
8 float Major axis size or radius (arcmin)
9 float Minor axis size (arcmin)
10 integer Orientation angle (degrees)
11 float Redshift
12 float Error of redshift
13 float Parallax (mas)
14 float Error of parallax (mas)
15 float Non-redshift distance (Mpc for galaxies, kpc for other objects)
16 float Error of non-redsift distance (Mpc for galaxies, kpc for other objects)
Cross-index columns
17 integer NGC number (New General Catalogue)
18 integer IC number (Index Catalogue)
19 integer M number (Messier Catalog)
20 integer C number (Caldwell Catalogue)
21 integer B number (Barnard Catalogue)
22 integer Sh2 number (Sharpless Catalogue)
23 integer VdB number (Van den Bergh Catalogue of reflection nebulae)
24 integer RCW number (A catalogue of Hα-emission regions in the southern Milky Way)
25 integer LDN number (Lynds' Catalogue of Dark Nebulae)
26 integer LBN number (Lynds' Catalogue of Bright Nebulae)
27 integer Cr number (Collinder Catalogue)
28 integer Mel number (Melotte Catalogue of Deep Sky Objects)
29 integer PGC number (HYPERLEDA. I. Catalog of galaxies); partial
30 integer UGC number (The Uppsala General Catalogue of Galaxies); partial
31 string Ced number (Cederblad Catalog of bright diffuse Galactic nebulae)

Types of Objects

Possible values for type of objects in the file catalog.dat.

Type Description
G Galaxy
GX Galaxy
AGX Active Galaxy
RG Radio Galaxy
IG Interacting Galaxy
GC Globular Cluster
OC Open Cluster
NB Nebula
PN Planetary Nebula
DN Dark Nebula
RN Reflection Nebula
C+N Cluster associated with nebulosity
HII HII Region
SNR Supernova Remnant
BN Bipolar Nebula
EN Emission Nebula
SA Stellar Association
SC Star Cloud
CL Cluster
IR Infra-Red Object
QSO Quasar
Q? Possible Quasar
ISM Interstellar Matter
EMO Emission Object
LIN LINEAR-type Active Galaxies
BLL BL Lac Object
BLA Blazar
MOC Molecular Cloud
YSO Young Stellar Object
PN? Possible Planetary Nebula
PPN Protoplanetary Nebula
* Star
** Double Star
MUL Multiple Star
empty Unknown type, catalog errors, Unidentified Southern Objects etc.

Modifying names.dat

Each line in the names.dat file contains one record. A record relates an extended object catalogue number (from catalog.dat) with a name. A single catalogue number may have more than one record in this file.

The record structure is as follows:

Offset Length Type Description
0 5 %5s Designator for catalogue (prefix)
5 15 %d Identificator for object in the catalog
20 60 %s Proper name of the object (translatable)

If an object has more than one record in the names.dat file, the last record in the file will be used for the nebula label.

Modifying textures.json

This file is used to describe each nebula image. The file structure follows the JSON format, a detailed description of which may be found at . The textures.json file which ships with Stellarium has the following structure:

  • serverCredits (optional) - a structure containing the following key/value pairs:
    • short - a short identifier of a server where the json file is found, e.g. “ESO”
    • full - a longer description of a server, e.g. “ESO Online Digitised Sky Survey Server”
    • infoURL - a URL pointing at a page with information about the server
  • imageCredits - a structure containing the same parts as a serverCredits structure but referring to the image data itself
  • shortName - an identifier for the set of images, to be used inside Stellarium
  • minResolution - minimum resolution, applies to all images in the set, unless otherwise specified at the image level
  • maxBrightness - the maximum brightness of an image, applies to all images in the set, unless otherwise specified at the image level
  • subTiles - a list of structures describing indiviual image tiles, or referring to another json file. Each subTile may contain:
    • minResolution
    • maxBrightness
    • worldCoords
    • subTiles
    • imageCredits
    • imageUrl
    • textureCoords
  • shortName (name for the whole set of images, e.g. “Nebulae”)
  • miniResolution (applies to all images in set)
  • alphaBlend (applies to all images in set)
  • subTiles list of images. Each image record has the following properties:
    • imageCredits (itself a list of key/pairs)
    • imageUrl (e.g. file name)
    • worldCoords (a list of four pairs of coordinates representing the corners of the image)
    • textureCoords (a list of four pairs of corner descriptions. i.e. which is top left of image etc)
    • minResolution (over-rides file-level setting)
    • maxBrightness

Items enclosed in Quotation marks are strings for use in the program. Syntax is extremely important. Look at the file with a text editor to see the format. Items in <> are user provided strings and values to suit the texture and source.

Line 1 “imageCredits”: {“short” : “<name of source>” : “infoUrl”: http://<web address>}, 
Line 2 “imageUrl” : “<location and name of image>”, 
Line 3 “worldCoords” : < decimal numerical values of the J2000 coordinates of the corners of the texture > These values displayed to 4 decimal places in the format of the texture coordinates 
Line 4 “textureCoords” : [[[ 0,0],[1,0],[1,1],[0,1]]], Where 0,0 is South Left , 1,0 the South Right , 1,1 North Right , 0,1 North Left corners of texture Format = RA in degrees, Dec in degrees 
Line 5 “MinResolution” : <a numerical value that displays the texture>, 
Line 6 “maxBrightness” : < a numerical vale representing the absolute brightness for the display> 

Calculating of the coords of the corners of the images (plate solving)is a time consuming project and needs to be fine tuned from the screen display. As most images will be two dimensional, display on a spherical display will limit the size to about 1 degree before distortion becomes evident. Larger displays can be sectioned into a mosaic of smaller textures for a more accurate display

Adding Extra Nebulae Images

By Barry Gerdes, 01-03-2014

Preparing a photo for inclusion to the textures.json file


Fig. 1 Screen shot of nebula images displayed in Stellarium

The first step is to take a photo of the object you wish to display in Stellarium as a screen backdrop. Then when you have the picture you will need align it so that north is directly up and not inverted side to side or up and down as can happen with photos taken with a diagonal mirror in the path. Next you will need to crop the picture, setting the main feature at the centre and making the cropped size a factor of 2n eg. 64, 128, 256, 512 or 1024 pixels square. When cropping make sure you leave at least five prominent background stars

The next step is to process your photo to make the background black,black. This will ensure that your background will meld with the Stellarium background and not be noticed. Suitable programs to do all this are The Gimp (free in keeping with the Stellarium spirit) or Photoshop if you can afford it.

When you have your prepared image you will need to plate solve it using at least 6 known GSC stars that can be identified. That is why the cropping with plenty of stars was necessary. When the plate is solved you will need to find the J2000 coordinates of the corners and convert them to decimal values to form the world coordinates in the textures.json file.


Fig.2 A program to convert Equatorial coordinates into decimal form and write a textures.json insert

The program in the picture can accept the corner coordinates of a texture in your plate solving program into decimal values and write an insert for the textures.json file. It is available as a freebee from


Here is a second program written in Qb64(gl)that will perform the same task but allow manipulation of the epochs.

Plate Solving

Suitable programs that can accept your picture and calculate its corner coordinates are hard to find. I have only found one that suits our purpose and it is another expensive planetarium program, TheSkyX Pro. However the older versions TheSky5 and 6 Pro will also do the job if suitably configured although I could not solve the test program with the TheSky6 that uses the same procedure as TheSky5 .

These programs have a link feature that can match your photo to the selected area of the screen and superimpose it on the display with a box around your photo provided it can match at least 6 stars from the GSC that is included with the program. When this is fitted you can read the corner coordinates of your texture in the Status bar by selecting them with a mouse. TheSkyX can read these coordinates in J2000 values and uses textures in the fits format but the earlier programs only read the coordinates of the current program date. To read the J2000 coordinates it is necessary to re start the program with the date set to 1-1-2000

To add the picture to TheSky5 you need first make a mono 8 bit version of the photo and place it on the clipboard. Run TheSky and centre on the object centre. Look in the Tools menu for the image link and select setup. Tick show image frame to put a frame around the image.

Paste the clipboard image on the display and use the zoom and position controls to get it as close to the size and position as possible by visually matching stars. Go to the menu again and click on link wizard. If you have been successful the window will show the number of stars matched and the option to accept or continue. Accept and you will now see all the matched stars have overlaid the picture. You can now read off the corner coordinates from the status bar starting at the bottom (south) left and continuing counter clockwise to the top (north) left.

Processing into a textures.json insert

Place your image in the *.png format in the .../nebulae/default/ folder. Ensure that the name matches the textures.json entry.

Once you have the corner coordinates of your photo you can add them to the decimal converter program and it will write an insert nebula.json as a text file that you can paste directly into the textures.json file that is in the .../nebulae/default/ folder.

Save the textures.json file with the new insert and run Stellarium. Select the object in the Object selection window and slew to it. Your image should be there and with a bit of luck it will nicely overlay the stars in the Stellarium program. However this only rarely happens so a little bit of tweaking of the json worldcoords will be needed to get a perfect match. Select the telescope (equatorial mode). This will show the area with north up. Select each corner in sequence and make small changes to the coordinates. Re start Stellarium each time and check if you have moved the right direction. Continue with each corner until all the stars match. With a little bit of practice this will be done in about 10 minutes.

The information in this section is outdated and relates to series prior 0.14

Modifying ngc2000.dat

Each line contains one record, each record consisting of the following fields[3]:

Offset Length Type Description
0 1 %c Describes the catalogue type. I = Index Catalogue, anything else means NGC
1 6 %d Catalogue number
8 3 %3s Sets nType.

Possible values:

'Gx ' NEB_OC


'Gb ' NEB_N

'Nb ' NEB_PN

'Pl '

' '

' - '

' * '

'D* '




12 9 %d %f Right ascension hour; right ascension minute
21 1 %c Declination degree sign
22 7 %d %f Declination degree; Declination minute
40 7 %f Angular size
47 6 %f Magnitude

Modifying ngc2000names.dat

Each line in the ngc2000names.dat file contains one record. A record relates an extended object catalogue number (from ngc2000.dat) with a name. A single catalogue number may have more than one record in this file.

The record structure is as follows:

Offset Length Type Description
0 35 %35s Name (Note that messier numbers should be “M” then three spaces, then the number).
37 1 %c
38 %d Catalogue number
44 30? %s ?

If an object has more than one record in the ngc2000names.dat file, the last record in the file will be used for the nebula label.


  1. Partial support
  2. Partial support
  3. This section is for reference only as the file ngc2000.dat is no longer in ASCII format.

« Customising Landscapes Contents Advanced Use »

Personal tools
in this wiki
other languages