Standards for Astronomical Catalogues, Version 2.0 (pdf)
(February 2000)
3.4 Optional Ranges and Data Checking specifications
The first word (i.e. set of characters followed by a blank)
of the explanation of a column
may specify validity checks to be performed about:
- the available range of the value in the column
- the possibility of having unspecified or NULL
values
- the order of the values within the table
(increasing or decreasing order)
The three different checks have to be specified in this order:
range, NULL, order, without any embedded blank.
All these checks are performed by the standalone program anafile
detailed in anafile web page.
3.4.1 Limits
Limits in a column can be specified in the explanation column,
with values enclosed within square brackets [ or ]; the square bracket must be the first
character of the explanation if present.
The only
exception arises when an asterisk is present before the first square
bracket to indicate the presence of extended notes (see Notes).
- For an alphabetic column (A-format),
the limits describe the valid character set,
i.e. the list of valid characters in the column. As an example, an
uncertainty column labelled u_lab with an A1 format
may only contain a blank, a question mark or a colon (which is different
from the default shown in section 3.3); this feature can be specified
as follows:
3 A1 --- u_lab [ :?] Uncertainty flag on parameter lab
The dash sign (-) may be used to specify consecutive characters,
e.g. [A-F] for any character of the set {A,B,C,D,E,F}.
- For a numeric column, the limits can be specified with two
numbers separated by a comma or slash and enclosed in square brackets.
The inclusion or non-inclusion of the limits as acceptable values
follow the standard mathematical conventions,
i.e. an opening ] bracket means that the lower value is excluded,
a closing ] bracket that the upper value is included.
As an example, the following specifies a parameter
350 < λ< 650 :
75- 80 F6.2 nm lambda ]350,650[ Wavelength
Both limits are not required: to express that a value has to be strictly
positive, use the expression ]0,]; the expression
[,0] specifies a negative or null value.
Writing [] is acceptable
when no range checking applies; this writing is required
if a not-NULL or a sorting order has to be specified.
When specified, limiting numbers should represent actual limits,
and not the
range of all possible values which can be inferred from the format
(e.g. [-999,9999] for an I4 number).
Some labels have implicit limits, listed in the column Limits
of the tables in section 3.3. These defaults
are overridden (for numeric columns only) by the
limits specified within square brackets in the description file :
writing e.g.[] as the first word of the explanation of a column
labelled GLON removes the condition
0 <=GLON < 360.
3.4.2 NULL values
A NULL or unspecified value is always indicated by setting
all bytes of the column to blanks(Alternative: using out-of-range values to specify NULLs
— typically numbers made of 9's only —
is required by some FORTRAN users.
).
The range or character set specification may be followed by the characters
- [!] (exclamation mark) indicates that a NULL value
is forbidden (i.e.the column can never be blank)
- [?] (question mark) indicates that a NULL value
is allowed (i.e.the column may be blank).
- When the ? is followed by the = sign and a numeric value
without intervening space, the value is the alternative NULL
value and is equivalent to the FITS TABLES extension TNULL keyword,
e.g. ?=99.99
- ?=- indicates than NULL values are specified with a list of '-'
The default rule is the following:
- NULL value is allowed for an alphabetic column
(A-format);
- NULL value is not allowed for a numeric column
3.4.3 Order
Following the range, it is also possible to specify that this column
is increasing or decreasing throughout the table. If n is the
row number, the conventions are:
+ | the value in the column is strictly increasing, |
val(n+1) > val(n) |
+= | the value in the column is increasing: |
val(n+1) >=val(n) |
– | the value in the column is strictly decreasing: |
val(n+1) < val(n) |
–= | the value in the column is decreasing: |
val(n+1) <=val(n) |
©UDS/CNRS
Contact: