Compresses an NDF so that it occupies less disk space
Two compression methods are available: SCALE or DELTA (see Parameter METHOD).
!
)
value is supplied for DSCALE or DZERO, default values will be used for both that cause
the scaled data values to occupy 96% of the available range of the data type selected
using Parameter SCALEDTYPE. [!]
!
) value is
supplied for DSCALE or DZERO, default values will be used for both that cause
the scaled data values to occupy 96% of the available range of the data type
selected using Parameter SCALEDTYPE. [!]
"BOTH"
–- A lossy compression scheme for all data types. It first creates an
intermediate NDF from the supplied NDF using "SCALED"
compression and then creates the
final ouput NDF by applying "DELTA"
compression to the intermediate NDF. The
intermediate NDF is then deleted.
"SCALED"
–- A lossy compression scheme for all data types. See “Scaled Compression”
below, and Parameters DSCALE, DZERO, VSCALE, VZERO, and SCALEDTYPE.
"DELTA"
–- A lossless compression scheme for integer data types. See “Delta
Compression” below, and Parameters ZAXIS, ZMINRATIO, and ZTYPE.
"DELTA"
. []
"SCALED"
. It can be one of the following
options.
"_INTEGER"
–- four-byte signed integers
"_WORD"
–- two-byte signed integers
"_UWORD"
–- two-byte unsigned integers
"_BYTE"
–- one-byte signed integers
"_UBYTE"
–- one-byte unsigned integers
The same data type is used for both DATA and (if required) VARIANCE components of the
output NDF. The initial default value is "_WORD"
. [
current value]
!
) value is supplied for VSCALE or VZERO,
default values will be used for both that cause the scaled variance values to
occupy 96% of the available range of the data type selected using Parameter
SCALEDTYPE. [!]
!
) value
is supplied for VSCALE or VZERO, default values will be used for both that
cause the scaled variance values to occupy 96% of the available range of the
data type selected using Parameter SCALEDTYPE. [!]
"DELTA"
. If this is zero, a default value will be
selected that gives the greatest compression. [0]
"DELTA"
. If compressing an array results in a compression ratio smaller than or
equal to ZMINRATIO, then the array is left uncompressed in the new NDF. If
the supplied value is zero or negative, then each array will be compressed
regardless of the compression ratio. [1.0]
"DELTA"
. Must be one of _INTEGER,
_WORD, _BYTE or blank. If a null (!
) value or blank value is supplied, the data
type that gives the best compression is determined and used. [!]
Further compression is achieved by replacing runs of equal input values by a single occurrence of the value with a corresponding repetition count.
It should be noted that the degree of compression achieved is dependent on the nature of the data, and it is possible for a compressed array to occupy more space than the uncompressed array. The mean compression factor actually achieved is displayed (the ratio of the supplied NDF size to the compressed NDF size).
It is possible to delta compress an NDF that has already been scale compressed. This provides a means of further compressing floating-point arrays. However, note that the default values supplied for DSCALE, DZERO, VSCALE, and VZERO may not be appropriate as they are chosen to maximise the spread of the scaled integer values in order to minimise the integer truncation error, but delta compression works best on arrays of integers in which the spread of values is small.
If the input NDF is already DELTA compressed, it will be uncompressed and then recompressed using the supplied parameter values.
More details of delta compression can be found in SUN/11 (ARY - A Subroutine Library for Accessing ARRAY Data Structures), subsection Delta Compressed Array Form.