Next: Creating new structures
Up: Starlink Standard Data Structures
Previous: Simplified NDF Structure
Comparison with Wright-Giddings proposals
The term ``structure'' in the Wright-Giddings (WG) proposals meant
a collection of related data objects, so that one level of the hierarchy
could contain more than one ``structure'', e.g. GLOBAL and
[DATA_ARRAY].
Of the GLOBAL structure only [TITLE] has been copied into the
NDF
structure.
Table:
Comparison of
NDF
and the Wright-Giddings ``DATA_ARRAY
structure''
| Wright-Giddings |
NDF name |
Comments |
| |
[TITLE] |
same name in WG GLOBAL |
| |
[VARIANT] |
no counterpart in WG |
| [DATA_ARRAY] |
[DATA_ARRAY] |
unchanged in name or meaning |
| [DATA_MIN] |
|
no counterpart in NDF |
| [DATA_MAX] |
|
no counterpart in NDF |
| [DATA_BLANK] |
|
no counterpart in NDF |
| [DATA_SCALE] |
|
[SCALE] in scaled narray |
| [DATA_ZERO] |
|
[ZERO] in scaled narray |
| [DATA_LABEL] |
[LABEL] |
unchanged in meaning |
| [DATA_UNITS] |
[UNITS] |
unchanged in meaning |
| [DATA_QUALITY] |
[QUALITY] |
unchanged in meaning |
| |
[BAD_PIXEL] |
no counterpart in WG |
| [DATA_ERROR] |
[VARIANCE] |
variance rather than  |
| [AXIS_CALIB] |
|
no counterpart in NDF |
[AXIS n _DATA] |
[AXIS( n ).DATA_ARRAY] |
[DATA_ARRAY] for consistency |
[AXIS n _UNITS] |
[AXIS( n ).UNITS] |
unchanged in meaning |
[AXIS n _LABEL] |
[AXIS( n ).LABEL] |
unchanged in meaning |
[AXIS n _ERROR] |
[AXIS( n ).VARIANCE] |
variance rather than  |
[AXIS n _CALIB] |
|
no counterpart in NDF |
| |
[HISTORY] |
no counterpart in WG |
| |
[MORE] |
no counterpart though it can |
| |
|
store WG GLOBAL objects |
WG components no longer used in
NDF
:
- [DATA_MIN], [DATA_MAX]
- Following the precept of making
life easier for
applications programmers forces their exclusion. Principally they are
used for scaling for display, yet they often fail to produce the desired
result, especially for data with a wide dynamic range (as is often
found in astronomy), because the extrema only give information about
two pixels and are therefore unrepresentative. What often happens is that
the display process is repeated several times (albeit more efficiently
if [DATA_MIN] and [DATA_MAX] are stored), each time
guessing the correct range more accurately. Even in those cases where
the maximum and minimum provide a good scaling, their computation accounts
for only about 20 per cent of the total time taken by the display
process.
A more-sophisticated approach at the outset pays off because the data
need only be displayed once. The most successful methods are related to
the distribution of pixel values. Histogram equalisation, central
per cent, or minus
to plus
standard deviations all work well.
Although there might be some hope that a min-max system could work if all
algorithmic access to the datasets were through Starlink-supplied
routines, it is inevitable that some programmers/users would forget
to call the subroutines or fail to realise that their application may
have affected the extrema.
- [DATA_BLANK]
- This has been superseded by
system-defined magic values,
available to applications.
- [DATA_LABEL], [DATA_UNITS] and [DATA_QUALITY]
- These
have changed to allow
standard subroutines to work on different labels, units and quality,
e.g. in
AXIS
, and not be tied into a naming scheme,
e.g. [AXIS_LABEL].
The interpretation of [DATA_QUALITY] has also changed for general-purpose
applications.
- [DATA_ERROR]
- This has changed as for [DATA_LABEL]
etc., but also because the interpretation has changed to variance.
- [AXIS_CALIB] and [AXIS
n
_CALIB]
- These are too specialised and the
processing rules are unknown for general-purpose applications.
Calibration data should be situated in [MORE] within an extension, perhaps
which shadows the main [AXIS] structures.
Next: Creating new structures
Up: Starlink Standard Data Structures
Previous: Simplified NDF Structure
Starlink Standard Data Structures
Starlink General Paper 38
Malcolm J Currie, P T Wallace &
R F Warren-Smith
1989 January 20
E-mail:ussc@star.rl.ac.uk
Copyright © 2008 Science and Technology Facilities Council