Next Previous Up Contents
Next: Examples
Up: plot2sky: Draws a sky plot
Previous: plot2sky: Draws a sky plot

B.11.1 Usage

The usage of plot2sky is

   stilts <stilts-flags> plot2sky xpix=<int-value> ypix=<int-value>
                                  insets=<top>,<left>,<bottom>,<right>
                                  omode=swing|out|cgi|discard|auto
                                  storage=simple|memory|disk|policy|cache|basic-cache|persistent|parallel
                                  seq=<suffix>[,...] legend=true|false
                                  legborder=true|false legopaque=true|false
                                  legseq=<suffix>[,...] legpos=<xfrac,yfrac>
                                  title=<value>
                                  auxmap=<map-name>|<color>-<color>[-<color>...]
                                  auxclip=<lo>,<hi> auxflip=true|false
                                  auxquant=<number>
                                  auxfunc=log|linear|histogram|histolog|sqrt|square|acos|cos
                                  auxmin=<number> auxmax=<number>
                                  auxlabel=<text> auxcrowd=<factor>
                                  auxwidth=<pixels> auxvisible=true|false
                                  forcebitmap=true|false compositor=0..1
                                  animate=<table> afmt=<in-format>
                                  astream=true|false acmd=<cmds>
                                  parallel=<int-value>
                                  projection=sin|aitoff|aitoff0|car|car0
                                  viewsys=equatorial|galactic|supergalactic|ecliptic
                                  reflectlon=true|false grid=true|false
                                  scalebar=true|false
                                  labelpos=Auto|External|Internal|...
                                  sex=true|false crowd=<number>
                                  gridcolor=<rrggbb>|red|blue|...
                                  gridtrans=0..1
                                  labelcolor=<rrggbb>|red|blue|...
                                  gridaa=true|false
                                  texttype=plain|antialias|latex
                                  fontsize=<int-value>
                                  fontstyle=standard|serif|mono
                                  fontweight=plain|bold|italic|bold_italic
                                  clon=<degrees> clat=<degrees>
                                  radius=<degrees> zoomfactor=<number>
                                  leglabelN=<text>
                                  layerN=<layer-type> <layerN-specific-params>
                                  datasysN=equatorial|galactic|supergalactic|ecliptic
If you don't have the stilts script installed, write "java -jar stilts.jar" instead of "stilts" - see Section 3. The available <stilts-flags> are listed in Section 2.1. For programmatic invocation, the Task class for this command is uk.ac.starlink.ttools.plot2.task.SkyPlot2Task.

Parameter values are assigned on the command line as explained in Section 2.3. They are as follows:

acmd = <cmds>       (ProcessingStep[])
Specifies processing to be performed on the animation control table as specified by parameter animate, before any other processing has taken place. The value of this parameter is one or more of the filter commands described in Section 6.1. If more than one is given, they must be separated by semicolon characters (";"). This parameter can be repeated multiple times on the same command line to build up a list of processing steps. The sequence of commands given in this way defines the processing pipeline which is performed on the table.

Commands may alternatively be supplied in an external file, by using the indirection character '@'. Thus a value of "@filename" causes the file filename to be read for a list of filter commands to execute. The commands in the file may be separated by newline characters and/or semicolons, and lines which are blank or which start with a '#' character are ignored. A backslash character '\' at the end of a line joins it with the following line.

afmt = <in-format>       (String)
Specifies the format of the animation control table as specified by parameter animate. The known formats are listed in Section 5.1.1. This flag can be used if you know what format your table is in. If it has the special value (auto) (the default), then an attempt will be made to detect the format of the table automatically. This cannot always be done correctly however, in which case the program will exit with an error explaining which formats were attempted. This parameter is ignored for scheme-specified tables.

[Default: (auto)]

animate = <table>       (StarTable)
If not null, this parameter causes the command to create a sequence of plots instead of just one. The parameter value is a table with one row for each frame to be produced. Columns in the table are interpreted as parameters which may take different values for each frame; the column name is the parameter name, and the value for a given frame is its value from that row. Animating like this is considerably more efficient than invoking the STILTS command in a loop.

The location of the animation control table. This may take one of the following forms:

In any case, compressed data in one of the supported compression formats (gzip, Unix compress or bzip2) will be decompressed transparently.

astream = true|false       (Boolean)
If set true, the animation control table specified by the animate parameter will be read as a stream. It is necessary to give the afmt parameter in this case. Depending on the required operations and processing mode, this may cause the read to fail (sometimes it is necessary to read the table more than once). It is not normally necessary to set this flag; in most cases the data will be streamed automatically if that is the best thing to do. However it can sometimes result in less resource usage when processing large files in certain formats (such as VOTable). This parameter is ignored for scheme-specified tables.

