Adding Nebulae Images

From Stellarium Wiki
Revision as of 18:53, 5 May 2011 by Alexwolf (Talk | contribs)
Jump to: navigation, search

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 comes with a catalogue of about 13,000 extended objects, with images of over 100.

To add a new extended object, add an entry in the .../nebulae/default/ngc2000.dat file with the details of the object (where ... is either the installation directory or the user directory). See section Modifying ngc2000.dat for details of the file format.

If the object has a name (not just a catalogue number), you should add one or more records to the .../nebulae/default/ngc2000names.dat file. See section Modifying_ngc2000names.dat for details of the file format.

If you wish to associate a texture (image) with the object, you must also add a record to the .../nebulae/default/textures.json file. See section [sec:nebula_textures.fab] 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.


Modifying ngc2000.dat

Each deep sky image has one line in the ngc2000.dat file in the .../nebulae/default/ directory (where ... is either the installation directory or the user directory). The file is a plain ASCII file, and may be edited with a normal text editor. Each line contains one record, each record consisting of the following fields:

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.

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 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

Editing Image Files

Images files should be copied to the .../nebulae/<set>/ directory (where <set> is the name of the nebula texture set to be modified which is usually default. Images should be in PNG or JPEG format. Images should have an aspect ratio of 1 (i.e. it should be square), and should have a width & height of 2n pixels, where n is a positive integer (i.e. 2, 4, 8, 16, 32, 64, 128, 256, 512, and so on).

Black is interpretted as being 100% transparent. Ensure that the background of the image is totally black (i.e. has RGB values 0, 0, 0), and not just nearly black since this can cause an ugly square around the object.

There is a lot of software which may be used to create / modify PNG and JPEG images. The author recommends the GNU Image Manipulation Program (GIMP), since it is more than up to the job, and is free software in the same spirit as Stellarium itself.

« Customising Landscapes Contents Advanced Use »

Personal tools
in this wiki
other languages