diff options
Diffstat (limited to 'noao/imred/quadred/src/quad/quadgeom.h')
-rw-r--r-- | noao/imred/quadred/src/quad/quadgeom.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/noao/imred/quadred/src/quad/quadgeom.h b/noao/imred/quadred/src/quad/quadgeom.h new file mode 100644 index 00000000..090b4bf2 --- /dev/null +++ b/noao/imred/quadred/src/quad/quadgeom.h @@ -0,0 +1,99 @@ +# QUADGEOM - Structure definitions and macros for quadgeom structure. + +define QG_LENSTRUCT 28 # Length of structure. +define QG_MAXAMPS 4 # Maximum possible number of readouts. +# The various arrays are dimensioned as QG_MAXAMPS+1. +# QG_AAAA(0) contains quantities refering to the entire image +# QG_AAAA(z) contains quantities refering to the zth sub-image + +define QG_NAMPS Memi[$1] # Total number of active readouts. +define QG_NAMPSX Memi[$1+1] # Number of active readouts in X. +define QG_NAMPSY Memi[$1+2] # Number of active readouts in Y. + +# Array of pointers to names of active readouts. +define QG_AMPIDPTR Memi[$1+3] # --> ampid array. +define QG_AMPID Memi[QG_AMPIDPTR($1)+$2] # ampid array. + +# Array of pointers to names of active readouts. +define QG_AMPTYPTR Memi[$1+4] # --> amptype array. +define QG_AMPTYPE Memi[QG_AMPTYPTR($1)+$2] # amptype array. + +# Dimensions of image from each readout. +define QG_NXPTR Memi[$1+5] # --> X dimension array. +define QG_NX Memi[QG_NXPTR($1)+$2] # X dimension. +define QG_NYPTR Memi[$1+6] # --> Y dimension array. +define QG_NY Memi[QG_NYPTR($1)+$2] # Y dimension. + +# datasec = "[dx1:dx2,dy1:dy2]" +define QG_DOFF 7 +define QG_DX1PTR Memi[$1+QG_DOFF] # --> dx1 array. +define QG_DX2PTR Memi[$1+QG_DOFF+1] # --> dx2 array. +define QG_DY1PTR Memi[$1+QG_DOFF+2] # --> dy1 array. +define QG_DY2PTR Memi[$1+QG_DOFF+3] # --> dy2 array. +define QG_DX1 Memi[QG_DX1PTR($1)+$2] # dx1. +define QG_DX2 Memi[QG_DX2PTR($1)+$2] # dx2. +define QG_DY1 Memi[QG_DY1PTR($1)+$2] # dy1.. +define QG_DY2 Memi[QG_DY2PTR($1)+$2] # dy2. + +# trimsec = "[tx1:tx2,ty1:ty2]" +define QG_TOFF 11 # QG_DOFF+4. +define QG_TX1PTR Memi[$1+QG_TOFF] # --> tx1 array. +define QG_TX2PTR Memi[$1+QG_TOFF+1] # --> tx2 array. +define QG_TY1PTR Memi[$1+QG_TOFF+2] # --> ty1 array. +define QG_TY2PTR Memi[$1+QG_TOFF+3] # --> ty2 array. +define QG_TX1 Memi[QG_TX1PTR($1)+$2] # tx1. +define QG_TX2 Memi[QG_TX2PTR($1)+$2] # tx2. +define QG_TY1 Memi[QG_TY1PTR($1)+$2] # ty1. +define QG_TY2 Memi[QG_TY2PTR($1)+$2] # ty2. + +# biassec = "[bx1:bx2,by1:by2]" +define QG_BOFF 15 # QG_TOFF+4. +define QG_BX1PTR Memi[$1+QG_BOFF] # --> bx1 array. +define QG_BX2PTR Memi[$1+QG_BOFF+1] # --> bx2 array. +define QG_BY1PTR Memi[$1+QG_BOFF+2] # --> by1 array. +define QG_BY2PTR Memi[$1+QG_BOFF+3] # --> by2 array. +define QG_BX1 Memi[QG_BX1PTR($1)+$2] # bx1. +define QG_BX2 Memi[QG_BX2PTR($1)+$2] # bx2. +define QG_BY1 Memi[QG_BY1PTR($1)+$2] # by1. +define QG_BY2 Memi[QG_BY2PTR($1)+$2] # by2. + +# ccdsec = "[cx1:cx2,cy1:cy2]" +define QG_COFF 19 # QG_BOFF+4. +define QG_CX1PTR Memi[$1+QG_COFF] # --> cx1 array. +define QG_CX2PTR Memi[$1+QG_COFF+1] # --> cx2 array. +define QG_CY1PTR Memi[$1+QG_COFF+2] # --> cy1 array. +define QG_CY2PTR Memi[$1+QG_COFF+3] # --> cy2 array. +define QG_CX1 Memi[QG_CX1PTR($1)+$2] # cx1. +define QG_CX2 Memi[QG_CX2PTR($1)+$2] # cx2. +define QG_CY1 Memi[QG_CY1PTR($1)+$2] # cy1. +define QG_CY2 Memi[QG_CY2PTR($1)+$2] # cy2. + +# ampsec = "[ax1:ax2,ay1:ay2]" +define QG_AOFF 23 # QG_COFF+4. +define QG_AX1PTR Memi[$1+QG_AOFF] # --> ax1 array. +define QG_AX2PTR Memi[$1+QG_AOFF+1] # --> ax2 array. +define QG_AY1PTR Memi[$1+QG_AOFF+2] # --> ay1 array. +define QG_AY2PTR Memi[$1+QG_AOFF+3] # --> ay2 array. +define QG_AX1 Memi[QG_AX1PTR($1)+$2] # ax1. +define QG_AX2 Memi[QG_AX2PTR($1)+$2] # ax2. +define QG_AY1 Memi[QG_AY1PTR($1)+$2] # ay1. +define QG_AY2 Memi[QG_AY2PTR($1)+$2] # ay2. + +# Phantom markers +define QG_PHOFF 27 # QG_AOFF+4 +define QG_PHPTR Memi[$1+QG_PHOFF] # --> Phantom array +define QG_PHANTOM Memi[QG_PHPTR($1)+$2] # Phantom value + +# Macros to convert between array offset and grid position +define QG_GRIDX ($2 - (($2-1)/QG_NAMPSX($1))*QG_NAMPSX($1)) +define QG_GRIDY (($2-1)/QG_NAMPSX($1)+1) +define QG_AMP ($2 + ($3-1) * QG_NAMPSX($1)) + +# Symbolic values for AMPTYPE codes +define AMPDICT "|11|12|21|22|" +define AMP11 1 # BLHC +define AMP12 2 # BRHC +define AMP21 3 # TLHC +define AMP22 4 # TRHC + +define SZ_AMPID 2 |