diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /noao/lib/smw.h | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'noao/lib/smw.h')
-rw-r--r-- | noao/lib/smw.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/noao/lib/smw.h b/noao/lib/smw.h new file mode 100644 index 00000000..7a6c5aa1 --- /dev/null +++ b/noao/lib/smw.h @@ -0,0 +1,164 @@ +# SMW definitions. +# The SMW package (the SMW structure and routines) provide an interface +# between the MWCS and the ONEDSPEC packages. It provides translation +# between different image formats and a standard interface for the spectral +# tasks. The types of formats supported are MULTISPEC, EQUISPEC, and 1-3D +# simple linear WCS as well as some older formats. +# +# The SMW package also provides separating the MULTISPEC MWCS into groups to +# avoid limitations in the number of attributes allowed by MWCS. This is +# primarily required for dispersion correction. + +define SMW_NSPLIT 500 # Number of spectra per WCS + +define SMW_LEN (33 + $1) # Length of SMW structure + +define SMW_FORMAT Memi[$1] # Spectrum format +define SMW_NSPEC Memi[$1+1] # Number of spectra +define SMW_NBANDS Memi[$1+2] # Number of associated bands + +define SMW_TRANS Memi[$1+3] # Transposed image? +define SMW_PDIM Memi[$1+4] # Physical dimension +define SMW_PAXIS Memi[$1+$2+4] # Physical axes [3] + +define SMW_LDIM Memi[$1+8] # Logical dimension +define SMW_LAXIS Memi[$1+$2+8] # Logical axes [3] +define SMW_LLEN Memi[$1+$2+11] # Logical axes lengths [3] +define SMW_NSUM Memi[$1+$2+14] # Logical summing factors [2] + +define SMW_DTYPE Memi[$1+17] # Dispersion type +define SMW_W1 Memd[P2D($1+18)] # Coord of first phys pixel +define SMW_DW Memd[P2D($1+20)] # Coord interval per phys pixel +define SMW_Z Memd[P2D($1+22)] # Doppler factor +define SMW_NW Memi[$1+24] # Number of dispersion pixels +define SMW_APS Memi[$1+25] # Pointer to apertures +define SMW_BEAMS Memi[$1+26] # Pointer to beams +define SMW_APLOW Memi[$1+27] # Pointer to aplows +define SMW_APHIGH Memi[$1+28] # Pointer to aphighs +define SMW_APID Memi[$1+29] # Pointer to default apid +define SMW_APIDS Memi[$1+30] # Pointer to apids + +define SMW_CTLP Memi[$1+31] # CT logical -> physical +define SMW_NMW Memi[$1+32] # Number of MWCS pointers +define SMW_MW Memi[$1+$2+33] # MWCS pointer(s) + +# Spectrum formats +define SMW_FORMATS "|equispec|multispec|" +define SMW_ND 0 # N-dimensional linear WCS +define SMW_ES 1 # Equispec WCS +define SMW_MS 2 # Multispec WCS + +# Coordinate transformation structure. +define SMW_CTLEN (6 + $1) # Length of SMW CT structure + +define SMW_SMW Memi[$1] # SMW pointer +define SMW_CTTYPE Memi[$1+1] # Transformation type +define SMW_DAXIS Memi[$1+2] # Dispersion axis +define SMW_AAXIS Memi[$1+3] # Aperture axis +define SMW_CTL Memi[$1+4] # Logical/physical pointer +define SMW_NCT Memi[$1+5] # Number of CT pointers +define SMW_CT Memi[$1+$2+6] # Physical/world pointer + +# Transformation types +define SMW_CTTYPES "|logical|physical|" +define SMW_WL 12 # World to logical +define SMW_WP 13 # World to physical +define SMW_LW 21 # Logical to world +define SMW_LP 23 # Logical to physical +define SMW_PW 31 # Physical to world +define SMW_PL 32 # Physical to logical + + +# SHDR - Spectrum header data structure + +define LEN_SHDR 380 +define LEN_SHDRS 79 # Length of strings + +define IMNAME Memc[P2C($1)] # Spectrum image name +define IMSEC Memc[P2C($1+40)] # Spectrum image section +define TITLE Memc[P2C($1+80)] # Title +define LABEL Memc[P2C($1+120)] # Dispersion label +define UNITS Memc[P2C($1+160)] # Dispersion units +define FLABEL Memc[P2C($1+200)] # Flux label +define FUNITS Memc[P2C($1+240)] # Flux units +define IM Memi[$1+280] # IMIO pointer +define MW Memi[$1+281] # SMW pointer +define CTLW Memi[$1+282] # SMW logical -> world +define CTWL Memi[$1+283] # SMW world -> logical +define CTLW1 Memi[$1+284] # SMW logical -> world +define CTWL1 Memi[$1+285] # SMW world -> logical +define UN Memi[$1+286] # UNITS pointer for SX +define MWUN Memi[$1+287] # UNITS pointer of SMW +define FUN Memi[$1+288] # Flux units pointer +define FUNIM Memi[$1+289] # Flux units pointer for image +define LINDEX Memi[$1+$2+289] # Logical image index [2] +define PINDEX Memi[$1+$2+291] # Physical image index [2] +define APINDEX Memi[$1+294] # Aperture index + +define AP Memi[$1+295] # Aperture ID +define APLOW Memr[P2R($1+296)+$2-1] # Aperture lower limit [2] +define APHIGH Memr[P2R($1+298)+$2-1] # Aperture upper limit [2] +define BEAM Memi[$1+300] # Beam ID +define OFLAG Memi[$1+301] # Spectrum object type flag +define IT Memr[P2R($1+302)] # Integ. time +define RA Memr[P2R($1+303)] # Right ascension +define DEC Memr[P2R($1+304)] # Declination +define UT Memr[P2R($1+305)] # Universal time +define ST Memr[P2R($1+306)] # Siderial time +define HA Memr[P2R($1+307)] # Hour angle +define AM Memr[P2R($1+308)] # Airmass +define W0 Memr[P2R($1+309)] # Starting wavelength +define W1 Memr[P2R($1+310)] # Ending wavelength +define WP Memr[P2R($1+311)] # Wavelength increment per pixel +define DC Memi[$1+312] # Dispersion correction +define EC Memi[$1+313] # Extinction correction +define FC Memi[$1+314] # Flux calibration +define RC Memc[P2C($1+315)] # Reddening correction + +define NP1 Memi[$1+355] # First logical pixel +define NP2 Memi[$1+356] # Last logical pixel +define SN Memi[$1+357] # Number of pixels +define SPEC Memi[$1+$2+357] # Pointers to spectra +define SID Memi[$1+$2+364] # Pointers to spectra ID strings +define STYPE Memi[$1+$2+371] # Spectrum type + +# Spectrum types and access modes. + +define STYPES "|coordinates|spectrum|raw|background|sigma|continuum|" + +define SH_NTYPES 6 # Number of spectrum types +define SHHDR 0 # Get header only +define SHX 1 # Get coordinates +define SHDATA 2 # Get spectrum +define SHRAW 3 # Get raw spectrum +define SHSKY 4 # Get sky +define SHSIG 5 # Get sigma +define SHCONT 6 # Get continuum + +# Shorthand for pointers to spectra. +define SX SPEC($1,SHX) # Spectrum coordinates +define SY SPEC($1,SHDATA) # Spectrum pointer +define SR SPEC($1,SHRAW) # Raw spectrum pointer +define SS SPEC($1,SHSKY) # Sky pointer +define SE SPEC($1,SHSIG) # Sigma pointer +define SC SPEC($1,SHCONT) # Continuum pointer + +# Object flag values +define SKY 0 +define OBJECT 1 +define ARC 2 +define FLAT 3 + +# Dispersion correction +define DCNO -1 +define DCLINEAR 0 +define DCLOG 1 +define DCFUNC 2 + +# Extinction correction +define ECNO -1 +define ECYES 0 + +# Flux calibration +define FCNO -1 +define FCYES 0 |