[Default: false]

auxclip = <lo>,<hi>       (Subrange)
Defines a subrange of the colour ramp to be used for Aux shading. The value is specified as a (low,high) comma-separated pair of two numbers between 0 and 1.

If the full range 0,1 is used, the whole range of colours specified by the selected shader will be used. But if for instance a value of 0,0.5 is given, only those colours at the left hand end of the ramp will be seen.

If the null (default) value is chosen, a default clip will be used. This generally covers most or all of the range 0-1 but for colour maps which fade to white, a small proportion of the lower end may be excluded, to ensure that all the colours are visually distinguishable from a white background. This default is usually a good idea if the colour map is being used with something like a scatter plot, where markers are plotted against a white background. However, for something like a density map when the whole plotting area is tiled with colours from the map, it may be better to supply the whole range 0,1 explicitly.

auxcrowd = <factor>       (Double)
Determines how closely the tick marks are spaced on the Aux axis, if visible. The default value is 1, meaning normal crowding. Larger values result in more ticks, and smaller values fewer ticks. Tick marks will not however be spaced so closely that the labels overlap each other, so to get very closely spaced marks you may need to reduce the font size as well.

[Default: 1.0]

auxflip = true|false       (Boolean)
If true, the colour map on the Aux axis will be reversed.

[Default: false]

auxfunc = log|linear|histogram|histolog|sqrt|square|acos|cos       (Scaling)
Defines the way that values in the Aux range are mapped to the selected colour ramp.

The available options are:

For all these options, the full range of data values is used, and displayed on the colour bar if applicable. The Linear, Log, Square and Sqrt options just apply the named function to the full data range. The histogram options on the other hand use a scaling function that corresponds to the actual distribution of the data, so that there are about the same number of points (or pixels, or whatever is being scaled) of each colour. The histogram options are somewhat more expensive, but can be a good choice if you are exploring data whose distribution is unknown or not well-behaved over its min-max range. The Histogram and HistoLog options both assign the colours in the same way, but they display the colour ramp with linear or logarithmic annotation respectively; the HistoLog option also ignores non-positive values.

[Default: linear]

auxlabel = <text>       (String)
Sets the label used to annotate the aux axis, if it is visible.
auxmap = <map-name>|<color>-<color>[-<color>...]       (Shader)
Color map used for Aux axis shading.

A mixed bag of colour ramps are available as listed in Section 8.7: inferno, magma, plasma, viridis, cividis, cubehelix, sron, rainbow, rainbow2, rainbow3, pastel, cosmic, ember, gothic, rainforest, voltage, bubblegum, gem, chroma, sunset, neon, tropical, accent, gnuplot, gnuplot2, specxby, set1, paired, hotcold, guppy, iceburn, redshift, pride, rdbu, piyg, brbg, cyan-magenta, red-blue, brg, heat, cold, light, greyscale, colour, standard, bugn, bupu, orrd, pubu, purd, painbow, huecl, infinity, hue, intensity, rgb_red, rgb_green, rgb_blue, hsv_h, hsv_s, hsv_v, yuv_y, yuv_u, yuv_v, scale_hsv_s, scale_hsv_v, scale_yuv_y, mask, blacker, whiter, transparency. Note: many of these, including rainbow-like ones, are frowned upon by the visualisation community.

You can also construct your own custom colour map by giving a sequence of colour names separated by minus sign ("-") characters. In this case the ramp is a linear interpolation between each pair of colours named, using the same syntax as when specifying a colour value. So for instance "yellow-hotpink-#0000ff" would shade from yellow via hot pink to blue.

[Default: inferno]

auxmax = <number>       (Double)
Maximum value of the data coordinate on the Aux axis. This sets the value before any subranging is applied. If not supplied, the value is determined from the plotted data.
auxmin = <number>       (Double)
Minimum value of the data coordinate on the Aux axis. This sets the value before any subranging is applied. If not supplied, the value is determined from the plotted data.
auxquant = <number>       (Double)
Allows the colour map used for the Aux axis to be quantised. If an integer value N is chosen then the colour map will be viewed as N discrete evenly-spaced levels, so that only N different colours will appear in the plot. This can be used to generate a contour-like effect, and may make it easier to trace the boundaries of regions of interest by eye.

If left blank, the colour map is nominally continuous (though in practice it may be quantised to a medium-sized number like 256).

auxvisible = true|false       (Boolean)
Determines whether the aux axis colour ramp is displayed alongside the plot.

