Next: COMPLEX_ARRAY Structure
Up: ARRAYStructure
Previous: [VARIANT] = `SPARSE'
The array is represented by an
-dimensional
polynomial.
(This variant does not conform to the
guideline about variants since conversion of an array of numbers to a
polynomial requires additional information. However, for clarity and
because the reverse operation is possible--polynomial to an array of
numbers--a variant of
ARRAY
has been used.)
Table:
Components of
ARRAY
Structure, [VARIANT] = `POLYNOMIAL'
| Component Name |
TYPE |
Brief Description |
| [VARIANT] |
_CHAR |
`POLYNOMIAL' |
| [ORIGIN(NAXIS)] |
integer |
origin of the data array |
| [DATA] |
POLYNOMIAL |
polynomial representing array |
| [DIMENSIONS(NAXIS)] |
integer |
dimension of equivalent |
| |
|
numeric array |
- NAXIS
- The number of axes in the array being represented.
- [ORIGIN]
- The pixel origin in each dimension. If this object is not present,
each origin is assumed to be 1. This avoids recomputing the
polynomial coefficients if a subsection of a larger array is created.
- [DATA]
- The NAXIS-dimensional polynomial representing the array of numbers.
Mandatory. The equivalent primitive type has the same TYPE as
the polynomial coefficients. To generate the equivalent primitive
array, the polynomial is evaluated at pixel centres, which start
at 0.5 for the first pixel given a uniform bin.
- [DIMENSIONS]
- This array contains the axis dimensions of the full data array.
It is used to generate the equivalent
narray
.
Mandatory.
The `SPACED' variant may appear merely
to be a degenerate form of the `POLYNOMIAL' variant. However, there are reasons for
having a `SPACED' variant:
- the case where the equivalent primitive type is
integer
is common, whereas the polynomial variant only produces
float
results.
- The spaced
ARRAY
uses the pixel indices
to generate the values, whereas a
polynomial array uses the pixel co-ordinates. Pixel
indices are integers, starting at 1; pixel
co-ordinates are real numbers, which start at 0.5
for uniformly-sized bins.
- The spaced
ARRAY
format will be easier to understand
in a structure listing.
To reiterate, general-purpose applications will be able to process
ARRAY
structures, though their performance will be
degraded when the [VARIANT] is not `SIMPLE' because of
the extra processing required. These options do not create a significant
overhead for the normal case, the base variant.
When the [VARIANT] is not `SIMPLE',
users will probably be warned that their data are in a special format,
be given the option to abort the application, and be directed to
documentation for applications better suited to the data.
Next: COMPLEX_ARRAY Structure
Up: ARRAYStructure
Previous: [VARIANT] = `SPARSE'
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