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:

  1. the available range of the value in the column
  2. the possibility of having unspecified or NULL values
  3. 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).

  1. 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}.

  2. 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

The default rule is the following:

  1. NULL value is allowed for an alphabetic column (A-format);
  2. 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)

/srv/httpd/Pages/doc/catstd-3.4.htx