Mathematica 9 is now available

 Documentation /  Scientific Astronomer /  Notebooks /

Asteroid TrajectoriesMaking Star Maps

The Star Charts




SetLocation[GeoLongitudeRule145.0 Degree,
GeoLatitudeRule-37.8 Degree,
GeoAltitudeRule0. KiloMeter,

About This Notebook

The title page graphics setup







Four main types of star charts are implemented. Their names are RadialStarChart, ZenithStarChart, CompassStarChart and StarChart. In clockwise order, from the top left, the output from the functions look roughly like the following when standard options are used.

There is also a fifth star chart function if you count Planisphere. Recently another star chart function called HorizonStarChart has been added.

All the star chart functions take a large number of options, and they all accept the options available to any Graphics object. This notebook discusses the options and shows how they can be used in non-trivial ways.

Why Four Types of Charts?

Each of the star chart functions have their own advantages and disadvantages.

For example the plain StarChart function is the fastest as it essentially just draws a direct map of the ascension and declination coordinates of stars. Being a rectangular system this means that the function is really only suitable close to the celestial equator, as there will be considerable distortion if you use it near the celestial poles. To overcome this problem RadialStarChart can be used.

RadialStarChart can plot any part of the sky with little or no distortion in the center of the chart. Some distortion may occur on the edges if the field of view is large however. This function is slower than the plain StarChart function because it has to transform the raw star positions as a function of the field of view. One feature of the StarChart and RadialStarChart is that they can zoom into small regions. They are however not good at viewing large fields of view. This is where the two global star chart functions are useful.

ZenithStarChart and CompassStarChart can plot only large global sections of the sky. They do this in such a way as to minimize distortion as much as possible. With ZenithStarChart the full sky above the local horizon and up to the zenith point is displayed. There is little or no distortion in the center, which is the zenith point, but around the edges and along the horizon there will be some stretching. CompassStarChart takes the opposite tack and has no distortion along the horizon, but to do this it has to display only one half of the sky at a time.

Using The Options

Listed here are some of the options available to the various star charts. These options are described, and some examples are given.


The RadialAngle option specifies the angular field of view to use. The default value is 20*Degree, but you can set it smaller to zoom into features. For example to zoom into the Pleiades star cluster type:

RadialStarChart[{AscensionRule3.77 Hour,
DeclinationRule24 Degree},
RadialAngleRule2 Degree];1;

This option does not apply to CompassStarChart or Planisphere where the angle is essentially fixed for you.

MagnitudeRange, MagnitudeScale

Sometimes when you load extra stars from the Star3000.m or Star9000.m files, you may not want to see all those stars. In such cases you can use the MagnitudeRange option to select the range of star magnitudes to be displayed.

The syntax is MagnitudeRange -> {min, max} or MagnitudeRange -> max. The default is MagnitudeRange -> {-Infinity, Infinity} which means display everything. An option value of MagnitudeRange -> 4.0 would request that only stars down to magnitude 4.0 be displayed.

Typically only faint stars are present when displaying a very small field of view. Such stars are drawn by default as very small dots in proportion to their magnitude. If the dots are too small then you can use the MagnitudeScale option to increase the size. For example MagnitudeScale -> 2 doubles the radius of the dots. Similarly for very large fields of view the brighter stars may be too big, in which case you can use say MagnitudeScale -> 0.3 to decrease their size. The default value is of course MagnitudeScale -> 1.

For example to show all stars brighter than magnitude 5 in the Pleiades star cluster, and to make the dots smaller, type:

RadialStarChart[{AscensionRule3.77 Hour,
DeclinationRule24 Degree},
RadialAngleRule2 Degree,


At any particular time the line of local horizon can be projected onto any of the star charts using the Horizon -> True option value. In addition it is possible to map a skyline (i.e. buildings and trees etc.) onto that horizon line using the Skyline option. But first here is how Horizon -> True works.

The Horizon option is only applicable to StarChart and RadialStarChart, with the default being Horizon -> False. Because the horizon changes with time you need to supply a date to the star chart command.

For example to see the horizon line (it is the brown line at the bottom of the next graphic) directly east of the viewing location at 11pm on 1995 February 1 type:

RadialStarChart[{AzimuthRule90 Degree,
AltitudeRule15 Degree},

Note in RadialStarChart, when the Horizon -> True option is used, that the graphic is rotated so that the horizon line is horizontal. This is not possible with the plain StarChart function which has a more rigidly aligned coordinate system. In that function, the horizon line and the ground below it is colored brown.

StarChart[{AzimuthRule90 Degree,
AltitudeRule15 Degree},


Now things get more interesting if you decide to map a skyline onto the local horizon using the Skyline option. The default value is Skyline -> {}, which means do not draw any sky line.

First some details about the value required for the Skyline option. You must build the value out of normal graphics primitives such as Point, Line, Rectangle, Disk, Circle, Polygon and Text etc. You can also use attributes such as RGBColor, PointSize and Thickness.

Now the coordinates supplied to the graphics primitives must be given in essentially horizoncoords, ie the first number must be the azimuth or compass direction in degrees, and the second number must be the altitude in degrees.

For example the primitive {RGBColor[1,0,0], Rectangle[{85, 0}, {95, 15}]} would mean that there is a red rectangular 'building' in the east (remember east is 90 degrees) that is 10 degrees wide (hence the 85 to 95) and which is 15 degree high above the horizon.

Similarly you can create trees and hills etc. You can also use the Text primitive to label features along the horizon.

As an example consider the following sky line consisting of a building 30 degrees high and 10 degrees wide in the direction 90 degrees around the compass. Also add a tree 20 degrees high at 50 degrees around the compass. And add a mountain in the west. Here are the graphics primitives to draw it:


And here is a plot of this elementary sky line:


The very basic sky line above can be mapped onto any star chart, for example:


Note the distortion at the edges in the above ZenithStarChart plot. The normally rectangular building is somewhat distorted.

Ecliptic, Mesh

In some of the previous graphics output you may have noticed a blue line crossing the field of view. This is the ecliptic which is the line that the Sun moves along exactly throughout the course of a year. The Moon and all the planets approximately move along this line during their orbits. And all the twelve zodiac constellations are near that line too. The ecliptic is therefore an important line.

To switch the line off however, use the Ecliptic -> False option value.The default is Ecliptic -> True.

A mesh of constant lines of ascension and declination can be superimposed onto any star chart using the Mesh -> True option. The default however is Mesh -> False because adding a mesh can be slow to compute.


In addition one can use the option GalacticPlane -> True to draw the line of the galactic plane, which passes along the Milky Way. The default is GalacticPlane -> False.

MilkyWay, GalacticPlane

One can use the option GalacticPlane -> True to draw the line of the galactic plane, which passes along the Milky Way. The default is GalacticPlane -> False.

To draw a shaded area representing the Milky Way (plus the Large and Small Magellanic Clouds) one can use the options MilkyWay -> True. The default is MilkyWay -> False.

Here is a basic example showing the entire celestial sphere with the GalacticPlane (shown in red) and the MilkyWay (shown as the light blue area).


Constellations, ConstellationLabels

So far in the star chart graphics you will have noticed that thin green lines have been used to join up common constellations. This can make features easier to spot. However the effect can be switched off with the Constellations -> False option value, but the default value is Constellations -> True.

Sometimes if you can not identify a constellation by eye it is useful to have it labeled automatically for you. This is where the ConstellationLabels -> True option is useful. For example:


The default value is however ConstellationLabels -> False.

Planets, PlanetLabels

Stars have mostly fixed positions in the rotating sky and so are easy to take account of in the various star charts. Planets however continually wander through the sky (although always near the ecliptic) and so are not normally displayed in the star charts by default. However you can set the Planets options to All or a list of planet names, and those objects will be rendered in the star charts. The default is Planets -> None.

When planets are displayed you might have trouble identifying which is which. So the option PlanetLabels -> True can be used to place labels below the planets. The default is PlanetLabels -> False.


StarColors, StarLabels

By default the star charts use black stars and a white background because that is often how you would want to print the chart. Sometimes however it is nice to see a more realistic rendering of the night sky. So the option StarColors -> True can be used to color the brighter stars according to their actual visual spectral color. With that option set the background sky is now rendered as black. The default for StarColors is however StarColors -> False.

Again, as with other options, it is possible to have automatic labeling of stars. Although because there are so many stars only the 25 brightest are labeled. The option to invoke this is StarLabels -> True. But the default is StarLabels -> False.


It is also possible to label all the stars in a given constellation with their standard greek letter names by using StarNames.

In the other star chart functions one can use the option RotateLabel -> True to rotate all the labels about the central point.

Clusters, Galaxies

Stars and planets are not the only objects that can be displayed on the star charts. There are many star cluster (both open and globular) as well as a few galaxies that are visible to the naked-eye or binoculars. The display of such deep space objects is controlled with the Clusters and Galaxies options.

Clusters are by default displayed as a special nine-dot symbol. These clusters can be removed from the star charts using the option Clusters -> False.

Although clusters are displayed by default, various galaxies are not. To display galaxies you need to use the option Galaxies -> True. Galaxies are displayed as a circle with a radius reflecting the angular size of the object.

Extra galaxies, star clusters and nebulae can be loaded from the DeepSky.m package.


By default the background sky is set to white (which is useful when printing a star chart on a printer) unless the StarColor option is set to True in which case the background sky is set to black. If neither of those colors is suitable to you, then you can use the Background option.

The Background option can be set to a CMYKColor, GrayLevel, Hue or RGBColor directive. The default is Automatic which chooses between GrayLevel[0] and GrayLevel[1] depending on whether StarColor is True or False.

Epilog, Prolog

All the standard graphics options are available in the star charts. In particular the Prolog and Epilog options are allowed. The first option can allow you for example to add a more complicated background than the Background option alone would allow. And the Epilog option can allow you enhance the foreground more than the Skyline option would allow.

One important use of the Epilog option in relation to star charts is the ability to add orbit tracks of say satellites or planets, as well as other coordinate dependent information. The functions to aid with this are OrbitTrack, OrbitMark and ChartCoordinates.

Another use of the Epilog option is to attach individual star names to stars in a given constellation. The function to achieve this is StarNames.

More Options

All standard graphics options are available. For example you can use PlotLabel, PlotRange, PlotRegion, Frame, FrameLabel, FrameStyle, FrameTicks, GridLines, AspectRatio, Ticks, RotateLabel, DefaultFont, DisplayFunction.

Adjusting Font Sizes

A default font name and various sized fonts are use throughout the star charts and other functions. The default font is "Helvetica", but you might want to use a different font for display purposes on some platforms.


Sometimes the size of the fonts can look small on the screen, but this can be adjusted too.


For example here is how to print a rough chart of Orion using double size labeling:


Asteroid TrajectoriesMaking Star Maps

Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information