B Storing and representing columns of angles

 B.1 Angular format specifiers

CURSA provides special facilities for representing columns which contain angles. Usually angular columns are used to store celestial coordinates such as Right Ascension and Declination, position angles or small angles such as the great circle distance between neighbouring points or the angular size of extended objects. However, they can contain any angular measure. The basis of these facilities is that columns of angles are stored and manipulated internally in radians, but are automatically displayed by xcatview (see Section 11) and catview (see Section 12) as hours or degrees, minutes or seconds, optionally formatted as a sexagesimal value.

CURSA recognises a column which is to be treated in this way by a combination of the DTYPE (data type) and UNITS attributes.

Incidentally, the external display format attribute of the column, EXFMT, must be set to a valid Fortran 77 format specifier corresponding to the data type of the column, because of the way that CURSA represents catalogues as FITS tables.

It is possible to interactively modify the way that a column of angles is displayed by xcatview or catview. This alteration is achieved by supplying a new UNITS attribute for the column. In practice it is only the angular format specifier which is changed; the UNITS must still be of the form

  RADIANS{angular format specifier}

The angular format specifier is described in full below.

B.1 Angular format specifiers

The angular format specifier forms part of the UNITS attribute for an angular column. The UNITS attribute for an angular column has the form:

  RADIANS{angular format specifier}

The simplest angular format specifiers are ‘HOURS’ and ‘DEGREES’.

HOURS
will cause the angle to be displayed as hours, minutes and seconds, with the seconds displayed to one place of decimals,
DEGREES
will cause the angle to be displayed as degrees, minutes and seconds, with the seconds displayed as a whole number.

If the angular format specifier is omitted altogether and the UNITS attribute simply set to ‘RADIANS’ or ‘RADIANS{}’ then the angle will be interpreted exactly as though the angular format specifier had been ‘DEGREES’. There are additional simple angular format specifiers for displaying angles as minutes or seconds of arc or time to a specified number of decimal places:

ARCMIN.n
minutes of arc,
ARCSEC.n
seconds of arc,
TIMEMIN.n
minutes of time,
TIMESEC.n
seconds of time.

.n is the number of decimal places required. If .n is omitted then the value will be displayed as an integer number. Though these angular specifiers can be used to display any angle, obviously they are most likely to be useful for small angles.

These simple angular format specifiers will usually be adequate for representing columns of celestial coordinates. However, sometimes you might wish to specify a different representation for an angle. CURSA accepts angular format specifiers which permit angles to be represented in a number of different formats. These specifiers are constructed from a selection from amongst the following elements:

I B L + Z H D M S T .n

The meaning of each of the individual elements is as follows.

I
Use the ISO standard separator for expressing times, a colon (‘:’), to separate hours or degrees, minutes and seconds.
B
Use a single blank space to separate hours or degrees, minutes and seconds.
L
Use a letter (h, d, m, or s, as appropriate) to separate hours or degrees, minutes and seconds.
+
Insert a plus sign (‘+’) before positive angles (a minus sign is, of course, always inserted before negative angles).
Z
Insert leading zeros before the hours, degrees, minutes or seconds. Hours, minutes and seconds are assumed to be two-digit numbers and degrees three-digit.
H
Express the angle in units of hours.
D
Express the angle in units of degrees.
M
If an M occurs when either H or D is present then it indicates that the hours or degrees are to be subdivided into sexagesimal minutes. If an M occurs when neither H nor D is present then it indicates that the units are minutes of either arc or time.
S
If an S occurs when an M is present then it indicates that the minutes are to be subdivided into sexagesimal seconds (the minutes may be either the actual units or themselves a sexagesimal subdivision of hours or degrees; see M above). If an S occurs when an M is not present then it indicates that the units are seconds of arc or time.
T
In the case where H and D are both absent and either or both of M and S are present then T indicates that the units are minutes or seconds of time. If it is omitted in this case then the units are minutes or seconds of arc. If either H or D is present then T is ignored.
.n
Display the least significant unit (seconds, minutes, degrees or hours, as appropriate) to n decimal places.

Any of the items may be omitted, down to and including a completely blank specifier.

