### B Storing and representing columns of angles

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.

• The data type must be DOUBLE PRECISION or REAL,23
• The units attribute of the column should be set to ‘RADIANS’ followed by an angular format specifier enclosed in curly brackets (‘{}’). The simplest forms of this angular format specifier are simply ‘HOURS’ and ‘DEGREES’ for hours and degrees respectively. Thus, examples of the UNITS attribute are:
RADIANS{HOURS}
to display the column in hours,
RADIANS{DEGREES}
to display the column in degrees.

The angular format specifiers are described in full in the following section.

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

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:

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.

• If neither I, B nor L is specified then I is assumed.
• If + is omitted then positive angles are not preceded by a ‘$+$’ sign.
• If Z is omitted then leading zeros are omitted in the primary units (hours, degrees, minutes or seconds), but leading zeros are always included in any sexagesimal subdivisions.
• If none of H, D, M or S are specified then D is assumed (that is, the default units are degrees).
• If H or D are present but M is omitted then the hours or degrees are not subdivided into minutes.
• If M is present but S is omitted then the minutes are not subdivided into seconds.
• If S is present in addition to H or D but M is absent then S is ignored (this case is technically illegal).
• If .n is omitted then the least significant unit (seconds, minutes, degrees or hours, as appropriate) is displayed as a whole number, without any places of decimals.

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 $62\circ \phantom{\rule{0.3em}{0ex}}5{1}^{\prime }\phantom{\rule{0.3em}{0ex}}34\text{′′}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.3860x10${}^{-4}$ radians (or $0\circ \phantom{\rule{0.3em}{0ex}}{3}^{\prime }\phantom{\rule{0.3em}{0ex}}13\text{′′}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.3860x10${}^{-4}$ 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.