The DEFINE IMAGE command allows SIC to access not only to the content of an image (the data value), but also to all its associated parameters; DEFINE HEADER allows access only to these associated parameters. The header variables have names derived from the generic name by adding the special character % and an extension (such as e.g. NDIM for the number of dimensions) to the generic header name. For example, command DEFINE HEADER VAR file.gdf READ also creates the following variables:
VAR%GENE Integer Length of general section
VAR%NDIM Integer Number of dimensions (ReadOnly)
VAR%DIM Integer[7] Dimensions (ReadOnly)
VAR%CONVERT Double[3,7] Conversion formulae for the 7 axes:
Reference pixel,
Value at reference pixel,
Increment
VAR%BLAN Integer Length of blanking section
VAR%BLANK Real[2] Blanking and tolerance
VAR%EXTREMA Integer Length of extrema section
VAR%MAX Real Maximum
VAR%MIN Real Minimum
VAR%MINLOC Integer[7] Position of min value
VAR%MAXLOC Integer[7] Position of max value
VAR%DESC Integer Length of units and system section
VAR%UNIT Char*12 Image unit
VAR%UNIT1 Char*12 First axis type
VAR%UNIT2 Char*12 Second axis type
VAR%UNIT3 Char*12 Third axis type
VAR%UNIT4 Char*12 Fourth axis type
VAR%SYSTEM Char*12 Coordinate system
VAR%POSI Integer Length of position section
VAR%SOURCE Char*12 Source name
VAR%RA Double Right Ascension
VAR%DEC Double Declination
VAR%LII Double Galactic longitude
VAR%BII Double Galactic latitude
VAR%EPOCH Real Epoch of coordinates
VAR%PROJ Integer Length of projection section
VAR%PTYPE Integer Projection type (code)
VAR%A0 Double first coordinate of projection center
VAR%D0 Double second coordinate of projection center
VAR%ANGLE Double position angle of projection
VAR%X_AXIS Integer First projected axis
VAR%Y_AXIS Integer Second projected axis
VAR%SPEC Integer Length of spectroscopy section
VAR%LINE Char*12 Line name
VAR%FREQRES Double Frequency resolution
VAR%FREQOFF Double Frequency offset
VAR%RESTFRE Double Rest Frequency
VAR%VELRES Real Velocity resolution
VAR%VELOFF Real Velocity offset
VAR%F_AXIS Integer Frequency/Velocity axis
VAR%BEAM Integer Length of beam section
VAR%MAJOR Real Major axis of beam
VAR%MINOR Real Minor axis of beam
VAR%PA Real Position angle of beam
VAR%SIGMA Integer Noise section length
VAR%NOISE Real Theoretical noise
VAR%RMS Real Actual noise
VAR%PROPER Integer Proper motion section length
VAR%MU Real[2] along RA and DEC, in mas/yr
VAR%PARALLAX Real Parallax in mas
In addition, the following variables are also created when accessing
GILDAS UV Tables through the DEFINE UVTABLE command:
VAR%NCHAN Integer Number of channels
VAR%NVISI Integer Number of visibilities
VAR%NSTOKES Integer Number of Stokes parameters
VAR%NATOM Integer Complex visibility size
VAR%BASEMIN Real Minimum baseline
VAR%BASEMAX Real Maximum baseline
VAR becomes a dummy variable of type header, which can only be
referenced in a further DELETE /VARIABLE command. The VAR%item variables are ReadOnly or ReadWrite according to the
keyword following the filename, except for the dimension variables
(VAR%DIM and VAR%NDIM), which cannot be modified.
Full headers can be copied to one another, using the command
LET A% = B%
which copies the header of image B into that of image A (dimensions
are not modified, however). Thus a full copy of a 4 dimensions
GILDAS data file can be obtained within SIC as follows:
DEFINE IMAGE A Oldfile.gdf READ
DEFINE INTEGER N1 N2 N3 N4
LET N1 A%DIM[1]
LET N2 A%DIM[2]
LET N3 A%DIM[3]
LET N4 A%DIM[4]
DEFINE IMAGE B[N1,N2,N3,N4] Newfile.gdf REAL
LET B A ! Copy A data into B
LET B% A% ! Copy A header into B header
DELETE /VARIABLE B ! Deletes the SIC variables, but not the file...
A simpler (and more generic) way to declare new images is to use the size casting provided by the /LIKE option:
DEFINE IMAGE A Oldfile.gdf READ
DEFINE IMAGE B Newfile.gdf REAL /LIKE A ! Define B like A...
LET B A ! Copy A data into B
LET B% A% ! Copy A header into B header
DELETE /VARIABLE B ! Deletes the SIC variables, but not the file...