If not supplied (the default), the aux axis will be visible when aux shading is used in any of the plotted layers.

auxwidth = <pixels>       (Integer)
Determines the lateral size of the aux colour ramp, if visible, in pixels.

[Default: 15]

clat = <degrees>       (Double)
Latitude of the central position of the plot in decimal degrees. Use with clon and radius. If the center is not specified, the field of view is determined from the data.
clon = <degrees>       (Double)
Longitude of the central position of the plot in decimal degrees. Use with clat and radius. If the center is not specified, the field of view is determined from the data.
compositor = 0..1       (Compositor)
Defines how multiple overplotted partially transparent pixels are combined to form a resulting colour. The way this is used depends on the details of the specified plot.

Currently, this parameter takes a "boost" value in the range 0..1. If the value is zero, saturation semantics are used: RGB colours are added in proporition to their associated alpha value until the total alpha is saturated (reaches 1), after which additional pixels have no further effect. For larger boost values, the effect is similar, but any non-zero alpha in the output is boosted to the given minimum value. The effect of this is that even very slightly populated pixels can be visually distinguished from unpopulated ones which may not be the case for saturation composition.

[Default: 0.05]

crowd = <number>       (Double)
Determines how closely sky grid lines are spaced. The default value is 1, meaning normal crowding. Larger values result in more grid lines, and smaller values in fewer grid lines.

[Default: 1]

datasysN = equatorial|galactic|supergalactic|ecliptic       (SkySys)
The sky system used to interpret supplied data longitude and latitude coordinate values for a particular plot layer.

Choice of this value goes along with the viewsys value which specifies the view sky system for the whole plot. If neither the view nor data system is specified, plotting is carried out in a generic sky system assumed the same between the data and the view. But if any layers have a supplied data sky system, there must be an explicitly or implicitly supplied view sky system into which the data input coordinates will be transformed. If not supplied explicitly, the data system defaults to the same value as the view system.

The available options are:

fontsize = <int-value>       (Integer)
Size of the text font in points.

[Default: 12]

fontstyle = standard|serif|mono       (FontType)
Font style for text.

The available options are:

[Default: standard]

fontweight = plain|bold|italic|bold_italic       (FontWeight)
Font weight for text.

The available options are:

[Default: plain]

forcebitmap = true|false       (Boolean)
Affects whether rendering of the data contents of a plot (though not axis labels etc) is always done to an intermediate bitmap rather than, where possible, being painted using graphics primitives. This is a rather arcane setting that may nevertheless have noticeable effects on the appearance and size of an output graphics file, as well as plotting time. For some types of plot (e.g. shadingN=auto or shadingN=density) it will have no effect, since this kind of rendering happens in any case.

When writing to vector graphics formats (PDF and PostScript), setting it true will force the data contents to be bitmapped. This may make the output less beautiful (round markers will no longer be perfectly round), but it may result in a much smaller file if there are very many data points.

When writing to bitmapped output formats (PNG, GIF, JPEG, ...), it fixes shapes to be the same as seen on the screen rather than be rendered at the mercy of the graphics system, which sometimes introduces small distortions.

[Default: false]

grid = true|false       (Boolean)
If true, sky coordinate grid lines are drawn on the plot. If false, they are absent.

[Default: true]

gridaa = true|false       (Boolean)
If true, grid lines are drawn with antialiasing. Antialiased lines look smoother, but may take perceptibly longer to draw. Only has any effect for bitmapped output formats.

[Default: false]

gridcolor = <rrggbb>|red|blue|...       (Color)
The color of the plot grid, given by name or as a hexadecimal RGB value.

The standard plotting colour names are red, blue, green, grey, magenta, cyan, orange, pink, yellow, black, light_grey, white. However, many other common colour names (too many to list here) are also understood. The list currently contains those colour names understood by most web browsers, from AliceBlue to YellowGreen, listed e.g. in the Extended color keywords section of the CSS3 standard.

Alternatively, a six-digit hexadecimal number RRGGBB may be supplied, optionally prefixed by "#" or "0x", giving red, green and blue intensities, e.g. "ff00ff", "#ff00ff" or "0xff00ff" for magenta.

[Default: grey]

gridtrans = 0..1       (Double)
Transparency of grid lines that may be drawn over the plot. The range is 0 (opaque) to 1 (invisible). This value is 1-alpha.

[Default: 0.5]

insets = <top>,<left>,<bottom>,<right>       (Padding)
Defines the amount of space in pixels around the actual plotting area. This space is used for axis labels, and other decorations and any left over forms an empty border.

