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 masIn 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 baselineVAR 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...