The items can occur in any order, except that .n must occur last. However, for human readability I recommend that the items occur in the order:

(any of: I, B, L, + or Z) (H or D) M S T .n

If items are omitted the following defaults apply.

Table 21 lists a number of examples of angular format specifiers which might be used to represent ‘large’ angles, such as celestial coordinates, together with examples of how they would represent an angle. Table 22 lists a number of examples of angular format specifiers which might be used to represent small angles, such as the great circle distance between two neighbouring objects or the angular size of an extended object, together with examples of how they would represent an angle.


Specifier Example Notes



D 63 Integer degrees
D.2 62.86 Degrees to two places of decimals
DM 62:52 Degrees and integer minutes
DM.2 62:51.58 Degrees and minutes to two places of decimals
DMS 62:51:35 Degrees, minutes and integer seconds
DMS.2 62:51:34.65 Degrees, minutes and seconds to two places of decimals
H 4 Integer hours
H.2 4.19 Hours to two places of decimals
HM 4:11 Hours and integer minutes
HM.2 4:11.44 Hours and minutes to two places of decimals
HMS 4:11:26 Hours, minutes and integer seconds
HMS.2 4:11:26.31 Hours, minutes and seconds to two places of decimals
BHMS.2 4 11 26.31 Space character as separator
LHMS.2 4h11m26.31s Letter as separator
ZHMS.2 04:11:26.31 Leading zeros
+HMS.2 +4:11:26.31 Signed value
L+ZDM.3 +062d51.577 Letter separator, leading zeros and signed

The examples show how the various specifiers would represent an angle of 1.09710742 radians (or 625134′′65).


Table 21: Examples of sexagesimal format specifiers


Specifier Example Notes



M 3 Integer minutes of arc
M.3 3.227 Minutes of arc to three places of decimals
MS 3:14 Minutes and integer seconds of arc
MS.3 3:13.600 Minutes and seconds of arc to three places of decimals
S 194 Integer seconds of arc
S.3 193.600 Seconds of arc to three places of decimals
MT 0 Integer minutes of time
MT.3 0.215 Minutes of time to three places of decimals
MST 0:13 Minutes and integer seconds of time
MST.3 0:12.907 Minutes and seconds of time to three places of decimals
ST 13 Integer seconds of time
ST.3 12.907 Seconds of time to three places of decimals
BMS 3 14 Space character as separator
LMS 3m14s Letter as separator
ZMS 03:14 Leading zeros
+MS +3:14 Signed value
L+ZMS +03m14s Letter separator, leading zeros and signed

These specifiers might typically be used to represent the great circle distance between neighbouring objects or the angular size of an extended object. There is no reason why they should not be used to represent ‘large’ angles such as celestial coordinates, though the output would look a bit odd. The examples show how the various specifiers would represent an angle of 9.3860x104 radians (or 0313′′66).


Table 22: Examples of angular format specifiers for small angles

The simple angular format specifiers, ‘HOURS’, ‘DEGREES’, ‘ARCMIN’, ‘ARCSEC’, ‘TIMEMIN’ and ‘TIMESEC’ are just synonyms for particular cases of the general specifiers. They are listed, together with the equivalent full specification in Table 23.


Simple Specifier Equivalent Full Specifier Example Notes




HOURS IHMS.1 14:11:26.3 1
DEGREES IDMS 62:51:35 1
ARCMIN M 3 2
ARCSEC S 194 2
TIMEMIN MT 0 2
TIMESEC ST 13 2
ARCMIN.3 M.3 3.227 3
ARCSEC.3 S.3 193.600 3
TIMEMIN.3 MT.3 0.215 3
TIMESEC.3 ST.3 12.907 3

Notes

(1)
The number of decimal places is fixed for these specifiers.
(2)
The number of decimal places has been omitted so integers without any decimal places are assumed.
(3)
Three places of decimals were specified.

The example for the first two specifiers is an angle of 1.09710742 radians; for the remaining specifiers the example is an angle of 9.3860x104 radians.


Table 23: The simple angular format specifiers and their equivalents

23DOUBLE PRECISION is more common in practice because REAL numbers are insufficiently accurate to represent an angle to a precision of a second of arc or better.