The size and position of the actual plotting area is determined by this parameter along with xpix and ypix.

The value of this parameter is 4 comma separated integers: <top>,<left>,<bottom>,<right>. Any or all of these values may be left blank, in which case the corresponding margin will be calculated automatically according to how much space is required.

labelcolor = <rrggbb>|red|blue|...       (Color)
The color of axis labels and other plot annotations, given by name or as a hexadecimal RGB value.

The standard plotting colour names are red, blue, green, grey, magenta, cyan, orange, pink, yellow, black, light_grey, white. However, many other common colour names (too many to list here) are also understood. The list currently contains those colour names understood by most web browsers, from AliceBlue to YellowGreen, listed e.g. in the Extended color keywords section of the CSS3 standard.

Alternatively, a six-digit hexadecimal number RRGGBB may be supplied, optionally prefixed by "#" or "0x", giving red, green and blue intensities, e.g. "ff00ff", "#ff00ff" or "0xff00ff" for magenta.

[Default: black]

labelpos = Auto|External|Internal|...       (SkyAxisLabeller)
Controls whether and where the numeric annotations of the lon/lat axes are displayed. The default option Auto usually does the sensible thing, but other options exist to force labelling internally or externally to the plot region, or to remove numeric labels altogether.

The available options are:

The ExternalSys and InternalSys options use axis descriptions appropriate to the View coordinate system for the current plot; these options may not work well for plots which are all-sky or show a substantial proportion of the sky.

[Default: Auto]

layerN = <layer-type> <layerN-specific-params>       (LayerType)
Selects one of the available plot types for layerN. A plot consists of a plotting surface, set up using the various unsuffixed parameters of the plotting command, and zero or more plot layers. Each layer is introduced by a parameter with the name layer<N> where the suffix "<N>" is a label identifying the layer and is appended to all the parameter names which configure that layer. Suffixes may be any string, including the empty string.

This parameter may take one of the following values, described in more detail in Section 8.3:

Each of these layer types comes with a list of type-specific parameters to define the details of that layer, including some or all of the following groups:

Every parameter notionally carries the same suffix N. However, if the suffix is not present, the application will try looking for a parameter with the same name with no suffix instead. In this way, if several layers have the same value for a given parameter (for instance input table), you can supply it using one unsuffixed parameter to save having to supply several parameters with the same value but different suffixes.

legborder = true|false       (Boolean)
If true, a line border is drawn around the legend.

[Default: true]

legend = true|false       (Boolean)
Whether to draw a legend or not. If no value is supplied, the decision is made automatically: a legend is drawn only if it would have more than one entry.
leglabelN = <text>       (String)
Sets the presentation label for the layer with a given suffix. This is the text which is displayed in the legend, if present. Multiple layers may use the same label, in which case they will be combined to form a single legend entry.

If no value is supplied (the default), the suffix itself is used as the label.

legopaque = true|false       (Boolean)
If true, the background of the legend is opaque, and the legend obscures any plot components behind it. Otherwise, it's transparent.

[Default: true]

legpos = <xfrac,yfrac>       (double[])
Determines the internal position of the legend on the plot. The value is a comma-separated pair of values giving the X and Y positions of the legend within the plotting bounds, so for instance "0.5,0.5" will put the legend right in the middle of the plot. If no value is supplied, the legend will appear outside the plot boundary.
legseq = <suffix>[,...]       (String[])
Determines which layers are represented in the legend (if present) and in which order they appear. The legend has a line for each layer label (as determined by the leglabelN parameter). If multiple layers have the same label, they will contribute to the same entry in the legend, with style icons plotted over each other. The value of this parameter is a comma-separated sequence of layer suffixes, which determines the order in which the legend entries appear. Layers with suffixes missing from this list do not show up in the legend at all.

If no value is supplied (the default), the sequence is the same as the layer plotting sequence (see seq).

omode = swing|out|cgi|discard|auto       (PaintMode)
Determines how the drawn plot will be output, see Section 8.5.

[Default: auto]

parallel = <int-value>       (Integer)
Determines how many threads will run in parallel if animation output is being produced. Only used if the animate parameter is supplied. The default value is the number of processors apparently available to the JVM.

[Default: 20]

projection = sin|aitoff|aitoff0|car|car0       (Projection)
Sky projection used to display the plot.

The available options are:

Note that for historical reasons the projections named "aitoff" denote the equal-area Hammer-Aitoff projection and not the Aitoff projection itself. The Hammer-Aitoff projection is defined as:

[Default: sin]

