This Legacy journal article was published in Volume 4, February 1994, and has not been
updated since publication. Please use the search facility above to find regularly-updated information about
this topic elsewhere on the HEASARC site.
Specification of Physical Units
Ian M. George & Lorella Angelini
OGIP Memo OGIP/93-001 Version: 1993 Aug 06
A list of character strings specifying the basic physical units used within
OGIP FITS files is given. Rules and guidelines on the construction of compound
units are also outlined.
In order to facilitate the use of FITS datasets by downstream s/w and users, it
is clearly highly preferable that a common set of character strings are used
throughout all files and software to specify the physical units in which the
data are stored. This memo lists those currently approved for use within the
OGIP and should be strictly adhered to.
In Section 2 we give a list of character strings specifying the basic physical
units allowed within OGIP FITS files, including guidelines on the use of
decimal multiples and submultiples of units. Section 3 provides a number of
rules and guidelines on the construction of compound units, and a number of
examples are given in Section 4. It should be noted that within the framework
provided here, the ultimate responsibility for choosing sensible and convenient
unit strings lies with authors of FITS datasets.
Any comments or suggestions (especially if you have a requirement for units not
covered by this memo) should be e-mailed to the authors
(email@example.com and/or firstname.lastname@example.org).
2 Basic Units
In line with IAU recommendations, SI units should be adopted for all physical
quantities with the exception of a small number of special units more
convenient for astronomy. The character strings specifying the basic units
allowed for use within the OGIP are listed in Tables 1 and 2, along with the
allowed prefixes for multiples and submultiples listed in Table 3. Note that
all strings are CASE SENSITIVE.
When used as the value of the TUNITnnn keyword in the header of a FITS
extension, it is recommended that the first character of the string is placed
immediately after the opening quote in the value field (i.e. placed in column
12 of the 'card image').
2.1 IAU-recommended Units
Table 1 lists the 7 base SI units regarded as dimensionally independent and 2
supplementary units for plane and solid angles, along with the 15 derived units
(formed by combining base and supplementary units) with unique symbols
recognized by the IAU. All units are given for completeness, though several are
likely to be of little use to X- and
-ray astronomy. It can
that in the majority of cases, the character string is identical to the
IAU-recognized symbol for the quantity. The
only exception is electric resistance (with symbol
, but string
ohm). Finally it should be noted that despite IAU recommendations the
measurement of plane angles in radians may often be considered inconvenient
within astronomy. Thus the use of decimal degrees is also allowed (e.g. Table
2.2 Additional Astronomical Units
Unfortunately, a. number of the IAU-recommended units listed in Table 1 are
somewhat inconvenient for some astronomical applications. Thus the OGIP-recommended strings for such quantities. Again, in most cases the
character string is identical to the IAU-recognized symbol for the quantity.
The only exceptions are:
Finally the 'crab' was commonly used in the early days of X-ray astronomy, and
is represented in Table 2. However this unit (or more commonly the 'millicrab')
should be avoided wherever possible as the conversion to more standard
specifications of flux density is a function of the spectrum of the source
(relative to that of the Crab). Strictly speaking, the same is true regarding
the use of stellar 'magnitudes' (mag).
- degrees of arc (with symbol but string
- angstrom (with symbol Å, but string angstrom so as not to
be confused with ampere, A).
- the character string yr is preferred over the IAU-recognized
symbol (a) since it is the same
as the symbol used for this quantity in most astronomical journals, and
in common usage.
- arcsec & arcmin since the symbols of " and ' may
lead to confusion
2.3 Prefixes for Multiples & Submultiples
The IAU-approved list of prefixes to note decimal multiples and submultiples of
units are listed in Table 3, along with the corresponding character strings. It
can be seen that the character is the same as the IAU-approved symbol for the
prefix with the exception of micro (10-6), which has the
but character u. However, with the exception of centi
(10-2), the OGIP strongly recommends the use of prefixes which
are powers of 3.
Thus strings to specify decimal multiples submultiples of the units given in
Table 1 can be formed by preceding the
listed character string by the relevant prefix character from Table 3. Decimal
multiples submultiples of the units listed in Table 2 should NOT be used, with
the exception of electron volt (eV), jansky (Jy), parsec
(pc), and crab (Crab, for which millicrab, mCrab
ONLY is allowed). Compound prefixes (e.g. ZYerg for
erg) should never be used. The result is regarded as a single unit string when
constructing compound units (see Section 3). It should be noted that the use of
these standard prefixes greatly increases the case sensitivity of the resultant
3.1 Basic Syntax
A compound unit is considered to be formed by a series of sub-strings of
component units & mathematical operations. Each of these sub-strings
must be separated by at least one space or a mathematical operator (* or
/). In line with the rules given below, all such sub-strings should be
considered in a multiplicative sense unless beginning with a slash (/), or
enclosed within one or more pairs of brackets.
Multiplicative units can be specified either:
- by simply using one or more preceding spaces
e.g. 'str1 str2'
(The recommended method)
- by the use of a single asterix (*) with or without one or more spaces on
e.g. 'str1 * str2'
(This syntax should never be used preceding a sub-string which starts with a
slash - see Section 3.1.2).
Units which form the denominator of a compound expression can be specified
It should be stressed that the slash character only effects the sub-string it
immediately precedes. Thus unless brackets are used, subsequent sub-strings
which also form part of the denominator of the compound expression must also be
preceded by a slash.
- by using a slash (/) with or without one or more spaces on either side
e.g. 'str1 /str2' or 'str1 / str2' or
If such a syntax is used, it is recommended that no space is included between
the slash and the unit string.
- by raising a multiplicative unit to a negative power (see below)
e.g. 'str1 /str2 str3' is equivalent to 'str1 str3 /str2'
whilst 'str1 /str2 /str3' is equivalent to 'str1 /(str2 *
3.1.3 Raising to Powers
A unit string raised to the power y is specified
However, if y is positive, then the brackets need not be included, but
a following space is recommended if additional sub-strings follow.
- by using two asterixes (**) followed by the index enclosed within round
brackets and with no preceding or intervening spaces.
e.g. 'str1**(y)' or 'str1**(-y)'
3.1.4 The use of brackets
Any number of pairs of round brackets () may be used within the string for a
compound unit in order to prevent ambiguities. As described within this
section, a number of rules always/often require their use. However, it is
suggested that conservative use is made of such pairs of brackets in order to
minimize the total length of compound strings. (It should be remembered that a
maximum of 68 characters are allowed in the card image of keywords.)
3.2 Avoidance of underflows & overflows
The inclusion of numerical factors within the unit string should generally be
avoided (by the use of multiples and/or submultiples of component basic units;
However, occasionally it may be preferable to include such factors on the
grounds of user-friendliness and/or to minimize the risk of computer under- or
overflows. In such cases, the numerical factor can simply be considered a basic
unit string and all rules guidelines given in Section 2 apply.
It should be remembered, however, that the use of numerical (scaling) factors
within the unit string can result in additional overheads in the
parsing/interpretation of the string if the string is used for any purpose
other than as a 'label'. The inclusion of numerical factors should therefore be
avoided wherever possible, and should never replace the use of the TSCALnnn
The following additional guidelines are suggested:
- the numerical factor should precede any unit strings
- only powers of 10 are used as numerical factors
A prime example is astronomical luminosities, and examples of this case along
with a number of more complex examples is given in Section 4.
3.3 Mathematical Operations & Functions
The character strings denoting mathematical operations are listed in Table 4.
It should be noted that the (round) brackets are mandatory in all cases in
which they are included in the table (with the exception of raising units to
positive powers -- see Section 3.1.3).
For illustration, example strings representing a number of compound units are
given below, along with a limited number of alternatives. It should be noted
that within the rules given in Section 3, the number of spaces between
individual unit sub-strings is left a matter for personal preference.
1. STRING = 'count /s' (recommended)
Meaning: counts per second
STRING = 'count/s'
STRING = 'count s**(-1)'
STRING = 'count / s'
STRING count /s (discouraged)
2. STRING = '/pixel /s' (recommended)
Meaning: per pixel per second
STRING = '/(pixel * s)'
3. STRING = 'count /m**2 /s /eV' (recommended)
Meaning: counts per square metre per second per electron volt
STRING = 'count m**(-2) * s**(-1) * eV**(-1)'
STRING = 'count /(m**2 * s * eV)'
4. STRING = 'erg /pixel /s /GHz' (recommended)
Meaning: ergs per pixel per second per gigahertz
STRING = 'erg /s /GHz /pixel'
STRING = 'erg /pixel /(s * GHz)' (discouraged)
5. STRING = 'keV**2 /yr /angstrom' (recommended)
Meaning: square kiloelectron volts per year per angstrom
STRING = '10**(10) keV**2 /yr /m' (discouraged)
STRING = '(10**2 MeV)**2 /yr /m' (strongly discouraged)
6. STRING = '10**(46) erg /s' (user-friendly)
Meaning: 1046 ergs per second
STRING = '10**46 erg /s'
STRING = '10**(39) J /s'
STRING = '10**(39) W' (recommended)
STRING = '10**(15) YW'
STRING = 'YJ /fs' (for the purist)
7. STRING = '10**(-7) J /cm**2 /MeV'
Meaning: 1O-7 joules per square centimetre per megahertz
STRING = '10**(-9) J m**(-2) eV**(-1)'
STRING = 'nJ m**(-2) eV**(-1)'
STRING = 'nJ /m**2 /eV' (recommended)
8. STRING = 'sqrt(erg /pixel /s /GHz) (recommended)
Meaning: The square root of Example 4
STRING = '(erg /pixel /s /GHz)**(O.5)'
STRING = '(erg /pixel /s /GHz)**(1/2)' (discouraged)
STRING = 'erg**(0.5) pixel**(-0.5) s**(-0.5) GHz**(-O.5)' (discouraged)
9. STRING = 'log(photon /m**2 /s /Hz) (recommended)
Meaning: The common log of a photon flux density
STRING = 'log( photon /m**2 /s /Hz )'
(and those associated with the unit substrings)
10. STRING = 'sin( /pixel /s)' (recommended)
Meaning: The sine of Example 2
None (except those associated with the individual unit sub-strings)
11. STRING = '(count /s) (/pixel /s)'
Meaning: Example 1 multiplied by Example 2
STRING = '(count /s) * (/pixel /s)'
STRING = 'count /pixel /s**2' (recommended)
12. STRING = 'log(photon /cm**2 /s /Hz) /(sin( /pixel /s))' (recommended)
Meaning: Example 9 divided by Example 10
STRING = 'log(photon /cm**2 /s /Hz) (sin( /pixel /s) )**(-1)'(discouraged)
We would like to thank the numerous people who have contributed valuable
comments to the various drafts of this memo, and in particular Don Wells, Clive
Page, Bill Pence & Jonathan McDowell.
Proceed to the next article
Return to the previous article
Select another article
HEASARC Home |
Last modified: Monday, 19-Jun-2006 11:40:52 EDT