This information may be communicated to access routines via the upper and lower bounds on each array dimension, so that the Fortran dimensions would be
ARRAY(ORIGIN(1):DIMS(1)+ORIGIN(1)-1, ORIGIN(2):DIMS(2)+ORIGIN(2)-1, ...).
[ORIGIN] overcomes a number of quite serious problems,
including the old chestnut ``does the first pixel start at (1,1) or
(0,0)?'', because the origin is specified explicitly. Also negative
pixel indices become available, and therefore an application is freed
from having every array co-located at the first pixel, and it may extend
arrays in any direction. This property is particularly useful for
storing data which require negative indices for a natural
representation, such as Fourier-transform data, where zero often needs to
be in the centre of the array; or image data after (say) rotation about
any point. Storing a pixel origin also enable applications to cut out parts
of a data array yet maintain the array's coordinate system (it can be
re-combined with the original if necessary). Since the coordinate
system is preserved, all the axis scaling is also preserved. This means,
for instance, that applications do not have to re-compute the polynomial
coefficients in an
AXIS
structure when the array size is
changed.
Starlink Standard Data Structures