radius = <degrees>       (Double)
Approximate radius of the plot field of view in degrees. Only used if clon and clat are also specified.

[Default: 1]

reflectlon = true|false       (Boolean)
Whether to invert the celestial sphere by displaying the longitude axis increasing right-to-left rather than left-to-right. It is conventional to display the celestial sphere in this way because that's what it looks like from the earth, so the default is true. Set it false to see the sphere from the outside.

[Default: true]

scalebar = true|false       (Boolean)
If true, a small bar is drawn near the bottom left of the plot annotated with a distance in degrees, arc minutes or arc seconds, to make it easier to determine the size of features on the plot by eye.

[Default: true]

seq = <suffix>[,...]       (String[])
Contains a comma-separated list of layer suffixes to determine the order in which layers are drawn on the plot. This can affect which symbol are plotted on top of, and so potentially obscure, which other ones.

When specifying a plot, multiple layers may be specified, each introduced by a parameter layer<N>, where <N> is a different (arbitrary) suffix labelling the layer, and is appended to all the parameters specific to defining that layer.

By default the layers are drawn on the plot in the order in which the layer* parameters appear on the command line. However if this parameter is specified, each comma-separated element is interpreted as a layer suffix, giving the ordered list of layers to plot. Every element of the list must be a suffix with a corresponding layer parameter, but missing or repeated elements are allowed.

sex = true|false       (Boolean)
If true, grid line labels are written in sexagesimal notation, if false in decimal degrees.

[Default: true]

storage = simple|memory|disk|policy|cache|basic-cache|persistent|parallel       (DataStoreFactory)
Determines the way that data is accessed when constructing the plot. There are two main options, cached or not. If no caching is used then rows are read sequentially from the specified input table(s) every time they are required. This generally requires a small resource footprint (though that can depend on how the table is specified) and makes sense if the data only needs to be scanned once or perhaps if the table is very large. If caching is used then the required data is read once from the specified input table(s), then prepared and cached before any plotting is performed, and plots are done using this cached data. This may use a significant amount of storage for large tables but it's usually more sensible (faster) if the data will need to be scanned multiple times. There are various options for cache storage.

The options are:

The default value is memory if a live plot is being generated (omode=swing), since in that case the plot needs to be redrawn every time the user performs plot navigation actions or resizes the window, or if animations are being produced. Otherwise (e.g. output to a graphics file) the default is simple.

[Default: simple]

texttype = plain|antialias|latex       (TextSyntax)
Determines how to turn label text into characters on the plot. Plain and Antialias both take the text at face value, but Antialias smooths the characters. LaTeX interprets the text as LaTeX source code and typesets it accordingly.

When not using LaTeX, antialiased text usually looks nicer, but can be perceptibly slower to plot. At time of writing, on MacOS antialiased text seems to be required to stop the writing coming out upside-down for non-horizontal text (MacOS java bug).

[Default: plain]

title = <value>       (String)
Text of a title to be displayed at the top of the plot. If null, the default, no title is shown and there's more space for the graphics.
viewsys = equatorial|galactic|supergalactic|ecliptic       (SkySys)
The sky coordinate system used for the generated plot.

Choice of this value goes along with the data coordinate system that may be specified for plot layers. If unspecified, a generic longitude/latitude system is used, and all lon/lat coordinates in the plotted data layers are assumed to be in the same system. If a value is supplied for this parameter, then a sky system must be supplied for each data layer with the datasys parameter and the coordinates are converted from data to view system before being plotted.

The available options are:

xpix = <int-value>       (Integer)
Size of the output image in the X direction in pixels. This includes space for any axis labels, padding and other decoration outside the plot area itself. See also insets.

[Default: 500]

ypix = <int-value>       (Integer)
Size of the output image in the Y direction in pixels. This includes space for any axis labels, padding and other decoration outside the plot area itself. See also insets.

[Default: 400]

zoomfactor = <number>       (Double)
Sets the amount by which the plot view zooms in or out for each unit of mouse wheel movement. A value of 1 means that mouse wheel zooming has no effect. A higher value means that the mouse wheel zooms faster and a value nearer 1 means it zooms slower. Values below 1 are not permitted.

[Default: 1.2]


Next Previous Up Contents
Next: Examples
Up: plot2sky: Draws a sky plot
Previous: plot2sky: Draws a sky plot

STILTS - Starlink Tables Infrastructure Library Tool Set
Starlink User Note256
STILTS web page: http://www.starlink.ac.uk/stilts/
Author email: m.b.taylor@bristol.ac.uk
Mailing list: topcat-user@jiscmail.ac.uk