IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 41705 for trunk


Ignore:
Timestamp:
Jul 8, 2021, 9:47:22 AM (5 years ago)
Author:
eugene
Message:

reintegrate changes from tag ipp-ps1-20210510

Location:
trunk
Files:
46 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/Ohana

  • trunk/Ohana/src/getstar

    • Property svn:mergeinfo deleted
  • trunk/Ohana/src/relphot

  • trunk/extsrc/gpcsw/gpcsrc/fits/libfh/fh_registry.asm

    r23490 r41705  
    1 DETCOM_SIMPLE MACRO ARG
    2     COBJ "detcom:dheader 0.0 SIMPLE \"\ARG\" \"Standard FITS\""
    3     ENDM
    4 DETCOM_XTENSION MACRO ARG
    5     COBJ "detcom:dheader 0.0 XTENSION \"\ARG\" \"\""
    6     ENDM
    7 DETCOM_BITPIX MACRO ARG
    8     COBJ "detcom:dheader 1.0 BITPIX \"\ARG\" \"Bits per pixel\""
    9     ENDM
    10 DETCOM_NAXIS MACRO ARG
    11     COBJ "detcom:dheader 2.0 NAXIS \"\ARG\" \"Number of axes\""
    12     ENDM
    13 DETCOM_NAXIS1 MACRO ARG
    14     COBJ "detcom:dheader 2.1 NAXIS1 \"\ARG\" \"Number of pixel columns\""
    15     ENDM
    16 DETCOM_NAXIS2 MACRO ARG
    17     COBJ "detcom:dheader 2.2 NAXIS2 \"\ARG\" \"Number of pixel rows\""
    18     ENDM
    19 DETCOM_NAXIS3 MACRO ARG
    20     COBJ "detcom:dheader 2.3 NAXIS3 \"\ARG\" \"Number of stacked frames (cube)\""
    21     ENDM
    22 DETCOM_EXTEND MACRO ARG
    23     COBJ "detcom:dheader 3.0 EXTEND \"\ARG\" \"File contains extensions\""
    24     ENDM
    25 DETCOM_NEXTEND MACRO ARG
    26     COBJ "detcom:dheader 3.1 NEXTEND \"\ARG\" \"Number of extensions\""
    27     ENDM
    28 DETCOM_GROUPS MACRO ARG
    29     COBJ "detcom:dheader 4.0 GROUPS \"\ARG\" \"File contains random groups records\""
    30     ENDM
    31 DETCOM_PCOUNT MACRO ARG
    32     COBJ "detcom:dheader 5.0 PCOUNT \"\ARG\" \"Random parameters before each array in a group\""
    33     ENDM
    34 DETCOM_GCOUNT MACRO ARG
    35     COBJ "detcom:dheader 6.0 GCOUNT \"\ARG\" \"Number of random groups\""
    36     ENDM
    37 DETCOM_TFIELDS MACRO ARG
    38     COBJ "detcom:dheader 7.0000 TFIELDS \"\ARG\" \"Number of fields in a row\""
    39     ENDM
    40 DETCOM_TFORM1 MACRO ARG
    41     COBJ "detcom:dheader 7.0011 TFORM1 \"\ARG\" \"Table format for field 1\""
    42     ENDM
    43 DETCOM_TBCOL1 MACRO ARG
    44     COBJ "detcom:dheader 7.0012 TBCOL1 \"\ARG\" \"Start Column for field 1\""
    45     ENDM
    46 DETCOM_TFORM2 MACRO ARG
    47     COBJ "detcom:dheader 7.0021 TFORM2 \"\ARG\" \"Table format for field 2\""
    48     ENDM
    49 DETCOM_TBCOL2 MACRO ARG
    50     COBJ "detcom:dheader 7.0022 TBCOL2 \"\ARG\" \"Start Column for field 2\""
    51     ENDM
    52 DETCOM_TFORM3 MACRO ARG
    53     COBJ "detcom:dheader 7.0031 TFORM3 \"\ARG\" \"Table format for field 3\""
    54     ENDM
    55 DETCOM_TBCOL3 MACRO ARG
    56     COBJ "detcom:dheader 7.0032 TBCOL3 \"\ARG\" \"Start Column for field 3\""
    57     ENDM
    58 DETCOM_TFORM4 MACRO ARG
    59     COBJ "detcom:dheader 7.0041 TFORM4 \"\ARG\" \"Table format for field 4\""
    60     ENDM
    61 DETCOM_TBCOL4 MACRO ARG
    62     COBJ "detcom:dheader 7.0042 TBCOL4 \"\ARG\" \"Start Column for field 4\""
    63     ENDM
    64 DETCOM_TFORM5 MACRO ARG
    65     COBJ "detcom:dheader 7.0051 TFORM5 \"\ARG\" \"Table format for field 5\""
    66     ENDM
    67 DETCOM_TBCOL5 MACRO ARG
    68     COBJ "detcom:dheader 7.0052 TBCOL5 \"\ARG\" \"Start Column for field 5\""
    69     ENDM
    70 DETCOM_CMMTOBS MACRO ARG
    71     COBJ "detcom:dheader 51.0 CMMTOBS \"\ARG\" \"\""
    72     ENDM
    73 DETCOM_CMMTSEQ MACRO ARG
    74     COBJ "detcom:dheader 52.0 CMMTSEQ \"\ARG\" \"\""
    75     ENDM
    76 DETCOM_OBJECT MACRO ARG
    77     COBJ "detcom:dheader 53.0 OBJECT \"\ARG\" \"\""
    78     ENDM
    79 DETCOM_OBSERVER MACRO ARG
    80     COBJ "detcom:dheader 54.0 OBSERVER \"\ARG\" \"\""
    81     ENDM
    82 DETCOM_PI_NAME MACRO ARG
    83     COBJ "detcom:dheader 55.0 PI_NAME \"\ARG\" \"\""
    84     ENDM
    85 DETCOM_RUNID MACRO ARG
    86     COBJ "detcom:dheader 56.0 RUNID \"\ARG\" \"\""
    87     ENDM
    88 DETCOM_FILENAME MACRO ARG
    89     COBJ "detcom:dheader 71.00 FILENAME \"\ARG\" \"Base filename at acquisition\""
    90     ENDM
    91 DETCOM_PATHNAME MACRO ARG
    92     COBJ "detcom:dheader 71.01 PATHNAME \"\ARG\" \"Original directory name at acquisition\""
    93     ENDM
    94 DETCOM_EXTNAME MACRO ARG
    95     COBJ "detcom:dheader 71.10 EXTNAME \"\ARG\" \"Extension name\""
    96     ENDM
    97 DETCOM_EXTVER MACRO ARG
    98     COBJ "detcom:dheader 71.20 EXTVER \"\ARG\" \"Extension version\""
    99     ENDM
    100 DETCOM_DATE MACRO ARG
    101     COBJ "detcom:dheader 74.00 DATE \"\ARG\" \"UTC Date of file creation\""
    102     ENDM
    103 DETCOM_HSTTIME MACRO ARG
    104     COBJ "detcom:dheader 74.10 HSTTIME \"\ARG\" \"Local time in Hawaii\""
    105     ENDM
    106 DETCOM_IMAGESWV MACRO ARG
    107     COBJ "detcom:dheader 77.00 IMAGESWV \"\ARG\" \"Image creation software version\""
    108     ENDM
    109 DETCOM_DETECTOR MACRO ARG
    110     COBJ "detcom:dheader 91.0 DETECTOR \"\ARG\" \"Science Detector\""
    111     ENDM
    112 DETCOM_INSTRUME MACRO ARG
    113     COBJ "detcom:dheader 92.0 INSTRUME \"\ARG\" \"Instrument Name\""
    114     ENDM
    115 DETCOM_INSTMODE MACRO ARG
    116     COBJ "detcom:dheader 92.1 INSTMODE \"\ARG\" \"Instrument Mode\""
    117     ENDM
    118 DETCOM_DETSIZE MACRO ARG
    119     COBJ "detcom:dheader 102.0 DETSIZE \"\ARG\" \"Total data pixels in full mosaic\""
    120     ENDM
    121 DETCOM_RASTER MACRO ARG
    122     COBJ "detcom:dheader 103.0 RASTER \"\ARG\" \"\""
    123     ENDM
    124 DETCOM_CCDSUM MACRO ARG
    125     COBJ "detcom:dheader 105.0 CCDSUM \"\ARG\" \"Binning factors\""
    126     ENDM
    127 DETCOM_CCDBIN1 MACRO ARG
    128     COBJ "detcom:dheader 105.1 CCDBIN1 \"\ARG\" \"Binning factor along first axis\""
    129     ENDM
    130 DETCOM_CCDBIN2 MACRO ARG
    131     COBJ "detcom:dheader 105.2 CCDBIN2 \"\ARG\" \"Binning factor along second axis\""
    132     ENDM
    133 DETCOM_PIXSIZE MACRO ARG
    134     COBJ "detcom:dheader 110.0 PIXSIZE \"\ARG\" \"Pixel size for both axes (microns)\""
    135     ENDM
    136 DETCOM_PIXSIZE1 MACRO ARG
    137     COBJ "detcom:dheader 111.1 PIXSIZE1 \"\ARG\" \"Pixel size for axis 1 (microns)\""
    138     ENDM
    139 DETCOM_PIXSIZE2 MACRO ARG
    140     COBJ "detcom:dheader 111.2 PIXSIZE2 \"\ARG\" \"Pixel size for axis 2 (microns)\""
    141     ENDM
    142 DETCOM_PIXSCAL1 MACRO ARG
    143     COBJ "detcom:dheader 112.1 PIXSCAL1 \"\ARG\" \"Pixel scale for axis 1 (arcsec/pixel)\""
    144     ENDM
    145 DETCOM_PIXSCAL2 MACRO ARG
    146     COBJ "detcom:dheader 112.2 PIXSCAL2 \"\ARG\" \"Pixel scale for axis 2 (arcsec/pixel)\""
    147     ENDM
    148 DETCOM_AMPLIST MACRO ARG
    149     COBJ "detcom:dheader 130.0 AMPLIST \"\ARG\" \"List of amplifiers for this image\""
    150     ENDM
    151 DETCOM_AMPNAME MACRO ARG
    152     COBJ "detcom:dheader 131.0 AMPNAME \"\ARG\" \"Amplifier name\""
    153     ENDM
    154 DETCOM_CCDSIZE MACRO ARG
    155     COBJ "detcom:dheader 140.0 CCDSIZE \"\ARG\" \"Detector imaging area size\""
    156     ENDM
    157 DETCOM_DETSEC MACRO ARG
    158     COBJ "detcom:dheader 140.1 DETSEC \"\ARG\" \"Mosaic area of the detector\""
    159     ENDM
    160 DETCOM_DETSECA MACRO ARG
    161     COBJ "detcom:dheader 140.11 DETSECA \"\ARG\" \"Mosaic area of the detector from Amp A\""
    162     ENDM
    163 DETCOM_DETSECB MACRO ARG
    164     COBJ "detcom:dheader 140.12 DETSECB \"\ARG\" \"Mosaic area of the detector from Amp B\""
    165     ENDM
    166 DETCOM_DETSECC MACRO ARG
    167     COBJ "detcom:dheader 140.13 DETSECC \"\ARG\" \"Mosaic area of the detector from Amp C\""
    168     ENDM
    169 DETCOM_DETSECD MACRO ARG
    170     COBJ "detcom:dheader 140.14 DETSECD \"\ARG\" \"Mosaic area of the detector from Amp D\""
    171     ENDM
    172 DETCOM_DATASEC MACRO ARG
    173     COBJ "detcom:dheader 140.2 DATASEC \"\ARG\" \"Imaging area of the detector\""
    174     ENDM
    175 DETCOM_BIASSEC MACRO ARG
    176     COBJ "detcom:dheader 140.3 BIASSEC \"\ARG\" \"Overscan (bias) area of the detector\""
    177     ENDM
    178 DETCOM_ASECA MACRO ARG
    179     COBJ "detcom:dheader 141.11 ASECA \"\ARG\" \"Section from Amp A (non-contig. bias excluded)\""
    180     ENDM
    181 DETCOM_ASECB MACRO ARG
    182     COBJ "detcom:dheader 141.12 ASECB \"\ARG\" \"Section from Amp B (non-contig. bias excluded)\""
    183     ENDM
    184 DETCOM_ASECC MACRO ARG
    185     COBJ "detcom:dheader 141.13 ASECC \"\ARG\" \"Section from Amp C (non-contig. bias excluded)\""
    186     ENDM
    187 DETCOM_ASECD MACRO ARG
    188     COBJ "detcom:dheader 141.14 ASECD \"\ARG\" \"Section from Amp D (non-contig. bias excluded)\""
    189     ENDM
    190 DETCOM_BSECA MACRO ARG
    191     COBJ "detcom:dheader 141.21 BSECA \"\ARG\" \"Overscan (bias) area from Amp A\""
    192     ENDM
    193 DETCOM_BSECB MACRO ARG
    194     COBJ "detcom:dheader 141.22 BSECB \"\ARG\" \"Overscan (bias) area from Amp B\""
    195     ENDM
    196 DETCOM_BSECC MACRO ARG
    197     COBJ "detcom:dheader 141.23 BSECC \"\ARG\" \"Overscan (bias) area from Amp C\""
    198     ENDM
    199 DETCOM_BSECD MACRO ARG
    200     COBJ "detcom:dheader 141.24 BSECD \"\ARG\" \"Overscan (bias) area from Amp D\""
    201     ENDM
    202 DETCOM_CSECA MACRO ARG
    203     COBJ "detcom:dheader 141.31 CSECA \"\ARG\" \"Section in full CCD for DSECA\""
    204     ENDM
    205 DETCOM_CSECB MACRO ARG
    206     COBJ "detcom:dheader 141.32 CSECB \"\ARG\" \"Section in full CCD for DSECB\""
    207     ENDM
    208 DETCOM_CSECC MACRO ARG
    209     COBJ "detcom:dheader 141.33 CSECC \"\ARG\" \"Section in full CCD for DSECC\""
    210     ENDM
    211 DETCOM_CSECD MACRO ARG
    212     COBJ "detcom:dheader 141.34 CSECD \"\ARG\" \"Section in full CCD for DSECD\""
    213     ENDM
    214 DETCOM_DSECA MACRO ARG
    215     COBJ "detcom:dheader 141.41 DSECA \"\ARG\" \"Imaging area from Amp A\""
    216     ENDM
    217 DETCOM_DSECB MACRO ARG
    218     COBJ "detcom:dheader 141.42 DSECB \"\ARG\" \"Imaging area from Amp B\""
    219     ENDM
    220 DETCOM_DSECC MACRO ARG
    221     COBJ "detcom:dheader 141.43 DSECC \"\ARG\" \"Imaging area from Amp C\""
    222     ENDM
    223 DETCOM_DSECD MACRO ARG
    224     COBJ "detcom:dheader 141.44 DSECD \"\ARG\" \"Imaging area from Amp D\""
    225     ENDM
    226 DETCOM_TSECA MACRO ARG
    227     COBJ "detcom:dheader 141.51 TSECA \"\ARG\" \"Trim section for Amp A\""
    228     ENDM
    229 DETCOM_TSECB MACRO ARG
    230     COBJ "detcom:dheader 141.52 TSECB \"\ARG\" \"Trim section for Amp B\""
    231     ENDM
    232 DETCOM_TSECC MACRO ARG
    233     COBJ "detcom:dheader 141.53 TSECC \"\ARG\" \"Trim section for Amp C\""
    234     ENDM
    235 DETCOM_TSECD MACRO ARG
    236     COBJ "detcom:dheader 141.54 TSECD \"\ARG\" \"Trim section for Amp D\""
    237     ENDM
    238 DETCOM_CCDNAME MACRO ARG
    239     COBJ "detcom:dheader 150.1 CCDNAME \"\ARG\" \"Name of the CCD (manufacturer reference)\""
    240     ENDM
    241 DETCOM_CCDNICK MACRO ARG
    242     COBJ "detcom:dheader 150.2 CCDNICK \"\ARG\" \"Nickname of the CCD\""
    243     ENDM
    244 DETCOM_MAXLIN MACRO ARG
    245     COBJ "detcom:dheader 152.0 MAXLIN \"\ARG\" \"Maximum linearity value (ADU)\""
    246     ENDM
    247 DETCOM_MAXLINA MACRO ARG
    248     COBJ "detcom:dheader 152.01 MAXLINA \"\ARG\" \"Maximum linearity value for Amp A (ADU)\""
    249     ENDM
    250 DETCOM_MAXLINB MACRO ARG
    251     COBJ "detcom:dheader 152.02 MAXLINB \"\ARG\" \"Maximum linearity value for Amp B (ADU)\""
    252     ENDM
    253 DETCOM_MAXLINC MACRO ARG
    254     COBJ "detcom:dheader 152.03 MAXLINC \"\ARG\" \"Maximum linearity value for Amp C (ADU)\""
    255     ENDM
    256 DETCOM_MAXLIND MACRO ARG
    257     COBJ "detcom:dheader 152.04 MAXLIND \"\ARG\" \"Maximum linearity value for Amp D (ADU)\""
    258     ENDM
    259 DETCOM_SATURATE MACRO ARG
    260     COBJ "detcom:dheader 152.1 SATURATE \"\ARG\" \"Saturation value (ADU)\""
    261     ENDM
    262 DETCOM_GAIN MACRO ARG
    263     COBJ "detcom:dheader 155.0 GAIN \"\ARG\" \"Amplifier gain (electrons/ADU)\""
    264     ENDM
    265 DETCOM_GAINA MACRO ARG
    266     COBJ "detcom:dheader 155.01 GAINA \"\ARG\" \"Amp A gain (electrons/ADU)\""
    267     ENDM
    268 DETCOM_GAINB MACRO ARG
    269     COBJ "detcom:dheader 155.02 GAINB \"\ARG\" \"Amp B gain (electrons/ADU)\""
    270     ENDM
    271 DETCOM_GAINC MACRO ARG
    272     COBJ "detcom:dheader 155.03 GAINC \"\ARG\" \"Amp C gain (electrons/ADU)\""
    273     ENDM
    274 DETCOM_GAIND MACRO ARG
    275     COBJ "detcom:dheader 155.04 GAIND \"\ARG\" \"Amp D gain (electrons/ADU)\""
    276     ENDM
    277 DETCOM_RDNOISE MACRO ARG
    278     COBJ "detcom:dheader 156.0 RDNOISE \"\ARG\" \"Read noise (electrons)\""
    279     ENDM
    280 DETCOM_RDNOISEA MACRO ARG
    281     COBJ "detcom:dheader 156.01 RDNOISEA \"\ARG\" \"Amp A read noise (electrons)\""
    282     ENDM
    283 DETCOM_RDNOISEB MACRO ARG
    284     COBJ "detcom:dheader 156.02 RDNOISEB \"\ARG\" \"Amp B read noise (electrons)\""
    285     ENDM
    286 DETCOM_RDNOISEC MACRO ARG
    287     COBJ "detcom:dheader 156.03 RDNOISEC \"\ARG\" \"Amp C read noise (electrons)\""
    288     ENDM
    289 DETCOM_RDNOISED MACRO ARG
    290     COBJ "detcom:dheader 156.04 RDNOISED \"\ARG\" \"Amp D read noise (electrons)\""
    291     ENDM
    292 DETCOM_DCURRENT MACRO ARG
    293     COBJ "detcom:dheader 157.0 DCURRENT \"\ARG\" \"Dark current (ADU/pixel/second)\""
    294     ENDM
    295 DETCOM_DARKCUR MACRO ARG
    296     COBJ "detcom:dheader 157.1 DARKCUR \"\ARG\" \"Dark current (e-/pixel/hour)\""
    297     ENDM
    298 DETCOM_QEPOINTS MACRO ARG
    299     COBJ "detcom:dheader 158.0 QEPOINTS \"\ARG\" \"QE%@wavelength in nm\""
    300     ENDM
    301 DETCOM_CONSWV MACRO ARG
    302     COBJ "detcom:dheader 170.0 CONSWV \"\ARG\" \"Controller software DSPID and SERNO versions\""
    303     ENDM
    304 DETCOM_DETSTAT MACRO ARG
    305     COBJ "detcom:dheader 180.0 DETSTAT \"\ARG\" \"Detector status\""
    306     ENDM
    307 DETCOM_DETTEM MACRO ARG
    308     COBJ "detcom:dheader 190.0 DETTEM \"\ARG\" \"Detector temperature\""
    309     ENDM
    310 DETCOM_TELESCOP MACRO ARG
    311     COBJ "detcom:dheader 501.1 TELESCOP \"\ARG\" \"\""
    312     ENDM
    313 DETCOM_ORIGIN MACRO ARG
    314     COBJ "detcom:dheader 501.2 ORIGIN \"\ARG\" \"Canada-France-Hawaii Telescope\""
    315     ENDM
    316 DETCOM_TELSTAT MACRO ARG
    317     COBJ "detcom:dheader 503.0 TELSTAT \"\ARG\" \"Telescope Control System status\""
    318     ENDM
    319 DETCOM_TIMESYS MACRO ARG
    320     COBJ "detcom:dheader 510.0 TIMESYS \"\ARG\" \"Time System for DATExxxx\""
    321     ENDM
    322 DETCOM_UTIME MACRO ARG
    323     COBJ "detcom:dheader 512.0 UTIME \"\ARG\" \"Time at start of observation (UT)\""
    324     ENDM
    325 DETCOM_SIDTIME MACRO ARG
    326     COBJ "detcom:dheader 514.0 SIDTIME \"\ARG\" \"Sidereal time at start of observation\""
    327     ENDM
    328 DETCOM_EPOCH MACRO ARG
    329     COBJ "detcom:dheader 521.0 EPOCH \"\ARG\" \"Equinox of coordinates\""
    330     ENDM
    331 DETCOM_EQUINOX MACRO ARG
    332     COBJ "detcom:dheader 521.1 EQUINOX \"\ARG\" \"Equinox of coordinates\""
    333     ENDM
    334 DETCOM_RADECSYS MACRO ARG
    335     COBJ "detcom:dheader 522.0 RADECSYS \"\ARG\" \"Coordinate system for equinox (FK4/FK5/GAPPT)\""
    336     ENDM
    337 DETCOM_RA MACRO ARG
    338     COBJ "detcom:dheader 522.1 RA \"\ARG\" \"Object right ascension\""
    339     ENDM
    340 DETCOM_DEC MACRO ARG
    341     COBJ "detcom:dheader 522.2 DEC \"\ARG\" \"Object declination\""
    342     ENDM
    343 DETCOM_CTYPE1 MACRO ARG
    344     COBJ "detcom:dheader 525.211 CTYPE1 \"\ARG\" \"WCS Coordinate type\""
    345     ENDM
    346 DETCOM_CTYPE2 MACRO ARG
    347     COBJ "detcom:dheader 525.212 CTYPE2 \"\ARG\" \"WCS Coordinate type\""
    348     ENDM
    349 DETCOM_CD1_1 MACRO ARG
    350     COBJ "detcom:dheader 525.411 CD1_1 \"\ARG\" \"WCS Coordinate scale matrix\""
    351     ENDM
    352 DETCOM_CD1_2 MACRO ARG
    353     COBJ "detcom:dheader 525.412 CD1_2 \"\ARG\" \"WCS Coordinate scale matrix\""
    354     ENDM
    355 DETCOM_CD2_1 MACRO ARG
    356     COBJ "detcom:dheader 525.421 CD2_1 \"\ARG\" \"WCS Coordinate scale matrix\""
    357     ENDM
    358 DETCOM_CD2_2 MACRO ARG
    359     COBJ "detcom:dheader 525.422 CD2_2 \"\ARG\" \"WCS Coordinate scale matrix\""
    360     ENDM
    361 DETCOM_NGUIDER MACRO ARG
    362     COBJ "detcom:dheader 530.0 NGUIDER \"\ARG\" \"TCS Number of guiders\""
    363     ENDM
    364 DETCOM_NGUISTAR MACRO ARG
    365     COBJ "detcom:dheader 530.01 NGUISTAR \"\ARG\" \"TCS number of guide stars/probes in use\""
    366     ENDM
    367 DETCOM_GUINAME MACRO ARG
    368     COBJ "detcom:dheader 530.1 GUINAME \"\ARG\" \"TCS guider name\""
    369     ENDM
    370 DETCOM_GUIEQUIN MACRO ARG
    371     COBJ "detcom:dheader 530.21 GUIEQUIN \"\ARG\" \"TCS guider equinox\""
    372     ENDM
    373 DETCOM_GUIRADEC MACRO ARG
    374     COBJ "detcom:dheader 530.22 GUIRADEC \"\ARG\" \"TCS guider system for equinox\""
    375     ENDM
    376 DETCOM_GUIRA MACRO ARG
    377     COBJ "detcom:dheader 530.23 GUIRA \"\ARG\" \"TCS guider right ascension\""
    378     ENDM
    379 DETCOM_GUIDEC MACRO ARG
    380     COBJ "detcom:dheader 530.24 GUIDEC \"\ARG\" \"TCS guider declination\""
    381     ENDM
    382 DETCOM_GUIOBJN MACRO ARG
    383     COBJ "detcom:dheader 530.3 GUIOBJN \"\ARG\" \"TCS guider object name\""
    384     ENDM
    385 DETCOM_GUIFLUX MACRO ARG
    386     COBJ "detcom:dheader 530.6 GUIFLUX \"\ARG\" \"TCS guider flux\""
    387     ENDM
    388 DETCOM_SKYFLUX MACRO ARG
    389     COBJ "detcom:dheader 530.8 SKYFLUX \"\ARG\" \"TCS total sky flux\""
    390     ENDM
    391 DETCOM_GUINAME1 MACRO ARG
    392     COBJ "detcom:dheader 531.1 GUINAME1 \"\ARG\" \"TCS guider #1 identification\""
    393     ENDM
    394 DETCOM_GUIEQUI1 MACRO ARG
    395     COBJ "detcom:dheader 531.21 GUIEQUI1 \"\ARG\" \"TCS guider #1 equinox\""
    396     ENDM
    397 DETCOM_GUIRADE1 MACRO ARG
    398     COBJ "detcom:dheader 531.22 GUIRADE1 \"\ARG\" \"TCS guider #1 system for equinox\""
    399     ENDM
    400 DETCOM_GUIRA1 MACRO ARG
    401     COBJ "detcom:dheader 531.23 GUIRA1 \"\ARG\" \"TCS guider #1 right ascension\""
    402     ENDM
    403 DETCOM_GUIDEC1 MACRO ARG
    404     COBJ "detcom:dheader 531.24 GUIDEC1 \"\ARG\" \"TCS guider #1 declination\""
    405     ENDM
    406 DETCOM_GUIOBJN1 MACRO ARG
    407     COBJ "detcom:dheader 531.3 GUIOBJN1 \"\ARG\" \"TCS guider #1 object name\""
    408     ENDM
    409 DETCOM_GUIFLUX1 MACRO ARG
    410     COBJ "detcom:dheader 531.6 GUIFLUX1 \"\ARG\" \"TCS guider #1 flux\""
    411     ENDM
    412 DETCOM_GUINAME2 MACRO ARG
    413     COBJ "detcom:dheader 532.1 GUINAME2 \"\ARG\" \"TCS guider #2 identification\""
    414     ENDM
    415 DETCOM_GUIEQUI2 MACRO ARG
    416     COBJ "detcom:dheader 532.21 GUIEQUI2 \"\ARG\" \"TCS guider #2 equinox\""
    417     ENDM
    418 DETCOM_GUIRADE2 MACRO ARG
    419     COBJ "detcom:dheader 532.22 GUIRADE2 \"\ARG\" \"TCS guider #2 system for equinox\""
    420     ENDM
    421 DETCOM_GUIRA2 MACRO ARG
    422     COBJ "detcom:dheader 532.23 GUIRA2 \"\ARG\" \"TCS guider #2 right ascension\""
    423     ENDM
    424 DETCOM_GUIDEC2 MACRO ARG
    425     COBJ "detcom:dheader 532.24 GUIDEC2 \"\ARG\" \"TCS guider #2 declination\""
    426     ENDM
    427 DETCOM_GUIOBJN2 MACRO ARG
    428     COBJ "detcom:dheader 532.3 GUIOBJN2 \"\ARG\" \"TCS guider #2 object name\""
    429     ENDM
    430 DETCOM_GUIFLUX2 MACRO ARG
    431     COBJ "detcom:dheader 532.6 GUIFLUX2 \"\ARG\" \"TCS guider #2 flux\""
    432     ENDM
    433 DETCOM_GUINAME3 MACRO ARG
    434     COBJ "detcom:dheader 533.1 GUINAME3 \"\ARG\" \"TCS guider #3 identification\""
    435     ENDM
    436 DETCOM_GUIEQUI3 MACRO ARG
    437     COBJ "detcom:dheader 533.21 GUIEQUI3 \"\ARG\" \"TCS guider #3 equinox\""
    438     ENDM
    439 DETCOM_GUIRADE3 MACRO ARG
    440     COBJ "detcom:dheader 533.22 GUIRADE3 \"\ARG\" \"TCS guider #3 system for equinox\""
    441     ENDM
    442 DETCOM_GUIRA3 MACRO ARG
    443     COBJ "detcom:dheader 533.23 GUIRA3 \"\ARG\" \"TCS guider #3 right ascension\""
    444     ENDM
    445 DETCOM_GUIDEC3 MACRO ARG
    446     COBJ "detcom:dheader 533.24 GUIDEC3 \"\ARG\" \"TCS guider #3 declination\""
    447     ENDM
    448 DETCOM_GUIOBJN3 MACRO ARG
    449     COBJ "detcom:dheader 533.3 GUIOBJN3 \"\ARG\" \"TCS guider #3 object name\""
    450     ENDM
    451 DETCOM_GUIFLUX3 MACRO ARG
    452     COBJ "detcom:dheader 533.6 GUIFLUX3 \"\ARG\" \"TCS guider #3 flux\""
    453     ENDM
    454 DETCOM_GUINAME4 MACRO ARG
    455     COBJ "detcom:dheader 534.1 GUINAME4 \"\ARG\" \"TCS guider #4 identification\""
    456     ENDM
    457 DETCOM_GUIEQUI4 MACRO ARG
    458     COBJ "detcom:dheader 534.21 GUIEQUI4 \"\ARG\" \"TCS guider #4 equinox\""
    459     ENDM
    460 DETCOM_GUIRADE4 MACRO ARG
    461     COBJ "detcom:dheader 534.22 GUIRADE4 \"\ARG\" \"TCS guider #4 system for equinox\""
    462     ENDM
    463 DETCOM_GUIRA4 MACRO ARG
    464     COBJ "detcom:dheader 534.23 GUIRA4 \"\ARG\" \"TCS guider #4 right ascension\""
    465     ENDM
    466 DETCOM_GUIDEC4 MACRO ARG
    467     COBJ "detcom:dheader 534.24 GUIDEC4 \"\ARG\" \"TCS guider #4 declination\""
    468     ENDM
    469 DETCOM_GUIOBJN4 MACRO ARG
    470     COBJ "detcom:dheader 534.3 GUIOBJN4 \"\ARG\" \"TCS guider #4 object name\""
    471     ENDM
    472 DETCOM_GUIFLUX4 MACRO ARG
    473     COBJ "detcom:dheader 534.6 GUIFLUX4 \"\ARG\" \"TCS guider #4 flux\""
    474     ENDM
    475 DETCOM_FOCUSID MACRO ARG
    476     COBJ "detcom:dheader 550.0 FOCUSID \"\ARG\" \"Telescope focus in use\""
    477     ENDM
    478 DETCOM_TELCONF MACRO ARG
    479     COBJ "detcom:dheader 550.1 TELCONF \"\ARG\" \"Telescope focus in use\""
    480     ENDM
    481 DETCOM_FOCUSPOS MACRO ARG
    482     COBJ "detcom:dheader 551.0 FOCUSPOS \"\ARG\" \"Telescope focus encoder readout\""
    483     ENDM
    484 DETCOM_TELFOCUS MACRO ARG
    485     COBJ "detcom:dheader 551.1 TELFOCUS \"\ARG\" \"Telescope focus encoder readout\""
    486     ENDM
    487 DETCOM_ISUSTATE MACRO ARG
    488     COBJ "detcom:dheader 560.4 ISUSTATE \"\ARG\" \"ISU control state (Off/Only/TCS/Full/Frozen)\""
    489     ENDM
    490 DETCOM_FSASTATE MACRO ARG
    491     COBJ "detcom:dheader 570.4 FSASTATE \"\ARG\" \"FSA control state (Off/On/Paused)\""
    492     ENDM
    493 DETCOM_FSANMOVE MACRO ARG
    494     COBJ "detcom:dheader 570.5 FSANMOVE \"\ARG\" \"FSA number of actual moves in last 10 minutes\""
    495     ENDM
    496 DETCOM_TCSGPSBC MACRO ARG
    497     COBJ "detcom:dheader 580.11 TCSGPSBC \"\ARG\" \"TCS GPS read out in BCD\""
    498     ENDM
    499 DETCOM_TCSRBUSS MACRO ARG
    500     COBJ "detcom:dheader 580.13 TCSRBUSS \"\ARG\" \"TCS RBUSS clock time\""
    501     ENDM
    502 DETCOM_TCSEPICS MACRO ARG
    503     COBJ "detcom:dheader 580.14 TCSEPICS \"\ARG\" \"TCS EPICS clock time\""
    504     ENDM
    505 DETCOM_TCSAMODE MACRO ARG
    506     COBJ "detcom:dheader 580.15 TCSAMODE \"\ARG\" \"TCS acquisition mode - T/O/G/g for t/o/g coords\""
    507     ENDM
    508 DETCOM_TCSENHA MACRO ARG
    509     COBJ "detcom:dheader 580.51 TCSENHA \"\ARG\" \"TCS hour angle encoder bits reading\""
    510     ENDM
    511 DETCOM_TCSENDEC MACRO ARG
    512     COBJ "detcom:dheader 580.52 TCSENDEC \"\ARG\" \"TCS declination encoder bits reading\""
    513     ENDM
    514 DETCOM_AOBLOOP MACRO ARG
    515     COBJ "detcom:dheader 711.0 AOBLOOP \"\ARG\" \"AOB closed loop Open/Closed\""
    516     ENDM
    517 DETCOM_LOOPNES MACRO ARG
    518     COBJ "detcom:dheader 713.0 LOOPNES \"\ARG\" \"Loop type \"Nested\"/\"Tip/Tilt\"/\"Single\"\""
    519     ENDM
    520 DETCOM_LOOPOPT MACRO ARG
    521     COBJ "detcom:dheader 715.0 LOOPOPT \"\ARG\" \"Optimized loop control True/False\""
    522     ENDM
    523 DETCOM_WFSGOPT MACRO ARG
    524     COBJ "detcom:dheader 716.0 WFSGOPT \"\ARG\" \"WFS optical gain\""
    525     ENDM
    526 DETCOM_WFSCOUNT MACRO ARG
    527     COBJ "detcom:dheader 722.0 WFSCOUNT \"\ARG\" \"Total flux count on WFS\""
    528     ENDM
    529 DETCOM_ADCPOS MACRO ARG
    530     COBJ "detcom:dheader 751.0 ADCPOS \"\ARG\" \"AOB ADC position In/Out\""
    531     ENDM
    532 DETCOM_BEAMSPID MACRO ARG
    533     COBJ "detcom:dheader 754.0 BEAMSPID \"\ARG\" \"Beam splitter ID\""
    534     ENDM
    535 DETCOM_BEAMSP MACRO ARG
    536     COBJ "detcom:dheader 755.0 BEAMSP \"\ARG\" \"Beam splitter description\""
    537     ENDM
    538 DETCOM_MIRSLIDE MACRO ARG
    539     COBJ "detcom:dheader 756.0 MIRSLIDE \"\ARG\" \"AOB mirror slide \"F/20\"/\"F/8\"\""
    540     ENDM
    541 DETCOM_WFSNDID MACRO ARG
    542     COBJ "detcom:dheader 757.0 WFSNDID \"\ARG\" \"WFS ND filter position\""
    543     ENDM
    544 DETCOM_FFLAMPON MACRO ARG
    545     COBJ "detcom:dheader 910.0 FFLAMPON \"\ARG\" \"flatfield lamp status ON/OFF\""
    546     ENDM
    547 DETCOM_FFLAMP MACRO ARG
    548     COBJ "detcom:dheader 911.0 FFLAMP \"\ARG\" \"flatfield lamp intensity\""
    549     ENDM
    550 DETCOM_CLAMP0ON MACRO ARG
    551     COBJ "detcom:dheader 920.0 CLAMP0ON \"\ARG\" \"comparison lamp 0 status ON/OFF\""
    552     ENDM
    553 DETCOM_CLAMP0 MACRO ARG
    554     COBJ "detcom:dheader 920.1 CLAMP0 \"\ARG\" \"comparison lamp 0 description\""
    555     ENDM
    556 DETCOM_CLAMP1ON MACRO ARG
    557     COBJ "detcom:dheader 921.0 CLAMP1ON \"\ARG\" \"comparison lamp 1 status ON/OFF\""
    558     ENDM
    559 DETCOM_CLAMP1 MACRO ARG
    560     COBJ "detcom:dheader 921.1 CLAMP1 \"\ARG\" \"comparison lamp 1 description\""
    561     ENDM
    562 DETCOM_CLAMP2ON MACRO ARG
    563     COBJ "detcom:dheader 922.0 CLAMP2ON \"\ARG\" \"comparison lamp 2 status ON/OFF\""
    564     ENDM
    565 DETCOM_CLAMP2 MACRO ARG
    566     COBJ "detcom:dheader 922.1 CLAMP2 \"\ARG\" \"comparison lamp 2 description\""
    567     ENDM
    568 DETCOM_CLAMP3ON MACRO ARG
    569     COBJ "detcom:dheader 923.0 CLAMP3ON \"\ARG\" \"comparison lamp 3 status ON/OFF\""
    570     ENDM
    571 DETCOM_CLAMP3 MACRO ARG
    572     COBJ "detcom:dheader 923.1 CLAMP3 \"\ARG\" \"comparison lamp 3 description\""
    573     ENDM
    574 DETCOM_CALIBL0 MACRO ARG
    575     COBJ "detcom:dheader 930.0 CALIBL0 \"\ARG\" \"lamp 0 ON/OFF\""
    576     ENDM
    577 DETCOM_CALIBL1 MACRO ARG
    578     COBJ "detcom:dheader 931.0 CALIBL1 \"\ARG\" \"lamp 1 ON/OFF\""
    579     ENDM
    580 DETCOM_CALIBL2 MACRO ARG
    581     COBJ "detcom:dheader 932.0 CALIBL2 \"\ARG\" \"lamp 2 ON/OFF\""
    582     ENDM
    583 DETCOM_CALIBL3 MACRO ARG
    584     COBJ "detcom:dheader 933.0 CALIBL3 \"\ARG\" \"lamp 3 ON/OFF\""
    585     ENDM
    586 DETCOM_CALIBL4 MACRO ARG
    587     COBJ "detcom:dheader 934.0 CALIBL4 \"\ARG\" \"lamp 4 ON/OFF\""
    588     ENDM
    589 DETCOM_CALIBL5 MACRO ARG
    590     COBJ "detcom:dheader 935.0 CALIBL5 \"\ARG\" \"lamp 5 ON/OFF\""
    591     ENDM
    592 DETCOM_CALIBL6 MACRO ARG
    593     COBJ "detcom:dheader 936.0 CALIBL6 \"\ARG\" \"lamp 6 ON/OFF\""
    594     ENDM
    595 DETCOM_CALIBL7 MACRO ARG
    596     COBJ "detcom:dheader 937.0 CALIBL7 \"\ARG\" \"lamp 7 ON/OFF\""
    597     ENDM
    598 DETCOM_CALIBL8 MACRO ARG
    599     COBJ "detcom:dheader 938.0 CALIBL8 \"\ARG\" \"lamp 8 ON/OFF\""
    600     ENDM
    601 DETCOM_CALIBL9 MACRO ARG
    602     COBJ "detcom:dheader 939.0 CALIBL9 \"\ARG\" \"lamp 9 ON/OFF\""
    603     ENDM
    604 DETCOM_FILTERID MACRO ARG
    605     COBJ "detcom:dheader 1010.1 FILTERID \"\ARG\" \"wheel position\""
    606     ENDM
    607 DETCOM_FILTER MACRO ARG
    608     COBJ "detcom:dheader 1010.2 FILTER \"\ARG\" \"description of filter\""
    609     ENDM
    610 DETCOM_FILTERBW MACRO ARG
    611     COBJ "detcom:dheader 1010.3 FILTERBW \"\ARG\" \"filter bandwidth\""
    612     ENDM
    613 DETCOM_FILTERWL MACRO ARG
    614     COBJ "detcom:dheader 1010.4 FILTERWL \"\ARG\" \"filter wavelength\""
    615     ENDM
    616 DETCOM_FILTERLB MACRO ARG
    617     COBJ "detcom:dheader 1010.5 FILTERLB \"\ARG\" \"lower bound of filter (units/%?)\""
    618     ENDM
    619 DETCOM_FILTERUB MACRO ARG
    620     COBJ "detcom:dheader 1010.6 FILTERUB \"\ARG\" \"upper bound of filter (units/%?)\""
    621     ENDM
    622 DETCOM_FILTSLID MACRO ARG
    623     COBJ "detcom:dheader 1010.7 FILTSLID \"\ARG\" \"filter drawer number\""
    624     ENDM
    625 DETCOM_WHEELAID MACRO ARG
    626     COBJ "detcom:dheader 1020.1 WHEELAID \"\ARG\" \"'wheel' A position\""
    627     ENDM
    628 DETCOM_WHEELADE MACRO ARG
    629     COBJ "detcom:dheader 1020.2 WHEELADE \"\ARG\" \"description of filter\""
    630     ENDM
    631 DETCOM_WHEELALB MACRO ARG
    632     COBJ "detcom:dheader 1020.5 WHEELALB \"\ARG\" \"lower bound of filter A (units/%?)\""
    633     ENDM
    634 DETCOM_WHEELAUB MACRO ARG
    635     COBJ "detcom:dheader 1020.6 WHEELAUB \"\ARG\" \"upper bound of filter A (units/%?)\""
    636     ENDM
    637 DETCOM_WHEELBID MACRO ARG
    638     COBJ "detcom:dheader 1030.1 WHEELBID \"\ARG\" \"'wheel' B position\""
    639     ENDM
    640 DETCOM_WHEELBDE MACRO ARG
    641     COBJ "detcom:dheader 1030.2 WHEELBDE \"\ARG\" \"description of filter\""
    642     ENDM
    643 DETCOM_WHEELBLB MACRO ARG
    644     COBJ "detcom:dheader 1030.5 WHEELBLB \"\ARG\" \"lower bound of filter B (units/%?)\""
    645     ENDM
    646 DETCOM_WHEELBUB MACRO ARG
    647     COBJ "detcom:dheader 1030.6 WHEELBUB \"\ARG\" \"upper bound of filter B (units/%?)\""
    648     ENDM
    649 DETCOM_INSTFOC MACRO ARG
    650     COBJ "detcom:dheader 1101.0 INSTFOC \"\ARG\" \"internal instrument focus value\""
    651     ENDM
    652 DETCOM_GRISMID MACRO ARG
    653     COBJ "detcom:dheader 4101.0 GRISMID \"\ARG\" \"grism position\""
    654     ENDM
    655 DETCOM_GRISM MACRO ARG
    656     COBJ "detcom:dheader 4102.0 GRISM \"\ARG\" \"grism description\""
    657     ENDM
    658 DETCOM_GRISSLID MACRO ARG
    659     COBJ "detcom:dheader 4103.0 GRISSLID \"\ARG\" \"grism drawer number\""
    660     ENDM
    661 DETCOM_MASKID MACRO ARG
    662     COBJ "detcom:dheader 4111.0 MASKID \"\ARG\" \"mask position\""
    663     ENDM
    664 DETCOM_MASK MACRO ARG
    665     COBJ "detcom:dheader 4112.0 MASK \"\ARG\" \"mask description\""
    666     ENDM
    667 DETCOM_MASKSLID MACRO ARG
    668     COBJ "detcom:dheader 4113.0 MASKSLID \"\ARG\" \"mask slider number\""
    669     ENDM
    670 DETCOM_DISPEL MACRO ARG
    671     COBJ "detcom:dheader 4201.0 DISPEL \"\ARG\" \"grating description\""
    672     ENDM
    673 DETCOM_DISPAXIS MACRO ARG
    674     COBJ "detcom:dheader 4202.0 DISPAXIS \"\ARG\" \"dispersion axis (1 or 2)\""
    675     ENDM
    676 DETCOM_DISPANG MACRO ARG
    677     COBJ "detcom:dheader 4203.0 DISPANG \"\ARG\" \"grating angle in degrees\""
    678     ENDM
    679 DETCOM_WAVELENG MACRO ARG
    680     COBJ "detcom:dheader 4204.0 WAVELENG \"\ARG\" \"central wavelength in angstroms\""
    681     ENDM
    682 DETCOM_ORDER MACRO ARG
    683     COBJ "detcom:dheader 4205.0 ORDER \"\ARG\" \"spectral order\""
    684     ENDM
    685 DETCOM_GRSETUP MACRO ARG
    686     COBJ "detcom:dheader 4206.0 GRSETUP \"\ARG\" \"grating setup constant in degrees\""
    687     ENDM
    688 DETCOM_OPENANG2 MACRO ARG
    689     COBJ "detcom:dheader 4207.0 OPENANG2 \"\ARG\" \"setup const in degrees (opening angle / 2)\""
    690     ENDM
    691 DETCOM_GRISMANG MACRO ARG
    692     COBJ "detcom:dheader 4208.0 GRISMANG \"\ARG\" \"rel.angle between prisms in degrees\""
    693     ENDM
    694 DETCOM_SLICER MACRO ARG
    695     COBJ "detcom:dheader 4210.0 SLICER \"\ARG\" \"image slicer in place\""
    696     ENDM
    697 DETCOM_HART1A MACRO ARG
    698     COBJ "detcom:dheader 4221.0 HART1A \"\ARG\" \"hartman mask 1a position OPEN/CLOSED\""
    699     ENDM
    700 DETCOM_HART1B MACRO ARG
    701     COBJ "detcom:dheader 4221.1 HART1B \"\ARG\" \"hartman mask 1b position OPEN/CLOSED\""
    702     ENDM
    703 DETCOM_HART2 MACRO ARG
    704     COBJ "detcom:dheader 4222.0 HART2 \"\ARG\" \"hartman mask 2 position OPEN/CLOSED\""
    705     ENDM
    706 DETCOM_HART3 MACRO ARG
    707     COBJ "detcom:dheader 4223.0 HART3 \"\ARG\" \"hartman mask 3 position OPEN/CLOSED\""
    708     ENDM
    709 DETCOM_HART4 MACRO ARG
    710     COBJ "detcom:dheader 4224.0 HART4 \"\ARG\" \"hartman mask 4 position OPEN/CLOSED\""
    711     ENDM
    712 DETCOM_COUDETRN MACRO ARG
    713     COBJ "detcom:dheader 4230.0 COUDETRN \"\ARG\" \"coude train color UV/RED/CAFE\""
    714     ENDM
    715 DETCOM_EMFILTER MACRO ARG
    716     COBJ "detcom:dheader 4240.0 EMFILTER \"\ARG\" \"exposure meter filter description\""
    717     ENDM
    718 DETCOM_EMCNTS MACRO ARG
    719     COBJ "detcom:dheader 4241.0 EMCNTS \"\ARG\" \"exposure meter counts at end\""
    720     ENDM
    721 DETCOM_MIDEXPTM MACRO ARG
    722     COBJ "detcom:dheader 4242.0 MIDEXPTM \"\ARG\" \"mid-exposure time (seconds)\""
    723     ENDM
    724 DETCOM_CAFE MACRO ARG
    725     COBJ "detcom:dheader 4290.0 CAFE \"\ARG\" \"CAFE is being used Null/INUSE\""
    726     ENDM
    727 DETCOM_AUXINST MACRO ARG
    728     COBJ "detcom:dheader 4301.0 AUXINST \"\ARG\" \"fabry perot etalon description\""
    729     ENDM
    730 DETCOM_NUMCHAN MACRO ARG
    731     COBJ "detcom:dheader 4303.0 NUMCHAN \"\ARG\" \"number of channels per scan\""
    732     ENDM
    733 DETCOM_CURCHAN MACRO ARG
    734     COBJ "detcom:dheader 4304.0 CURCHAN \"\ARG\" \"current channel\""
    735     ENDM
    736 DETCOM_BINVAL MACRO ARG
    737     COBJ "detcom:dheader 4305.0 BINVAL \"\ARG\" \"binary control value\""
    738     ENDM
    739 DETCOM_GRFPPOS MACRO ARG
    740     COBJ "detcom:dheader 4320.0 GRFPPOS \"\ARG\" \"GriF position of FP carriage - In/Out\""
    741     ENDM
    742 DETCOM_GRWAVORD MACRO ARG
    743     COBJ "detcom:dheader 4321.1 GRWAVORD \"\ARG\" \"GriF wavelength of order used to scan\""
    744     ENDM
    745 DETCOM_GRWAVCAL MACRO ARG
    746     COBJ "detcom:dheader 4321.2 GRWAVCAL \"\ARG\" \"GriF wavelength of calibration spectral line\""
    747     ENDM
    748 DETCOM_GRBCVCAL MACRO ARG
    749     COBJ "detcom:dheader 4321.3 GRBCVCAL \"\ARG\" \"GriF BCV at calibration line\""
    750     ENDM
    751 DETCOM_GRSCANTY MACRO ARG
    752     COBJ "detcom:dheader 4322.0 GRSCANTY \"\ARG\" \"GriF type of scan - bcv, wave, velocity\""
    753     ENDM
    754 DETCOM_GRWAVBEG MACRO ARG
    755     COBJ "detcom:dheader 4323.1 GRWAVBEG \"\ARG\" \"GriF wavelength at beginning of scan\""
    756     ENDM
    757 DETCOM_GRWAVSTP MACRO ARG
    758     COBJ "detcom:dheader 4323.2 GRWAVSTP \"\ARG\" \"GriF wavelength step\""
    759     ENDM
    760 DETCOM_GRWAVCUR MACRO ARG
    761     COBJ "detcom:dheader 4323.3 GRWAVCUR \"\ARG\" \"GriF current observed wavelength\""
    762     ENDM
    763 DETCOM_GRBCVBEG MACRO ARG
    764     COBJ "detcom:dheader 4324.1 GRBCVBEG \"\ARG\" \"GriF Binary Contol Value at beginning of scan\""
    765     ENDM
    766 DETCOM_GRBCVSTP MACRO ARG
    767     COBJ "detcom:dheader 4324.2 GRBCVSTP \"\ARG\" \"GriF BCV step\""
    768     ENDM
    769 DETCOM_GRBCVCUR MACRO ARG
    770     COBJ "detcom:dheader 4324.3 GRBCVCUR \"\ARG\" \"GriF applied BCV\""
    771     ENDM
    772 DETCOM_GRNBCHAN MACRO ARG
    773     COBJ "detcom:dheader 4325.1 GRNBCHAN \"\ARG\" \"GriF number of channels in scan\""
    774     ENDM
    775 DETCOM_GRCURRCH MACRO ARG
    776     COBJ "detcom:dheader 4325.2 GRCURRCH \"\ARG\" \"GriF current channel\""
    777     ENDM
    778 DETCOM_GRBCV_X MACRO ARG
    779     COBJ "detcom:dheader 4326.1 GRBCV_X \"\ARG\" \"GriF X Binary Control Value FP\""
    780     ENDM
    781 DETCOM_GRBCV_Y MACRO ARG
    782     COBJ "detcom:dheader 4326.2 GRBCV_Y \"\ARG\" \"GriF Y Binary Control Value FP\""
    783     ENDM
    784 DETCOM_CRUNID MACRO ARG
    785     COBJ "detcom:dheader 15101.0 CRUNID \"\ARG\" \"Elixir camera run ID\""
    786     ENDM
     1DETCOM_E MACRO ARG
     2    COBJ "detcom:dheader 0.0 E \"\ARG\" \"Standard FITS\""
     3    ENDM
     4DETCOM_N MACRO ARG
     5    COBJ "detcom:dheader 0.0 N \"\ARG\" \"\""
     6    ENDM
     7DETCOM_X MACRO ARG
     8    COBJ "detcom:dheader 1.0 X \"\ARG\" \"Bits per pixel\""
     9    ENDM
     10DETCOM_S MACRO ARG
     11    COBJ "detcom:dheader 2.0 S \"\ARG\" \"Number of axes\""
     12    ENDM
     13DETCOM_1 MACRO ARG
     14    COBJ "detcom:dheader 2.1 1 \"\ARG\" \"Number of pixel columns\""
     15    ENDM
     16DETCOM_2 MACRO ARG
     17    COBJ "detcom:dheader 2.2 2 \"\ARG\" \"Number of pixel rows\""
     18    ENDM
     19DETCOM_3 MACRO ARG
     20    COBJ "detcom:dheader 2.3 3 \"\ARG\" \"Number of stacked frames (cube)\""
     21    ENDM
     22DETCOM_D MACRO ARG
     23    COBJ "detcom:dheader 3.0 D \"\ARG\" \"File contains extensions\""
     24    ENDM
     25DETCOM_D MACRO ARG
     26    COBJ "detcom:dheader 3.1 D \"\ARG\" \"Number of extensions\""
     27    ENDM
     28DETCOM_S MACRO ARG
     29    COBJ "detcom:dheader 4.0 S \"\ARG\" \"File contains random groups records\""
     30    ENDM
     31DETCOM_T MACRO ARG
     32    COBJ "detcom:dheader 5.0 T \"\ARG\" \"Random parameters before each array in a group\""
     33    ENDM
     34DETCOM_T MACRO ARG
     35    COBJ "detcom:dheader 6.0 T \"\ARG\" \"Number of random groups\""
     36    ENDM
     37DETCOM_S MACRO ARG
     38    COBJ "detcom:dheader 7.0000 S \"\ARG\" \"Number of fields in a row\""
     39    ENDM
     40DETCOM_1 MACRO ARG
     41    COBJ "detcom:dheader 7.0011 1 \"\ARG\" \"Table format for field 1\""
     42    ENDM
     43DETCOM_1 MACRO ARG
     44    COBJ "detcom:dheader 7.0012 1 \"\ARG\" \"Start Column for field 1\""
     45    ENDM
     46DETCOM_2 MACRO ARG
     47    COBJ "detcom:dheader 7.0021 2 \"\ARG\" \"Table format for field 2\""
     48    ENDM
     49DETCOM_2 MACRO ARG
     50    COBJ "detcom:dheader 7.0022 2 \"\ARG\" \"Start Column for field 2\""
     51    ENDM
     52DETCOM_3 MACRO ARG
     53    COBJ "detcom:dheader 7.0031 3 \"\ARG\" \"Table format for field 3\""
     54    ENDM
     55DETCOM_3 MACRO ARG
     56    COBJ "detcom:dheader 7.0032 3 \"\ARG\" \"Start Column for field 3\""
     57    ENDM
     58DETCOM_4 MACRO ARG
     59    COBJ "detcom:dheader 7.0041 4 \"\ARG\" \"Table format for field 4\""
     60    ENDM
     61DETCOM_4 MACRO ARG
     62    COBJ "detcom:dheader 7.0042 4 \"\ARG\" \"Start Column for field 4\""
     63    ENDM
     64DETCOM_5 MACRO ARG
     65    COBJ "detcom:dheader 7.0051 5 \"\ARG\" \"Table format for field 5\""
     66    ENDM
     67DETCOM_5 MACRO ARG
     68    COBJ "detcom:dheader 7.0052 5 \"\ARG\" \"Start Column for field 5\""
     69    ENDM
     70DETCOM_S MACRO ARG
     71    COBJ "detcom:dheader 1.0 S \"\ARG\" \"\""
     72    ENDM
     73DETCOM_Q MACRO ARG
     74    COBJ "detcom:dheader 2.0 Q \"\ARG\" \"\""
     75    ENDM
     76DETCOM_T MACRO ARG
     77    COBJ "detcom:dheader 3.0 T \"\ARG\" \"\""
     78    ENDM
     79DETCOM_R MACRO ARG
     80    COBJ "detcom:dheader 4.0 R \"\ARG\" \"\""
     81    ENDM
     82DETCOM_E MACRO ARG
     83    COBJ "detcom:dheader 5.0 E \"\ARG\" \"\""
     84    ENDM
     85DETCOM_D MACRO ARG
     86    COBJ "detcom:dheader 6.0 D \"\ARG\" \"\""
     87    ENDM
     88DETCOM_E MACRO ARG
     89    COBJ "detcom:dheader 1.00 E \"\ARG\" \"Base filename at acquisition\""
     90    ENDM
     91DETCOM_E MACRO ARG
     92    COBJ "detcom:dheader 1.01 E \"\ARG\" \"Original directory name at acquisition\""
     93    ENDM
     94DETCOM_E MACRO ARG
     95    COBJ "detcom:dheader 1.10 E \"\ARG\" \"Extension name\""
     96    ENDM
     97DETCOM_R MACRO ARG
     98    COBJ "detcom:dheader 1.20 R \"\ARG\" \"Extension version\""
     99    ENDM
     100DETCOM_E MACRO ARG
     101    COBJ "detcom:dheader 4.00 E \"\ARG\" \"UTC Date of file creation\""
     102    ENDM
     103DETCOM_E MACRO ARG
     104    COBJ "detcom:dheader 4.10 E \"\ARG\" \"Local time in Hawaii\""
     105    ENDM
     106DETCOM_V MACRO ARG
     107    COBJ "detcom:dheader 7.00 V \"\ARG\" \"Image creation software version\""
     108    ENDM
     109DETCOM_R MACRO ARG
     110    COBJ "detcom:dheader 1.0 R \"\ARG\" \"Science Detector\""
     111    ENDM
     112DETCOM_E MACRO ARG
     113    COBJ "detcom:dheader 2.0 E \"\ARG\" \"Instrument Name\""
     114    ENDM
     115DETCOM_E MACRO ARG
     116    COBJ "detcom:dheader 2.1 E \"\ARG\" \"Instrument Mode\""
     117    ENDM
     118DETCOM_E MACRO ARG
     119    COBJ "detcom:dheader 2.0 E \"\ARG\" \"Total data pixels in full mosaic\""
     120    ENDM
     121DETCOM_R MACRO ARG
     122    COBJ "detcom:dheader 3.0 R \"\ARG\" \"\""
     123    ENDM
     124DETCOM_M MACRO ARG
     125    COBJ "detcom:dheader 5.0 M \"\ARG\" \"Binning factors\""
     126    ENDM
     127DETCOM_1 MACRO ARG
     128    COBJ "detcom:dheader 5.1 1 \"\ARG\" \"Binning factor along first axis\""
     129    ENDM
     130DETCOM_2 MACRO ARG
     131    COBJ "detcom:dheader 5.2 2 \"\ARG\" \"Binning factor along second axis\""
     132    ENDM
     133DETCOM_3 MACRO ARG
     134    COBJ "detcom:dheader 0.0 3 \"\ARG\" \"Pixel size for both axes (microns)\""
     135    ENDM
     136DETCOM_3 MACRO ARG
     137    COBJ "detcom:dheader 1.1 3 \"\ARG\" \"Pixel size for axis 1 (microns)\""
     138    ENDM
     139DETCOM_3 MACRO ARG
     140    COBJ "detcom:dheader 1.2 3 \"\ARG\" \"Pixel size for axis 2 (microns)\""
     141    ENDM
     142DETCOM_4 MACRO ARG
     143    COBJ "detcom:dheader 2.1 4 \"\ARG\" \"Pixel scale for axis 1 (arcsec/pixel)\""
     144    ENDM
     145DETCOM_4 MACRO ARG
     146    COBJ "detcom:dheader 2.2 4 \"\ARG\" \"Pixel scale for axis 2 (arcsec/pixel)\""
     147    ENDM
     148DETCOM_T MACRO ARG
     149    COBJ "detcom:dheader 0.0 T \"\ARG\" \"List of amplifiers for this image\""
     150    ENDM
     151DETCOM_E MACRO ARG
     152    COBJ "detcom:dheader 1.0 E \"\ARG\" \"Amplifier name\""
     153    ENDM
     154DETCOM_E MACRO ARG
     155    COBJ "detcom:dheader 0.0 E \"\ARG\" \"Detector imaging area size\""
     156    ENDM
     157DETCOM_C MACRO ARG
     158    COBJ "detcom:dheader 0.1 C \"\ARG\" \"Mosaic area of the detector\""
     159    ENDM
     160DETCOM_A MACRO ARG
     161    COBJ "detcom:dheader 0.11 A \"\ARG\" \"Mosaic area of the detector from Amp A\""
     162    ENDM
     163DETCOM_B MACRO ARG
     164    COBJ "detcom:dheader 0.12 B \"\ARG\" \"Mosaic area of the detector from Amp B\""
     165    ENDM
     166DETCOM_C MACRO ARG
     167    COBJ "detcom:dheader 0.13 C \"\ARG\" \"Mosaic area of the detector from Amp C\""
     168    ENDM
     169DETCOM_D MACRO ARG
     170    COBJ "detcom:dheader 0.14 D \"\ARG\" \"Mosaic area of the detector from Amp D\""
     171    ENDM
     172DETCOM_C MACRO ARG
     173    COBJ "detcom:dheader 0.2 C \"\ARG\" \"Imaging area of the detector\""
     174    ENDM
     175DETCOM_C MACRO ARG
     176    COBJ "detcom:dheader 0.3 C \"\ARG\" \"Overscan (bias) area of the detector\""
     177    ENDM
     178DETCOM_A MACRO ARG
     179    COBJ "detcom:dheader 1.11 A \"\ARG\" \"Section from Amp A (non-contig. bias excluded)\""
     180    ENDM
     181DETCOM_B MACRO ARG
     182    COBJ "detcom:dheader 1.12 B \"\ARG\" \"Section from Amp B (non-contig. bias excluded)\""
     183    ENDM
     184DETCOM_C MACRO ARG
     185    COBJ "detcom:dheader 1.13 C \"\ARG\" \"Section from Amp C (non-contig. bias excluded)\""
     186    ENDM
     187DETCOM_D MACRO ARG
     188    COBJ "detcom:dheader 1.14 D \"\ARG\" \"Section from Amp D (non-contig. bias excluded)\""
     189    ENDM
     190DETCOM_A MACRO ARG
     191    COBJ "detcom:dheader 1.21 A \"\ARG\" \"Overscan (bias) area from Amp A\""
     192    ENDM
     193DETCOM_B MACRO ARG
     194    COBJ "detcom:dheader 1.22 B \"\ARG\" \"Overscan (bias) area from Amp B\""
     195    ENDM
     196DETCOM_C MACRO ARG
     197    COBJ "detcom:dheader 1.23 C \"\ARG\" \"Overscan (bias) area from Amp C\""
     198    ENDM
     199DETCOM_D MACRO ARG
     200    COBJ "detcom:dheader 1.24 D \"\ARG\" \"Overscan (bias) area from Amp D\""
     201    ENDM
     202DETCOM_A MACRO ARG
     203    COBJ "detcom:dheader 1.31 A \"\ARG\" \"Section in full CCD for DSECA\""
     204    ENDM
     205DETCOM_B MACRO ARG
     206    COBJ "detcom:dheader 1.32 B \"\ARG\" \"Section in full CCD for DSECB\""
     207    ENDM
     208DETCOM_C MACRO ARG
     209    COBJ "detcom:dheader 1.33 C \"\ARG\" \"Section in full CCD for DSECC\""
     210    ENDM
     211DETCOM_D MACRO ARG
     212    COBJ "detcom:dheader 1.34 D \"\ARG\" \"Section in full CCD for DSECD\""
     213    ENDM
     214DETCOM_A MACRO ARG
     215    COBJ "detcom:dheader 1.41 A \"\ARG\" \"Imaging area from Amp A\""
     216    ENDM
     217DETCOM_B MACRO ARG
     218    COBJ "detcom:dheader 1.42 B \"\ARG\" \"Imaging area from Amp B\""
     219    ENDM
     220DETCOM_C MACRO ARG
     221    COBJ "detcom:dheader 1.43 C \"\ARG\" \"Imaging area from Amp C\""
     222    ENDM
     223DETCOM_D MACRO ARG
     224    COBJ "detcom:dheader 1.44 D \"\ARG\" \"Imaging area from Amp D\""
     225    ENDM
     226DETCOM_A MACRO ARG
     227    COBJ "detcom:dheader 1.51 A \"\ARG\" \"Trim section for Amp A\""
     228    ENDM
     229DETCOM_B MACRO ARG
     230    COBJ "detcom:dheader 1.52 B \"\ARG\" \"Trim section for Amp B\""
     231    ENDM
     232DETCOM_C MACRO ARG
     233    COBJ "detcom:dheader 1.53 C \"\ARG\" \"Trim section for Amp C\""
     234    ENDM
     235DETCOM_D MACRO ARG
     236    COBJ "detcom:dheader 1.54 D \"\ARG\" \"Trim section for Amp D\""
     237    ENDM
     238DETCOM_E MACRO ARG
     239    COBJ "detcom:dheader 0.1 E \"\ARG\" \"Name of the CCD (manufacturer reference)\""
     240    ENDM
     241DETCOM_K MACRO ARG
     242    COBJ "detcom:dheader 0.2 K \"\ARG\" \"Nickname of the CCD\""
     243    ENDM
     244DETCOM_N MACRO ARG
     245    COBJ "detcom:dheader 2.0 N \"\ARG\" \"Maximum linearity value (ADU)\""
     246    ENDM
     247DETCOM_A MACRO ARG
     248    COBJ "detcom:dheader 2.01 A \"\ARG\" \"Maximum linearity value for Amp A (ADU)\""
     249    ENDM
     250DETCOM_B MACRO ARG
     251    COBJ "detcom:dheader 2.02 B \"\ARG\" \"Maximum linearity value for Amp B (ADU)\""
     252    ENDM
     253DETCOM_C MACRO ARG
     254    COBJ "detcom:dheader 2.03 C \"\ARG\" \"Maximum linearity value for Amp C (ADU)\""
     255    ENDM
     256DETCOM_D MACRO ARG
     257    COBJ "detcom:dheader 2.04 D \"\ARG\" \"Maximum linearity value for Amp D (ADU)\""
     258    ENDM
     259DETCOM_E MACRO ARG
     260    COBJ "detcom:dheader 2.1 E \"\ARG\" \"Saturation value (ADU)\""
     261    ENDM
     262DETCOM_3 MACRO ARG
     263    COBJ "detcom:dheader 5.0 3 \"\ARG\" \"Amplifier gain (electrons/ADU)\""
     264    ENDM
     265DETCOM_3 MACRO ARG
     266    COBJ "detcom:dheader 5.01 3 \"\ARG\" \"Amp A gain (electrons/ADU)\""
     267    ENDM
     268DETCOM_3 MACRO ARG
     269    COBJ "detcom:dheader 5.02 3 \"\ARG\" \"Amp B gain (electrons/ADU)\""
     270    ENDM
     271DETCOM_3 MACRO ARG
     272    COBJ "detcom:dheader 5.03 3 \"\ARG\" \"Amp C gain (electrons/ADU)\""
     273    ENDM
     274DETCOM_3 MACRO ARG
     275    COBJ "detcom:dheader 5.04 3 \"\ARG\" \"Amp D gain (electrons/ADU)\""
     276    ENDM
     277DETCOM_3 MACRO ARG
     278    COBJ "detcom:dheader 6.0 3 \"\ARG\" \"Read noise (electrons)\""
     279    ENDM
     280DETCOM_3 MACRO ARG
     281    COBJ "detcom:dheader 6.01 3 \"\ARG\" \"Amp A read noise (electrons)\""
     282    ENDM
     283DETCOM_3 MACRO ARG
     284    COBJ "detcom:dheader 6.02 3 \"\ARG\" \"Amp B read noise (electrons)\""
     285    ENDM
     286DETCOM_3 MACRO ARG
     287    COBJ "detcom:dheader 6.03 3 \"\ARG\" \"Amp C read noise (electrons)\""
     288    ENDM
     289DETCOM_3 MACRO ARG
     290    COBJ "detcom:dheader 6.04 3 \"\ARG\" \"Amp D read noise (electrons)\""
     291    ENDM
     292DETCOM_5 MACRO ARG
     293    COBJ "detcom:dheader 7.0 5 \"\ARG\" \"Dark current (ADU/pixel/second)\""
     294    ENDM
     295DETCOM_5 MACRO ARG
     296    COBJ "detcom:dheader 7.1 5 \"\ARG\" \"Dark current (e-/pixel/hour)\""
     297    ENDM
     298DETCOM_S MACRO ARG
     299    COBJ "detcom:dheader 8.0 S \"\ARG\" \"QE%@wavelength in nm\""
     300    ENDM
     301DETCOM_V MACRO ARG
     302    COBJ "detcom:dheader 0.0 V \"\ARG\" \"Controller software DSPID and SERNO versions\""
     303    ENDM
     304DETCOM_T MACRO ARG
     305    COBJ "detcom:dheader 0.0 T \"\ARG\" \"Detector status\""
     306    ENDM
     307DETCOM_3 MACRO ARG
     308    COBJ "detcom:dheader 0.0 3 \"\ARG\" \"Detector temperature\""
     309    ENDM
     310DETCOM_P MACRO ARG
     311    COBJ "detcom:dheader 1.1 P \"\ARG\" \"\""
     312    ENDM
     313DETCOM_N MACRO ARG
     314    COBJ "detcom:dheader 1.2 N \"\ARG\" \"Canada-France-Hawaii Telescope\""
     315    ENDM
     316DETCOM_T MACRO ARG
     317    COBJ "detcom:dheader 3.0 T \"\ARG\" \"Telescope Control System status\""
     318    ENDM
     319DETCOM_S MACRO ARG
     320    COBJ "detcom:dheader 0.0 S \"\ARG\" \"Time System for DATExxxx\""
     321    ENDM
     322DETCOM_E MACRO ARG
     323    COBJ "detcom:dheader 2.0 E \"\ARG\" \"Time at start of observation (UT)\""
     324    ENDM
     325DETCOM_E MACRO ARG
     326    COBJ "detcom:dheader 4.0 E \"\ARG\" \"Sidereal time at start of observation\""
     327    ENDM
     328DETCOM_H MACRO ARG
     329    COBJ "detcom:dheader 1.0 H \"\ARG\" \"Equinox of coordinates\""
     330    ENDM
     331DETCOM_X MACRO ARG
     332    COBJ "detcom:dheader 1.1 X \"\ARG\" \"Equinox of coordinates\""
     333    ENDM
     334DETCOM_S MACRO ARG
     335    COBJ "detcom:dheader 2.0 S \"\ARG\" \"Coordinate system for equinox (FK4/FK5/GAPPT)\""
     336    ENDM
     337DETCOM_A MACRO ARG
     338    COBJ "detcom:dheader 2.1 A \"\ARG\" \"Object right ascension\""
     339    ENDM
     340DETCOM_C MACRO ARG
     341    COBJ "detcom:dheader 2.2 C \"\ARG\" \"Object declination\""
     342    ENDM
     343DETCOM_1 MACRO ARG
     344    COBJ "detcom:dheader 5.211 1 \"\ARG\" \"WCS Coordinate type\""
     345    ENDM
     346DETCOM_2 MACRO ARG
     347    COBJ "detcom:dheader 5.212 2 \"\ARG\" \"WCS Coordinate type\""
     348    ENDM
     349DETCOM_6 MACRO ARG
     350    COBJ "detcom:dheader 5.411 6 \"\ARG\" \"WCS Coordinate scale matrix\""
     351    ENDM
     352DETCOM_6 MACRO ARG
     353    COBJ "detcom:dheader 5.412 6 \"\ARG\" \"WCS Coordinate scale matrix\""
     354    ENDM
     355DETCOM_6 MACRO ARG
     356    COBJ "detcom:dheader 5.421 6 \"\ARG\" \"WCS Coordinate scale matrix\""
     357    ENDM
     358DETCOM_6 MACRO ARG
     359    COBJ "detcom:dheader 5.422 6 \"\ARG\" \"WCS Coordinate scale matrix\""
     360    ENDM
     361DETCOM_R MACRO ARG
     362    COBJ "detcom:dheader 0.0 R \"\ARG\" \"TCS Number of guiders\""
     363    ENDM
     364DETCOM_R MACRO ARG
     365    COBJ "detcom:dheader 0.01 R \"\ARG\" \"TCS number of guide stars/probes in use\""
     366    ENDM
     367DETCOM_E MACRO ARG
     368    COBJ "detcom:dheader 0.1 E \"\ARG\" \"TCS guider name\""
     369    ENDM
     370DETCOM_N MACRO ARG
     371    COBJ "detcom:dheader 0.21 N \"\ARG\" \"TCS guider equinox\""
     372    ENDM
     373DETCOM_C MACRO ARG
     374    COBJ "detcom:dheader 0.22 C \"\ARG\" \"TCS guider system for equinox\""
     375    ENDM
     376DETCOM_A MACRO ARG
     377    COBJ "detcom:dheader 0.23 A \"\ARG\" \"TCS guider right ascension\""
     378    ENDM
     379DETCOM_C MACRO ARG
     380    COBJ "detcom:dheader 0.24 C \"\ARG\" \"TCS guider declination\""
     381    ENDM
     382DETCOM_N MACRO ARG
     383    COBJ "detcom:dheader 0.3 N \"\ARG\" \"TCS guider object name\""
     384    ENDM
     385DETCOM_X MACRO ARG
     386    COBJ "detcom:dheader 0.6 X \"\ARG\" \"TCS guider flux\""
     387    ENDM
     388DETCOM_X MACRO ARG
     389    COBJ "detcom:dheader 0.8 X \"\ARG\" \"TCS total sky flux\""
     390    ENDM
     391DETCOM_1 MACRO ARG
     392    COBJ "detcom:dheader 1.1 1 \"\ARG\" \"TCS guider #1 identification\""
     393    ENDM
     394DETCOM_1 MACRO ARG
     395    COBJ "detcom:dheader 1.21 1 \"\ARG\" \"TCS guider #1 equinox\""
     396    ENDM
     397DETCOM_1 MACRO ARG
     398    COBJ "detcom:dheader 1.22 1 \"\ARG\" \"TCS guider #1 system for equinox\""
     399    ENDM
     400DETCOM_1 MACRO ARG
     401    COBJ "detcom:dheader 1.23 1 \"\ARG\" \"TCS guider #1 right ascension\""
     402    ENDM
     403DETCOM_1 MACRO ARG
     404    COBJ "detcom:dheader 1.24 1 \"\ARG\" \"TCS guider #1 declination\""
     405    ENDM
     406DETCOM_1 MACRO ARG
     407    COBJ "detcom:dheader 1.3 1 \"\ARG\" \"TCS guider #1 object name\""
     408    ENDM
     409DETCOM_1 MACRO ARG
     410    COBJ "detcom:dheader 1.6 1 \"\ARG\" \"TCS guider #1 flux\""
     411    ENDM
     412DETCOM_2 MACRO ARG
     413    COBJ "detcom:dheader 2.1 2 \"\ARG\" \"TCS guider #2 identification\""
     414    ENDM
     415DETCOM_2 MACRO ARG
     416    COBJ "detcom:dheader 2.21 2 \"\ARG\" \"TCS guider #2 equinox\""
     417    ENDM
     418DETCOM_2 MACRO ARG
     419    COBJ "detcom:dheader 2.22 2 \"\ARG\" \"TCS guider #2 system for equinox\""
     420    ENDM
     421DETCOM_2 MACRO ARG
     422    COBJ "detcom:dheader 2.23 2 \"\ARG\" \"TCS guider #2 right ascension\""
     423    ENDM
     424DETCOM_2 MACRO ARG
     425    COBJ "detcom:dheader 2.24 2 \"\ARG\" \"TCS guider #2 declination\""
     426    ENDM
     427DETCOM_2 MACRO ARG
     428    COBJ "detcom:dheader 2.3 2 \"\ARG\" \"TCS guider #2 object name\""
     429    ENDM
     430DETCOM_2 MACRO ARG
     431    COBJ "detcom:dheader 2.6 2 \"\ARG\" \"TCS guider #2 flux\""
     432    ENDM
     433DETCOM_3 MACRO ARG
     434    COBJ "detcom:dheader 3.1 3 \"\ARG\" \"TCS guider #3 identification\""
     435    ENDM
     436DETCOM_3 MACRO ARG
     437    COBJ "detcom:dheader 3.21 3 \"\ARG\" \"TCS guider #3 equinox\""
     438    ENDM
     439DETCOM_3 MACRO ARG
     440    COBJ "detcom:dheader 3.22 3 \"\ARG\" \"TCS guider #3 system for equinox\""
     441    ENDM
     442DETCOM_3 MACRO ARG
     443    COBJ "detcom:dheader 3.23 3 \"\ARG\" \"TCS guider #3 right ascension\""
     444    ENDM
     445DETCOM_3 MACRO ARG
     446    COBJ "detcom:dheader 3.24 3 \"\ARG\" \"TCS guider #3 declination\""
     447    ENDM
     448DETCOM_3 MACRO ARG
     449    COBJ "detcom:dheader 3.3 3 \"\ARG\" \"TCS guider #3 object name\""
     450    ENDM
     451DETCOM_3 MACRO ARG
     452    COBJ "detcom:dheader 3.6 3 \"\ARG\" \"TCS guider #3 flux\""
     453    ENDM
     454DETCOM_4 MACRO ARG
     455    COBJ "detcom:dheader 4.1 4 \"\ARG\" \"TCS guider #4 identification\""
     456    ENDM
     457DETCOM_4 MACRO ARG
     458    COBJ "detcom:dheader 4.21 4 \"\ARG\" \"TCS guider #4 equinox\""
     459    ENDM
     460DETCOM_4 MACRO ARG
     461    COBJ "detcom:dheader 4.22 4 \"\ARG\" \"TCS guider #4 system for equinox\""
     462    ENDM
     463DETCOM_4 MACRO ARG
     464    COBJ "detcom:dheader 4.23 4 \"\ARG\" \"TCS guider #4 right ascension\""
     465    ENDM
     466DETCOM_4 MACRO ARG
     467    COBJ "detcom:dheader 4.24 4 \"\ARG\" \"TCS guider #4 declination\""
     468    ENDM
     469DETCOM_4 MACRO ARG
     470    COBJ "detcom:dheader 4.3 4 \"\ARG\" \"TCS guider #4 object name\""
     471    ENDM
     472DETCOM_4 MACRO ARG
     473    COBJ "detcom:dheader 4.6 4 \"\ARG\" \"TCS guider #4 flux\""
     474    ENDM
     475DETCOM_D MACRO ARG
     476    COBJ "detcom:dheader 0.0 D \"\ARG\" \"Telescope focus in use\""
     477    ENDM
     478DETCOM_F MACRO ARG
     479    COBJ "detcom:dheader 0.1 F \"\ARG\" \"Telescope focus in use\""
     480    ENDM
     481DETCOM_S MACRO ARG
     482    COBJ "detcom:dheader 1.0 S \"\ARG\" \"Telescope focus encoder readout\""
     483    ENDM
     484DETCOM_S MACRO ARG
     485    COBJ "detcom:dheader 1.1 S \"\ARG\" \"Telescope focus encoder readout\""
     486    ENDM
     487DETCOM_E MACRO ARG
     488    COBJ "detcom:dheader 0.4 E \"\ARG\" \"ISU control state (Off/Only/TCS/Full/Frozen)\""
     489    ENDM
     490DETCOM_E MACRO ARG
     491    COBJ "detcom:dheader 0.4 E \"\ARG\" \"FSA control state (Off/On/Paused)\""
     492    ENDM
     493DETCOM_E MACRO ARG
     494    COBJ "detcom:dheader 0.5 E \"\ARG\" \"FSA number of actual moves in last 10 minutes\""
     495    ENDM
     496DETCOM_C MACRO ARG
     497    COBJ "detcom:dheader 0.11 C \"\ARG\" \"TCS GPS read out in BCD\""
     498    ENDM
     499DETCOM_S MACRO ARG
     500    COBJ "detcom:dheader 0.13 S \"\ARG\" \"TCS RBUSS clock time\""
     501    ENDM
     502DETCOM_S MACRO ARG
     503    COBJ "detcom:dheader 0.14 S \"\ARG\" \"TCS EPICS clock time\""
     504    ENDM
     505DETCOM_E MACRO ARG
     506    COBJ "detcom:dheader 0.15 E \"\ARG\" \"TCS acquisition mode - T/O/G/g for t/o/g coords\""
     507    ENDM
     508DETCOM_A MACRO ARG
     509    COBJ "detcom:dheader 0.51 A \"\ARG\" \"TCS hour angle encoder bits reading\""
     510    ENDM
     511DETCOM_C MACRO ARG
     512    COBJ "detcom:dheader 0.52 C \"\ARG\" \"TCS declination encoder bits reading\""
     513    ENDM
     514DETCOM_P MACRO ARG
     515    COBJ "detcom:dheader 1.0 P \"\ARG\" \"AOB closed loop Open/Closed\""
     516    ENDM
     517DETCOM_S MACRO ARG
     518    COBJ "detcom:dheader 3.0 S \"\ARG\" \"Loop type \"Nested\"/\"Tip/Tilt\"/\"Single\"\""
     519    ENDM
     520DETCOM_T MACRO ARG
     521    COBJ "detcom:dheader 5.0 T \"\ARG\" \"Optimized loop control True/False\""
     522    ENDM
     523DETCOM_T MACRO ARG
     524    COBJ "detcom:dheader 6.0 T \"\ARG\" \"WFS optical gain\""
     525    ENDM
     526DETCOM_T MACRO ARG
     527    COBJ "detcom:dheader 2.0 T \"\ARG\" \"Total flux count on WFS\""
     528    ENDM
     529DETCOM_S MACRO ARG
     530    COBJ "detcom:dheader 1.0 S \"\ARG\" \"AOB ADC position In/Out\""
     531    ENDM
     532DETCOM_D MACRO ARG
     533    COBJ "detcom:dheader 4.0 D \"\ARG\" \"Beam splitter ID\""
     534    ENDM
     535DETCOM_P MACRO ARG
     536    COBJ "detcom:dheader 5.0 P \"\ARG\" \"Beam splitter description\""
     537    ENDM
     538DETCOM_E MACRO ARG
     539    COBJ "detcom:dheader 6.0 E \"\ARG\" \"AOB mirror slide \"F/20\"/\"F/8\"\""
     540    ENDM
     541DETCOM_D MACRO ARG
     542    COBJ "detcom:dheader 7.0 D \"\ARG\" \"WFS ND filter position\""
     543    ENDM
     544DETCOM_N MACRO ARG
     545    COBJ "detcom:dheader 0.0 N \"\ARG\" \"flatfield lamp status ON/OFF\""
     546    ENDM
     547DETCOM_P MACRO ARG
     548    COBJ "detcom:dheader 1.0 P \"\ARG\" \"flatfield lamp intensity\""
     549    ENDM
     550DETCOM_N MACRO ARG
     551    COBJ "detcom:dheader 0.0 N \"\ARG\" \"comparison lamp 0 status ON/OFF\""
     552    ENDM
     553DETCOM_0 MACRO ARG
     554    COBJ "detcom:dheader 0.1 0 \"\ARG\" \"comparison lamp 0 description\""
     555    ENDM
     556DETCOM_N MACRO ARG
     557    COBJ "detcom:dheader 1.0 N \"\ARG\" \"comparison lamp 1 status ON/OFF\""
     558    ENDM
     559DETCOM_1 MACRO ARG
     560    COBJ "detcom:dheader 1.1 1 \"\ARG\" \"comparison lamp 1 description\""
     561    ENDM
     562DETCOM_N MACRO ARG
     563    COBJ "detcom:dheader 2.0 N \"\ARG\" \"comparison lamp 2 status ON/OFF\""
     564    ENDM
     565DETCOM_2 MACRO ARG
     566    COBJ "detcom:dheader 2.1 2 \"\ARG\" \"comparison lamp 2 description\""
     567    ENDM
     568DETCOM_N MACRO ARG
     569    COBJ "detcom:dheader 3.0 N \"\ARG\" \"comparison lamp 3 status ON/OFF\""
     570    ENDM
     571DETCOM_3 MACRO ARG
     572    COBJ "detcom:dheader 3.1 3 \"\ARG\" \"comparison lamp 3 description\""
     573    ENDM
     574DETCOM_0 MACRO ARG
     575    COBJ "detcom:dheader 0.0 0 \"\ARG\" \"lamp 0 ON/OFF\""
     576    ENDM
     577DETCOM_1 MACRO ARG
     578    COBJ "detcom:dheader 1.0 1 \"\ARG\" \"lamp 1 ON/OFF\""
     579    ENDM
     580DETCOM_2 MACRO ARG
     581    COBJ "detcom:dheader 2.0 2 \"\ARG\" \"lamp 2 ON/OFF\""
     582    ENDM
     583DETCOM_3 MACRO ARG
     584    COBJ "detcom:dheader 3.0 3 \"\ARG\" \"lamp 3 ON/OFF\""
     585    ENDM
     586DETCOM_4 MACRO ARG
     587    COBJ "detcom:dheader 4.0 4 \"\ARG\" \"lamp 4 ON/OFF\""
     588    ENDM
     589DETCOM_5 MACRO ARG
     590    COBJ "detcom:dheader 5.0 5 \"\ARG\" \"lamp 5 ON/OFF\""
     591    ENDM
     592DETCOM_6 MACRO ARG
     593    COBJ "detcom:dheader 6.0 6 \"\ARG\" \"lamp 6 ON/OFF\""
     594    ENDM
     595DETCOM_7 MACRO ARG
     596    COBJ "detcom:dheader 7.0 7 \"\ARG\" \"lamp 7 ON/OFF\""
     597    ENDM
     598DETCOM_8 MACRO ARG
     599    COBJ "detcom:dheader 8.0 8 \"\ARG\" \"lamp 8 ON/OFF\""
     600    ENDM
     601DETCOM_9 MACRO ARG
     602    COBJ "detcom:dheader 9.0 9 \"\ARG\" \"lamp 9 ON/OFF\""
     603    ENDM
     604DETCOM_D MACRO ARG
     605    COBJ "detcom:dheader 0.1 D \"\ARG\" \"wheel position\""
     606    ENDM
     607DETCOM_R MACRO ARG
     608    COBJ "detcom:dheader 0.2 R \"\ARG\" \"description of filter\""
     609    ENDM
     610DETCOM_3 MACRO ARG
     611    COBJ "detcom:dheader 0.3 3 \"\ARG\" \"filter bandwidth\""
     612    ENDM
     613DETCOM_3 MACRO ARG
     614    COBJ "detcom:dheader 0.4 3 \"\ARG\" \"filter wavelength\""
     615    ENDM
     616DETCOM_5 MACRO ARG
     617    COBJ "detcom:dheader 0.5 5 \"\ARG\" \"lower bound of filter (units/%?)\""
     618    ENDM
     619DETCOM_5 MACRO ARG
     620    COBJ "detcom:dheader 0.6 5 \"\ARG\" \"upper bound of filter (units/%?)\""
     621    ENDM
     622DETCOM_D MACRO ARG
     623    COBJ "detcom:dheader 0.7 D \"\ARG\" \"filter drawer number\""
     624    ENDM
     625DETCOM_D MACRO ARG
     626    COBJ "detcom:dheader 0.1 D \"\ARG\" \"'wheel' A position\""
     627    ENDM
     628DETCOM_E MACRO ARG
     629    COBJ "detcom:dheader 0.2 E \"\ARG\" \"description of filter\""
     630    ENDM
     631DETCOM_4 MACRO ARG
     632    COBJ "detcom:dheader 0.5 4 \"\ARG\" \"lower bound of filter A (units/%?)\""
     633    ENDM
     634DETCOM_4 MACRO ARG
     635    COBJ "detcom:dheader 0.6 4 \"\ARG\" \"upper bound of filter A (units/%?)\""
     636    ENDM
     637DETCOM_D MACRO ARG
     638    COBJ "detcom:dheader 0.1 D \"\ARG\" \"'wheel' B position\""
     639    ENDM
     640DETCOM_E MACRO ARG
     641    COBJ "detcom:dheader 0.2 E \"\ARG\" \"description of filter\""
     642    ENDM
     643DETCOM_4 MACRO ARG
     644    COBJ "detcom:dheader 0.5 4 \"\ARG\" \"lower bound of filter B (units/%?)\""
     645    ENDM
     646DETCOM_4 MACRO ARG
     647    COBJ "detcom:dheader 0.6 4 \"\ARG\" \"upper bound of filter B (units/%?)\""
     648    ENDM
     649DETCOM_7 MACRO ARG
     650    COBJ "detcom:dheader 1.0 7 \"\ARG\" \"internal instrument focus value\""
     651    ENDM
     652DETCOM_D MACRO ARG
     653    COBJ "detcom:dheader 1.0 D \"\ARG\" \"grism position\""
     654    ENDM
     655DETCOM_M MACRO ARG
     656    COBJ "detcom:dheader 2.0 M \"\ARG\" \"grism description\""
     657    ENDM
     658DETCOM_D MACRO ARG
     659    COBJ "detcom:dheader 3.0 D \"\ARG\" \"grism drawer number\""
     660    ENDM
     661DETCOM_D MACRO ARG
     662    COBJ "detcom:dheader 1.0 D \"\ARG\" \"mask position\""
     663    ENDM
     664DETCOM_K MACRO ARG
     665    COBJ "detcom:dheader 2.0 K \"\ARG\" \"mask description\""
     666    ENDM
     667DETCOM_D MACRO ARG
     668    COBJ "detcom:dheader 3.0 D \"\ARG\" \"mask slider number\""
     669    ENDM
     670DETCOM_L MACRO ARG
     671    COBJ "detcom:dheader 1.0 L \"\ARG\" \"grating description\""
     672    ENDM
     673DETCOM_S MACRO ARG
     674    COBJ "detcom:dheader 2.0 S \"\ARG\" \"dispersion axis (1 or 2)\""
     675    ENDM
     676DETCOM_6 MACRO ARG
     677    COBJ "detcom:dheader 3.0 6 \"\ARG\" \"grating angle in degrees\""
     678    ENDM
     679DETCOM_0 MACRO ARG
     680    COBJ "detcom:dheader 4.0 0 \"\ARG\" \"central wavelength in angstroms\""
     681    ENDM
     682DETCOM_R MACRO ARG
     683    COBJ "detcom:dheader 5.0 R \"\ARG\" \"spectral order\""
     684    ENDM
     685DETCOM_5 MACRO ARG
     686    COBJ "detcom:dheader 6.0 5 \"\ARG\" \"grating setup constant in degrees\""
     687    ENDM
     688DETCOM_7 MACRO ARG
     689    COBJ "detcom:dheader 7.0 7 \"\ARG\" \"setup const in degrees (opening angle / 2)\""
     690    ENDM
     691DETCOM_5 MACRO ARG
     692    COBJ "detcom:dheader 8.0 5 \"\ARG\" \"rel.angle between prisms in degrees\""
     693    ENDM
     694DETCOM_R MACRO ARG
     695    COBJ "detcom:dheader 0.0 R \"\ARG\" \"image slicer in place\""
     696    ENDM
     697DETCOM_A MACRO ARG
     698    COBJ "detcom:dheader 1.0 A \"\ARG\" \"hartman mask 1a position OPEN/CLOSED\""
     699    ENDM
     700DETCOM_B MACRO ARG
     701    COBJ "detcom:dheader 1.1 B \"\ARG\" \"hartman mask 1b position OPEN/CLOSED\""
     702    ENDM
     703DETCOM_2 MACRO ARG
     704    COBJ "detcom:dheader 2.0 2 \"\ARG\" \"hartman mask 2 position OPEN/CLOSED\""
     705    ENDM
     706DETCOM_3 MACRO ARG
     707    COBJ "detcom:dheader 3.0 3 \"\ARG\" \"hartman mask 3 position OPEN/CLOSED\""
     708    ENDM
     709DETCOM_4 MACRO ARG
     710    COBJ "detcom:dheader 4.0 4 \"\ARG\" \"hartman mask 4 position OPEN/CLOSED\""
     711    ENDM
     712DETCOM_N MACRO ARG
     713    COBJ "detcom:dheader 0.0 N \"\ARG\" \"coude train color UV/RED/CAFE\""
     714    ENDM
     715DETCOM_R MACRO ARG
     716    COBJ "detcom:dheader 0.0 R \"\ARG\" \"exposure meter filter description\""
     717    ENDM
     718DETCOM_S MACRO ARG
     719    COBJ "detcom:dheader 1.0 S \"\ARG\" \"exposure meter counts at end\""
     720    ENDM
     721DETCOM_M MACRO ARG
     722    COBJ "detcom:dheader 2.0 M \"\ARG\" \"mid-exposure time (seconds)\""
     723    ENDM
     724DETCOM_E MACRO ARG
     725    COBJ "detcom:dheader 0.0 E \"\ARG\" \"CAFE is being used Null/INUSE\""
     726    ENDM
     727DETCOM_T MACRO ARG
     728    COBJ "detcom:dheader 1.0 T \"\ARG\" \"fabry perot etalon description\""
     729    ENDM
     730DETCOM_N MACRO ARG
     731    COBJ "detcom:dheader 3.0 N \"\ARG\" \"number of channels per scan\""
     732    ENDM
     733DETCOM_N MACRO ARG
     734    COBJ "detcom:dheader 4.0 N \"\ARG\" \"current channel\""
     735    ENDM
     736DETCOM_L MACRO ARG
     737    COBJ "detcom:dheader 5.0 L \"\ARG\" \"binary control value\""
     738    ENDM
     739DETCOM_S MACRO ARG
     740    COBJ "detcom:dheader 0.0 S \"\ARG\" \"GriF position of FP carriage - In/Out\""
     741    ENDM
     742DETCOM_6 MACRO ARG
     743    COBJ "detcom:dheader 1.1 6 \"\ARG\" \"GriF wavelength of order used to scan\""
     744    ENDM
     745DETCOM_6 MACRO ARG
     746    COBJ "detcom:dheader 1.2 6 \"\ARG\" \"GriF wavelength of calibration spectral line\""
     747    ENDM
     748DETCOM_6 MACRO ARG
     749    COBJ "detcom:dheader 1.3 6 \"\ARG\" \"GriF BCV at calibration line\""
     750    ENDM
     751DETCOM_Y MACRO ARG
     752    COBJ "detcom:dheader 2.0 Y \"\ARG\" \"GriF type of scan - bcv, wave, velocity\""
     753    ENDM
     754DETCOM_6 MACRO ARG
     755    COBJ "detcom:dheader 3.1 6 \"\ARG\" \"GriF wavelength at beginning of scan\""
     756    ENDM
     757DETCOM_6 MACRO ARG
     758    COBJ "detcom:dheader 3.2 6 \"\ARG\" \"GriF wavelength step\""
     759    ENDM
     760DETCOM_6 MACRO ARG
     761    COBJ "detcom:dheader 3.3 6 \"\ARG\" \"GriF current observed wavelength\""
     762    ENDM
     763DETCOM_6 MACRO ARG
     764    COBJ "detcom:dheader 4.1 6 \"\ARG\" \"GriF Binary Contol Value at beginning of scan\""
     765    ENDM
     766DETCOM_6 MACRO ARG
     767    COBJ "detcom:dheader 4.2 6 \"\ARG\" \"GriF BCV step\""
     768    ENDM
     769DETCOM_R MACRO ARG
     770    COBJ "detcom:dheader 4.3 R \"\ARG\" \"GriF applied BCV\""
     771    ENDM
     772DETCOM_N MACRO ARG
     773    COBJ "detcom:dheader 5.1 N \"\ARG\" \"GriF number of channels in scan\""
     774    ENDM
     775DETCOM_H MACRO ARG
     776    COBJ "detcom:dheader 5.2 H \"\ARG\" \"GriF current channel\""
     777    ENDM
     778DETCOM_X MACRO ARG
     779    COBJ "detcom:dheader 6.1 X \"\ARG\" \"GriF X Binary Control Value FP\""
     780    ENDM
     781DETCOM_Y MACRO ARG
     782    COBJ "detcom:dheader 6.2 Y \"\ARG\" \"GriF Y Binary Control Value FP\""
     783    ENDM
     784DETCOM_D MACRO ARG
     785    COBJ "detcom:dheader 1.0 D \"\ARG\" \"Elixir camera run ID\""
     786    ENDM
  • trunk/ippMonitor

  • trunk/ippScripts/scripts/camera_exp.pl

    r41352 r41705  
    3939    exit($PS_EXIT_CONFIG_ERROR);
    4040}
     41
     42my @ARGS = @ARGV;
    4143
    4244my ( $exp_tag, $cam_id, $camera, $outroot, $dbname, $reduction, $dvodb, $verbose, $no_update,
     
    9698    print "\n\n";
    9799    print "Starting script $0 on $host\n\n";
    98     print "COMMAND IS: @ARGV\n\n";
     100    print "FULL COMMAND: $0 @ARGS\n\n";
    99101}
    100102
  • trunk/ippScripts/scripts/diff_skycell.pl

    r39947 r41705  
    4040my ($skycell_id, $diff_skyfile_id);
    4141my ($use_convolved);
     42
     43my @ARGS = @ARGV;
    4244
    4345GetOptions(
     
    8486}
    8587$ipprc->redirect_to_logfile($logDest) or my_die( "Unable to redirect output", $diff_id, $skycell_id, $PS_EXIT_SYS_ERROR ) if $redirect;
     88print "FULL COMMAND: $0 @ARGS\n\n";
    8689
    8790my $source_id = $ipprc->source_id($dbname, $PS_TABLE_ID_DIFF);
  • trunk/ippScripts/scripts/fake_imfile.pl

    r27718 r41705  
    5050    exit($PS_EXIT_CONFIG_ERROR);
    5151}
     52
     53my @ARGS = @ARGV;
    5254
    5355# Parse the command-line arguments
     
    8486my $logDest = $ipprc->filename("LOG.IMFILE", $outroot, $class_id) or &my_die("Missing entry from camera config", $exp_id, $fake_id, $class_id, $PS_EXIT_CONFIG_ERROR);
    8587$ipprc->redirect_output($logDest) or my_die( "Unable to redirect output", $exp_id, $fake_id, $class_id, $PS_EXIT_SYS_ERROR ) if $redirect;
     88print "FULL COMMAND: $0 @ARGS\n\n";
    8689
    8790# Recipes to use based on reduction class
  • trunk/ippScripts/scripts/ipp_serial_diff.pl

    r21020 r41705  
    1717
    1818my $ipprc = PS::IPP::Config->new(); # IPP configuration
     19
     20my @ARGS = @ARGV;
    1921
    2022my ($dbname,                    # Database name to use
     
    5355}
    5456
     57print "FULL COMMAND: $0 @ARGS\n\n";
    5558
    5659# Image differencing
  • trunk/ippScripts/scripts/ipp_serial_warp.pl

    r18512 r41705  
    1717
    1818my $ipprc = PS::IPP::Config->new(); # IPP configuration
     19
     20my @ARGS = @ARGV;
    1921
    2022my ($dbname,                    # Database name to use
     
    5456    exit($PS_EXIT_CONFIG_ERROR);
    5557}
     58
     59print "FULL COMMAND: $0 @ARGS\n\n";
    5660
    5761
  • trunk/ippScripts/scripts/sc_prepare_diff.pl

    r38168 r41705  
    2828    exit($PS_EXIT_CONFIG_ERROR);
    2929}
     30
     31my @ARGS = @ARGV;
    3032
    3133my ($remote_id,$diff_id,$camera,$dbname,$verbose,$path_base,$no_update,$cmd_recipe);
     
    5052    defined($dbname);
    5153
     54print "FULL COMMAND: $0 @ARGS\n\n";
    5255
    5356# Hard coded values
  • trunk/ippScripts/scripts/sc_prepare_warp.pl

    r38168 r41705  
    2828    exit($PS_EXIT_CONFIG_ERROR);
    2929}
     30
     31my @ARGS = @ARGV;
    3032
    3133my ($remote_id,$warp_id,$camera,$dbname,$verbose,$path_base,$no_update,$cmd_recipe);
     
    5052    defined($dbname);
    5153
     54print "FULL COMMAND: $0 @ARGS\n\n";
    5255
    5356# Hard coded values
  • trunk/ippScripts/scripts/warp_overlap.pl

    r41653 r41705  
    3434    exit($PS_EXIT_CONFIG_ERROR);
    3535}
     36
     37my @ARGS = @ARGV;
    3638
    3739my ($warp_id, $camera, $tess_dir, $dbname, $verbose, $no_update, $no_op, $logfile, $save_temps);
     
    5860my $ipprc = PS::IPP::Config->new( $camera ) or my_die( "Unable to set up", $warp_id, $PS_EXIT_CONFIG_ERROR ); # IPP configuration
    5961$ipprc->redirect_to_logfile($logfile) or my_die( "Unable to redirect output", $warp_id, $PS_EXIT_SYS_ERROR ) if $logfile;
     62print "FULL COMMAND: $0 @ARGS\n\n";
    6063
    6164&my_die("Tessellation identifier not provided: $tess_dir", $warp_id, $PS_EXIT_SYS_ERROR) unless $tess_dir ne "NULL";
  • trunk/ippScripts/scripts/warp_skycell.pl

    r39186 r41705  
    3636    exit($PS_EXIT_CONFIG_ERROR);
    3737}
     38
     39my @ARGS = @ARGV;
    3840
    3941my ($warp_id, $skycell_id, $warp_skyfile_id, $tess_dir, $reduction, $camera, $dbname, $outroot, $threads, $run_state, $magicked, $verbose, $no_update, $no_op, $redirect, $save_temps);
     
    9294
    9395$ipprc->redirect_to_logfile($logDest) or my_die( "Unable to redirect output", $warp_id, $skycell_id, $tess_dir, $PS_EXIT_SYS_ERROR ) if $redirect;
     96print "FULL COMMAND: $0 @ARGS\n\n";
    9497
    9598# Recipes to use based on reduction class
  • trunk/ippTools

  • trunk/ippTools/share

  • trunk/ippTools/src

  • trunk/ippconfig

  • trunk/ippconfig/gpc1/psastro.config

    r41553 r41705  
    129129DVO.GETSTAR.PHOTCODE        STR      i
    130130DVO.GETSTAR.MAX.RHO         F32      10000.0
    131 DVO.GETSTAR.MIN.MAG         F32      2.0
    132 DVO.GETSTAR.MIN.MAG.INST    F32     -35.0
     131DVO.GETSTAR.MIN.MAG         F32     -10.0
     132DVO.GETSTAR.MIN.MAG.INST    F32     -45.0
    133133
    134134# rather than mean, use specified EDGE:
     
    184184REFSTAR_MASK                    BOOL TRUE
    185185REFSTAR_MASK_MAX_MAG            F32 -15.0
    186 REFSTAR_MASK_SATSTAR_MAG_MAX    F32 -15.0
    187 REFSTAR_MASK_SATSTAR_MAG_SLOPE  F32  10.15
    188186
    189187# TdB20200430: Updated satspike position angle offset
  • trunk/ippconfig/gpc2/Makefile.am

    r41564 r41705  
    1212        ppMerge.config \
    1313        psphot.config \
     14        pswarp.config \
    1415        ppStack.config \
    1516        psastro.config \
  • trunk/ippconfig/gpc2/psastro.config

    r41367 r41705  
    129129
    130130DVO.GETSTAR.PHOTCODE        STR      i
    131 DVO.GETSTAR.MAX.RHO         F32      3000.0
    132 DVO.GETSTAR.MIN.MAG         F32      2.0
    133 DVO.GETSTAR.MIN.MAG.INST    F32     -35.0
     131DVO.GETSTAR.MAX.RHO         F32      10000.0
     132DVO.GETSTAR.MIN.MAG         F32     -10.0
     133DVO.GETSTAR.MIN.MAG.INST    F32     -45.0
    134134
    135135# rather than mean, use specified EDGE:
     
    185185REFSTAR_MASK                    BOOL TRUE
    186186REFSTAR_MASK_MAX_MAG            F32 -16.5
    187 REFSTAR_MASK_SATSTAR_MAG_MAX    F32 -15.0
    188 REFSTAR_MASK_SATSTAR_MAG_SLOPE  F32  10.15
    189187
    190188#TdB20200214: Position of gpc2 spikes determined on image
  • trunk/ippconfig/recipes/masks.16bit.config

    r25299 r41705  
    2424SPIKE           U16     0x0200          # Pixel contains a diffraction spike
    2525GHOST           U16     0x0400          # Pixel contains an optical ghost
    26 STREAK          U16     0x0800          # Pixel contains a streak
     26CROSSTALK       U16     0x0800          # Pixel contains electronic crosstalk
    2727STARCORE        U16     0x1000          # Pixel contains a bright star core
    2828
  • trunk/ippconfig/recipes/masks.config

    r23466 r41705  
    2525CR              U8      0x20            # Pixel contains a cosmic ray
    2626GHOST           U8      0x20            # Pixel contains an optical ghost
    27 STREAK          U8      0x20            # Pixel contains a streak
     27CROSSTALK       U16     0x0800          # Pixel contains electronic crosstalk
    2828
    2929SPIKE           U8      0x20            # Pixel contains a diffraction spike
  • trunk/ippconfig/recipes/ppStack.config

    r38062 r41705  
    1010
    1111MASK.VAL        STR     MASK.VALUE,CONV.BAD,GHOST # Mask value of input bad pixels
    12 MASK.SUSPECT    STR     SUSPECT,BURNTOOL,SPIKE,STREAK,STARCORE,CONV.POOR # Mask value of suspect pixels
     12MASK.SUSPECT    STR     SUSPECT,BURNTOOL,SPIKE,CROSSTALK,STARCORE,CONV.POOR # Mask value of suspect pixels
    1313MASK.BAD        STR     BLANK           # Mask value to give bad pixels
    1414MASK.POOR       STR     CONV.POOR       # Mask value to give poor pixels
  • trunk/ppSub/src/ppSubSetMasks.c

    r41382 r41705  
    4646    { "SPIKE",     NULL,       0x08, false  }, // Pixel contains a diffraction spike
    4747    { "GHOST",     NULL,       0x08, false  }, // Pixel contains an optical ghost
    48     { "STREAK",    NULL,       0x08, false  }, // Pixel contains streak data
     48    { "CROSSTALK", NULL,       0x08, false  }, // Pixel contains crosstalk data
    4949    { "STARCORE",  NULL,       0x08, false  }, // Pixel contains a bright star core
    5050    // Effects of convolution and interpolation
  • trunk/psLib/src/types/psMetadata.c

    r41532 r41705  
    795795        // default is to error on duplicate entry.
    796796        psError(PS_ERR_BAD_PARAMETER_VALUE, true, _("Duplicate metadata item name: %s is not allowed.  Use a psMetadataFlags option to allow such action."), item->name);
     797
    797798        return false;
    798799    }
  • trunk/psModules

  • trunk/psModules/src/config/pmConfigMask.c

    r28272 r41705  
    3333    { "SPIKE",     NULL,       0x08, false  }, // Pixel contains a diffraction spike
    3434    { "GHOST",     NULL,       0x08, false  }, // Pixel contains an optical ghost
    35     { "STREAK",    NULL,       0x08, false  }, // Pixel contains streak data
     35    { "CROSSTALK", NULL,       0x08, false  }, // Pixel contains crosstalk data
    3636    { "STARCORE",  NULL,       0x08, false  }, // Pixel contains a bright star core
    3737    // Effects of convolution and interpolation
  • trunk/psModules/src/objects/pmSourceIO_Glints.c

    r41391 r41705  
    175175
    176176                double glintLength = GLINT_LENGTH_MAG_SLOPE*(GLINT_LENGTH_MAG_ZERO - star->Mag);
    177                 double glintAngle = 0;
     177                double glintAngle = 0.;
    178178
    179179                //Besides brightness, the length of the glints also depends on the position of the star compared to the focal plane. But, seemingly only for stars closer than about 30k pixels
  • trunk/psModules/src/objects/pmSourceMasks.h

    r39597 r41705  
    7070    PM_SOURCE_MODE2_EXT_FITS_NONE         = 0x00400000, ///< ALL of the model fits failed
    7171   
     72    PM_SOURCE_MODE2_ON_GHOST              = 0x00800000, ///< > 25% of (PSF-weighted) pixels land on ghost
     73    PM_SOURCE_MODE2_ON_CROSSTALK          = 0x01000000, ///< peaks land on electronic crostalk
     74
    7275   
    7376} pmSourceMode2;
  • trunk/psModules/src/objects/pmSourcePhotometry.c

    r38872 r41705  
    6060static psImageMaskType maskGhost    = 0;
    6161static psImageMaskType maskGlint    = 0;
     62static psImageMaskType maskCrosstalk    = 0;
    6263
    6364bool pmSourceMagnitudesInit (pmConfig *config, psMetadata *recipe)
     
    7475        maskGhost    = pmConfigMaskGet("GHOST", config);
    7576        maskGlint    = pmConfigMaskGet("GHOST", config);
     77        maskCrosstalk    = pmConfigMaskGet("CROSSTALK", config);
    7678        maskSuspect  = maskSpike | maskStarCore | maskBurntool | maskConvPoor;
    7779    }
     
    437439    float burntoolSum = 0;
    438440    float convpoorSum = 0;
     441    float ghostSum = 0;
    439442
    440443    int Xo, Yo, dP;
     
    520523            }
    521524            // count pixels which are masked with an mask bit (bad or poor)
     525            if (mask->data.PS_TYPE_IMAGE_MASK_DATA[my][mx] & maskGhost) {
     526                ghostSum += value;
     527            }
     528            // count pixels which are masked with an mask bit (bad or poor)
    522529            if (mask->data.PS_TYPE_IMAGE_MASK_DATA[my][mx] & maskBurntool) {
    523530                burntoolSum += value;
     
    539546    if ((starcoreSum/modelSum) > 0.25) {
    540547        source->mode2 |= PM_SOURCE_MODE2_ON_STARCORE;
     548    }
     549    if ((ghostSum/modelSum) > 0.25) {
     550        source->mode2 |= PM_SOURCE_MODE2_ON_GHOST;
    541551    }
    542552    if ((burntoolSum/modelSum) > 0.25) {
     
    582592            source->mode |= PM_SOURCE_MODE_ON_SPIKE;
    583593        }
     594        if (maskValue & maskCrosstalk) {
     595            source->mode2 |= PM_SOURCE_MODE2_ON_CROSSTALK;
     596        }
     597    }
     598    return (true);
     599}
     600
     601// return source aperture magnitude
     602bool pmSourceMaskEval (pmSource *source, psImage *mask, psImageMaskType maskVal)
     603{
     604    PS_ASSERT_PTR_NON_NULL(source, false);
     605    source->pixWeightNotBad = NAN;
     606    source->pixWeightNotPoor = NAN;
     607
     608    PS_ASSERT_PTR_NON_NULL(mask, false);
     609
     610    float modelSum = 0;
     611    float spikeSum = 0;
     612    float starcoreSum = 0;
     613    float burntoolSum = 0;
     614    float convpoorSum = 0;
     615    float ghostSum = 0;
     616
     617    int Xo, Yo, dP;
     618    int dX, DX, NX;
     619    int dY, DY, NY;
     620
     621    float radius=10.;
     622    float radius2 = PS_SQR(radius);
     623
     624    // the model function returns the source flux at a position
     625    psVector *coord = psVectorAlloc(2, PS_TYPE_F32);
     626
     627    Xo = source->peak->x;
     628    Yo = source->peak->y;
     629
     630    dX = Xo - mask->col0;
     631    dP = mask->numCols - dX;
     632    DX = PS_MAX(dX, dP);
     633    NX = mask->numCols;
     634
     635    dY = Yo - mask->row0;
     636    dP = mask->numRows - dY;
     637    DY = PS_MAX(dY, dP);
     638    NY = mask->numRows;
     639
     640    psImageMaskType maskBad = maskVal;
     641    maskBad &= ~maskSuspect;
     642
     643    // were not by an edge; ie, if the source is cut in half by an image edge, we correctly
     644    // count the virtual pixels off the edge in normalizing the value of the pixWeight
     645
     646    // we skip any pixels [real or virtual] outside of the specified radius (nominally the aperture radius)
     647    for (int ix = -DX; ix < DX + 1; ix++) {
     648        if (ix > radius) continue;
     649        int mx = ix + dX;
     650        for (int iy = -DY; iy < DY + 1; iy++) {
     651            if (iy > radius) continue;
     652            if (ix*ix + iy*iy > radius2) continue;
     653            int my = iy + dY;
     654
     655            coord->data.F32[0] = (psF32) (ix + Xo);
     656            coord->data.F32[1] = (psF32) (iy + Yo);
     657
     658            modelSum += 1.;
     659            // include count only the unmasked pixels within the image area
     660            if (mx < 0) continue;
     661            if (my < 0) continue;
     662            if (mx >= NX) continue;
     663            if (my >= NY) continue;
     664
     665            // count pixels which are masked with an mask bit (bad or poor)
     666            if (mask->data.PS_TYPE_IMAGE_MASK_DATA[my][mx] & maskSpike) {
     667                spikeSum += 1.;
     668            }
     669            // count pixels which are masked with an mask bit (bad or poor)
     670            if (mask->data.PS_TYPE_IMAGE_MASK_DATA[my][mx] & maskStarCore) {
     671                starcoreSum += 1.;
     672            }
     673            // count pixels which are masked with an mask bit (bad or poor)
     674            if (mask->data.PS_TYPE_IMAGE_MASK_DATA[my][mx] & maskGhost) {
     675                ghostSum += 1.;
     676            }
     677            // count pixels which are masked with an mask bit (bad or poor)
     678            if (mask->data.PS_TYPE_IMAGE_MASK_DATA[my][mx] & maskBurntool) {
     679                burntoolSum += 1.;
     680            }
     681            // count pixels which are masked with an mask bit (bad or poor)
     682            if (mask->data.PS_TYPE_IMAGE_MASK_DATA[my][mx] & maskConvPoor) {
     683                convpoorSum += 1.;
     684            }
     685        }
     686    }
     687    psFree (coord);
     688
     689    if ((spikeSum/modelSum) > 0.25) {
     690        source->mode2 |= PM_SOURCE_MODE2_ON_SPIKE;
     691    }
     692    if ((starcoreSum/modelSum) > 0.25) {
     693        source->mode2 |= PM_SOURCE_MODE2_ON_STARCORE;
     694    }
     695    if ((ghostSum/modelSum) > 0.25) {
     696        source->mode2 |= PM_SOURCE_MODE2_ON_GHOST;
     697    }
     698    if ((burntoolSum/modelSum) > 0.25) {
     699        source->mode2 |= PM_SOURCE_MODE2_ON_BURNTOOL;
     700    }
     701    if ((convpoorSum/modelSum) > 0.25) {
     702        source->mode2 |= PM_SOURCE_MODE2_ON_CONVPOOR;
     703    }
     704
     705    // Check that if the peak is on/off a ghost, glint, or diffraction spike.  In regular IPP
     706    // processing, these values are only set in the image mask after the 'camera' stage
     707
     708    // need to access the parent if we are looking at a subimage (likely)
     709    psImage *chipImage = (source->pixels == NULL) ? source->pixels : (psImage *) source->pixels->parent;
     710
     711    bool onChip = true;
     712    onChip &= (Xo >= 0);
     713    onChip &= (Xo < chipImage->numCols);
     714    onChip &= (Yo >= 0);
     715    onChip &= (Yo < chipImage->numRows);
     716    if (!onChip) {
     717        // if the source is off the edge of the chip, raise a different bit?
     718        source->mode |= PM_SOURCE_MODE_OFF_CHIP;
     719    } else {
     720        int xMask = Xo - mask->col0;
     721        int yMask = Yo - mask->row0;
     722        psImageMaskType maskValue = mask->data.PS_TYPE_IMAGE_MASK_DATA[yMask][xMask];
     723        if (maskValue & maskGhost) {
     724            source->mode |= PM_SOURCE_MODE_ON_GHOST;
     725        }
     726        pmSourceMode PM_SOURCE_MODE_ON_GLINT = PM_SOURCE_MODE_ON_GHOST;
     727        if (maskValue & maskGlint) {
     728            source->mode |= PM_SOURCE_MODE_ON_GLINT;
     729        }
     730        if (maskValue & maskCrosstalk) {
     731            source->mode2 |= PM_SOURCE_MODE2_ON_CROSSTALK;
     732        }
     733        if (maskValue & maskSpike) {
     734            source->mode |= PM_SOURCE_MODE_ON_SPIKE;
     735        }
    584736    }
    585737    return (true);
  • trunk/psModules/src/objects/pmSourcePhotometry.h

    r34085 r41705  
    7777
    7878bool pmSourcePixelWeight (pmSource *source, pmModel *model, psImage *mask, psImageMaskType maskVal, float radius);
     79bool pmSourceMaskEval (pmSource *source, psImage *mask, psImageMaskType maskVal);
    7980
    8081bool pmSourceChisq (pmModel *model, psImage *image, psImage *mask, psImage *weight, psImageMaskType maskVal);
  • trunk/psastro

  • trunk/psastro/src/Makefile.am

    r41657 r41705  
    109109        psastroMosaicSetMatch.c     \
    110110        psastroFindChip.c           \
    111         psastroFindChipGPC.c           \
    112111        psastroZeroPoint.c          \
    113112        psastroDemoDump.c           \
  • trunk/psastro/src/psastro.h

    r41657 r41705  
    184184bool              psastroFPAtoChip (double *xChip, double *yChip, pmFPA *fpa, int nChip, double xFPA, double yFPA);
    185185
    186 pmChip           *psastroFindChipGPC (double *xChip, double *yChip, pmFPA *fpa, double xFPA, double yFPA);
    187 bool              psastroChipBoundsGPC (pmFPA *fpa);
    188 pmChip           *psastroCheckChip (double *xChip, double *yChip, pmFPA *fpa, int nChip, double xFPA, double yFPA);
    189 bool              psastroExtractFreeChipBoundsGPC(void);
    190 
    191186//bool              psastroMaskStats(pmConfig *config, psMetadata *stats);
    192187
  • trunk/psastro/src/psastroLoadGlints.c

    r41434 r41705  
    133133
    134134            // select stars that land in this region
    135             if (star->FP->x < glintRegion.x0) continue;
    136             if (star->FP->x > glintRegion.x1) continue;
    137             if (star->FP->y < glintRegion.y0) continue;
    138             if (star->FP->y > glintRegion.y1) continue;
     135            if (star->FP->x < glintRegion.x0) {continue;}
     136            if (star->FP->x > glintRegion.x1) {continue;}
     137            if (star->FP->y < glintRegion.y0) {continue;}
     138            if (star->FP->y > glintRegion.y1) {continue;}
    139139
    140140            char *glintType = psMetadataLookupStr (&status, glintItem->data.md, "GLINT.TYPE");
     
    147147            //glint length should depend on the brightness on image, i.e. in instrumental mag. The same instrumental mag in different filters should likely give the same glint length.
    148148            double glintLength = GLINT_LENGTH_MAG_SLOPE*(GLINT_LENGTH_MAG_ZERO - (star->Mag-MagOffset));
    149             double glintAngle = 0;
     149            double glintAngle = 0.;
    150150
    151151            //Besides brightness, the length of the glints also depends on the position of the star compared to the focal plane. But, seemingly only for stars closer than about 30k pixels
     
    167167
    168168            //do a rudimentary check of whether the glint enters the pixel FPA
    169             if (!strcasecmp(glintType, "TOP")    && ((star->FP->y - glintLength) > 20000.))  continue;
    170             if (!strcasecmp(glintType, "BOTTOM") && ((star->FP->y + glintLength) < -20000.))  continue;
    171             if (!strcasecmp(glintType, "LEFT")   && ((star->FP->x + glintLength) < -20000.))  continue;
    172             if (!strcasecmp(glintType, "RIGHT")  && ((star->FP->x - glintLength) > 20000.))  continue;
     169            if (!strcasecmp(glintType, "TOP")    && ((star->FP->y - glintLength) > 20000.))  {continue;}
     170            if (!strcasecmp(glintType, "BOTTOM") && ((star->FP->y + glintLength) < -20000.))  {continue;}
     171            if (!strcasecmp(glintType, "LEFT")   && ((star->FP->x + glintLength) < -20000.))  {continue;}
     172            if (!strcasecmp(glintType, "RIGHT")  && ((star->FP->x - glintLength) > 20000.))  {continue;}
    173173
    174174            if (!strcasecmp(glintType, "TOP") || !strcasecmp(glintType, "BOTTOM")) {
     
    183183                    for (int nChip = 0; nChip < fpa->chips->n; nChip++) {
    184184                        pmChip *chip = fpa->chips->data[nChip];
    185                         if (!chip) continue;
     185                        if (!chip) {continue;}
    186186
    187187                        if (!psastroFindChipInXrange (fpa, nChip, star->FP->x, 20000.)) {
     
    209209                    for (int nChip = 0; nChip < fpa->chips->n; nChip++) {
    210210                        pmChip *chip = fpa->chips->data[nChip];
    211                         if (!chip) continue;
     211                        if (!chip) {continue;}
    212212
    213213                        if (!psastroFindChipInXrange (fpa, nChip, star->FP->x, -20000.)) {
     
    232232                }
    233233
    234                 if(glintLength < GLINT_LENGTH_MIN_FPA) continue;
     234                if(glintLength < GLINT_LENGTH_MIN_FPA) {continue;}
    235235
    236236                x_glint->data.F32[0] = xFPA0;
     
    245245
    246246                        pmChip *chip = fpa->chips->data[nChip];
    247                         if (!chip) continue;
     247                        if (!chip) {continue;}
    248248
    249249                        if (!psastroFindChipInXrange (fpa, nChip, x_glint->data.F32[glint_point], y_glint->data.F32[glint_point])) {
     
    262262
    263263                        // does this glint cross this chip?
    264                         if (yFPA0 > yFPAe) continue;
    265                         if (yFPA1 < yFPAs) continue;
     264                        if (yFPA0 > yFPAe) {continue;}
     265                        if (yFPA1 < yFPAs) {continue;}
    266266
    267267
     
    287287
    288288                        // select the 0th readout of the 0th cell for this chip
    289                         if (!chip->cells) continue;
    290                         if (!chip->cells->n) continue;
     289                        if (!chip->cells) {continue;}
     290                        if (!chip->cells->n) {continue;}
    291291                        pmCell *glintCell = chip->cells->data[0];
    292                         if (!glintCell) continue;
    293                         if (!glintCell->readouts) continue;
    294                         if (!glintCell->readouts->n) continue;
     292                        if (!glintCell) {continue;}
     293                        if (!glintCell->readouts) {continue;}
     294                        if (!glintCell->readouts->n) {continue;}
    295295                        pmReadout *glintReadout = glintCell->readouts->data[0];
    296                         if (!glintReadout) continue;
     296                        if (!glintReadout) {continue;}
    297297                       
    298298                        // save the glints on the readout->analysis metadata, creating if needed
     
    332332                    for (int nChip = 0; nChip < fpa->chips->n; nChip++) {
    333333                        pmChip *chip = fpa->chips->data[nChip];
    334                         if (!chip) continue;
     334                        if (!chip) {continue;}
    335335
    336336                        if (!psastroFindChipInXrange (fpa, nChip, 20000.,star->FP->y)) {
     
    358358                    for (int nChip = 0; nChip < fpa->chips->n; nChip++) {
    359359                        pmChip *chip = fpa->chips->data[nChip];
    360                         if (!chip) continue;
     360                        if (!chip) {continue;}
    361361
    362362                        if (!psastroFindChipInXrange (fpa, nChip, -20000.,star->FP->y)) {
     
    381381                }
    382382
    383                 if(glintLength < GLINT_LENGTH_MIN_FPA) continue;
     383                if(glintLength < GLINT_LENGTH_MIN_FPA) {continue;}
    384384
    385385                x_glint->data.F32[0] = xFPA0;
     
    393393
    394394                        pmChip *chip = fpa->chips->data[nChip];
    395                         if (!chip) continue;
     395                        if (!chip) {continue;}
    396396
    397397                        if (!psastroFindChipInYrange (fpa, nChip, x_glint->data.F32[glint_point], y_glint->data.F32[glint_point])) {
     
    410410
    411411                        // does this glint cross this chip?
    412                         if (xFPA0 > xFPAe) continue;
    413                         if (xFPA1 < xFPAs) continue;
     412                        if (xFPA0 > xFPAe) {continue;}
     413                        if (xFPA1 < xFPAs) {continue;}
    414414
    415415                        //find the x-coord positions for this chip
     
    433433
    434434                        // select the 0th readout of the 0th cell for this chip
    435                         if (!chip->cells) continue;
    436                         if (!chip->cells->n) continue;
     435                        if (!chip->cells) {continue;}
     436                        if (!chip->cells->n) {continue;}
    437437                        pmCell *glintCell = chip->cells->data[0];
    438                         if (!glintCell) continue;
    439                         if (!glintCell->readouts) continue;
    440                         if (!glintCell->readouts->n) continue;
     438                        if (!glintCell) {continue;}
     439                        if (!glintCell->readouts) {continue;}
     440                        if (!glintCell->readouts->n) {continue;}
    441441                        pmReadout *glintReadout = glintCell->readouts->data[0];
    442                         if (!glintReadout) continue;
     442                        if (!glintReadout) {continue;}
    443443                       
    444444                        // save the glints on the readout->analysis metadata, creating if needed
  • trunk/psastro/src/psastroMaskUpdates.c

    r41657 r41705  
    9191    psImageMaskType spikeMaskValue = pmConfigMaskGet("SPIKE", config); // Mask value for ghost pixels
    9292    psImageMaskType starMaskValue  = pmConfigMaskGet("STARCORE", config); // Mask value for ghost pixels
    93     psImageMaskType crosstalkMaskValue = pmConfigMaskGet("GHOST", config); // Mask value for crosstalk ghosts
     93    psImageMaskType crosstalkMaskValue = pmConfigMaskGet("CROSSTALK", config); // Mask value for crosstalk ghosts
    9494
    9595    // psImageMaskType maskBlank  = pmConfigMaskGet("BLANK", config); // Mask value for blank pixels
     
    331331                    psTrace("psastro.masks",4,"In refstar loop: %d/%ld %f %f\n",
    332332                            i,refstars->n,ref->Mag,REFSTAR_MASK_MAX_MAG);
    333                     if (ref->Mag > REFSTAR_MASK_MAX_MAG) continue;
     333                    if (ref->Mag > REFSTAR_MASK_MAX_MAG) {continue;}
    334334
    335335
  • trunk/psconfig

  • trunk/psconfig/tagsets/ipp-3.1.dist

    r40494 r41705  
    6666  YYYYY  ippScripts             ipp-2-9          -0
    6767  YYYYY  ippTasks               ipp-2-9          -0
    68   YYYYY  ippToPsps              ipp-2-9          -0
     68  YNYYY  ippToPsps              ipp-2-9          -0
    6969         
    7070  YYYYY  ippconfig              ipp-2-9          -0
  • trunk/psconfig/tagsets/ipp-3.3.dist

    r40673 r41705  
    6666  YYYYY  ippScripts             ipp-2-9          -0
    6767  YYYYY  ippTasks               ipp-2-9          -0
    68   YYYYY  ippToPsps              ipp-2-9          -0
     68  YNYYY  ippToPsps              ipp-2-9          -0
    6969         
    7070  YYYYY  ippconfig              ipp-2-9          -0
  • trunk/psphot

  • trunk/psphot/src/psphotSourceSize.c

    r36375 r41705  
    2626bool psphotSourceSizePSF (psphotSourceSizeOptions *options, pmReadout *readout, psArray *sources, pmPSF *psf, psMetadata *recipe);
    2727bool psphotDynamicLimitsCR (psphotSourceSizeOptions *options, pmReadout *readout, psArray *sources, pmPSF *psf, psMetadata *recipe);
    28 bool psphotSourceClass (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options);
    29 bool psphotSourceClassRegion (psRegion *region, pmPSFClump *psfClump, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options);
     28bool psphotSourceClass (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options, pmConfig *config);
     29bool psphotSourceClassRegion (psRegion *region, pmPSFClump *psfClump, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options, pmConfig *config);
    3030bool psphotSourceSelectCR (pmReadout *readout, psArray *sources, psphotSourceSizeOptions *options);
    3131bool psphotMaskCosmicRay (pmReadout *readout, pmSource *source, psImageMaskType maskVal, int maxWindowCR);
     
    162162    // classify the sources based on ApResid and Moments
    163163    // NOTE: only sources not already measured !(source->tmpFlags & PM_SOURCE_TMPF_SIZE_MEASURED)
    164     psphotSourceClass(readout, sources, recipe, psf, &options);
     164    psphotSourceClass(readout, sources, recipe, psf, &options, config);
    165165
    166166    // attempt to mask the candidate CRs; flag if CR nature is confirmed
     
    403403
    404404// classify sources based on the combination of psf-mag, Mxx, Myy
    405 bool psphotSourceClass (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options) {
     405bool psphotSourceClass (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options, pmConfig *config) {
    406406
    407407    bool status;
     
    411411    psLogMsg("psModules.objects", PS_LOG_INFO, "Source Size classifications: %4s %4s %4s %4s %4s", "Npsf", "Next", "Nsat", "Ncr", "Nskip");
    412412
    413     if (!psphotSourceClassRegion (NULL, &psfClump, sources, recipe, psf, options)) {
     413    if (!psphotSourceClassRegion (NULL, &psfClump, sources, recipe, psf, options, config)) {
    414414        psLogMsg ("psphot", 4, "Failed to determine source classification for full image\n");
    415415    } else {
     
    439439        }
    440440
    441         if (!psphotSourceClassRegion (region, &psfClump, sources, recipe, psf, options)) {
     441        if (!psphotSourceClassRegion (region, &psfClump, sources, recipe, psf, options, config)) {
    442442            psLogMsg ("psphot", 4, "Failed to determine source classification for region %f,%f - %f,%f\n", region->x0, region->y0, region->x1, region->y1);
    443443            continue;
     
    450450}
    451451
    452 bool psphotSourceClassRegion (psRegion *region, pmPSFClump *psfClump, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options) {
     452bool psphotSourceClassRegion (psRegion *region, pmPSFClump *psfClump, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options, pmConfig *config) {
    453453
    454454    PS_ASSERT_PTR_NON_NULL(sources, false);
     
    461461    int Nskip = 0;
    462462
     463    //initiallise mask values to use later on
     464    pmSourceMagnitudesInit (config, recipe);
     465
    463466    pmSourceMode noMoments = PM_SOURCE_MODE_MOMENTS_FAILURE | PM_SOURCE_MODE_SKYVAR_FAILURE | PM_SOURCE_MODE_SKY_FAILURE | PM_SOURCE_MODE_BELOW_MOMENTS_SN;
    464 
    465467    // request the pixWeight values as well as the magnitudes
    466468    pmSourcePhotometryMode photMode = PM_SOURCE_PHOT_WEIGHT;
     
    502504            source->mode |= PM_SOURCE_MODE_SIZE_SKIPPED;
    503505            psTrace("psphot", 7, "Not calculating source size since source is not subtracted\n");
     506            pmSourceMaskEval (source,  source->maskObj, maskVal);
    504507            Nskip ++;
    505508            continue;
     
    512515        psAssert (source->moments, "why is this source missing moments?");
    513516        if (source->mode & noMoments) {
     517            pmSourceMaskEval (source,  source->maskObj, maskVal);
    514518            Nskip ++;
    515519            continue;
  • trunk/pswarp/src/pswarp.h

    r36835 r41705  
    222222bool pswarpModifyChipAstrom (pmConfig *config, pmFPAview *view, pmChip *chip, pmFPAfile *astrom, bool bilevelAstrometry, double xBin, double yBin);
    223223bool pswarpGetInputScales (double *xBin, double *yBin, pmConfig *config, pmFPAview *view, pmChip *chip);
     224
     225// ppSubMaskSetInMetadata examines named mask values and set the bits for maskValue and
     226// markValue.  Ensures that the below-named mask values are set, and calculates the mask value
     227// to catch all of the mask values marked as 'bad'.  Supplies the fallback name if the primary
     228// name is not found, or the default values if the fallback name is not found.
     229bool pswarpMaskSetInMetadata(psImageMaskType *outMaskValue, // Value of MASK.VALUE, returned
     230                               psImageMaskType *outMarkValue, // Value of MARK.VALUE, returned
     231                               psMetadata *source  // Source of mask bits
     232  );
     233
  • trunk/pswarp/src/pswarpTransformReadout.c

    r41526 r41705  
    1313#include "pswarp.h"
    1414
     15// Structure to hold the properties of a mask value
     16typedef struct {
     17    char *badMaskName;                  // name for "bad" (i.e., mask me please) pixels
     18    char *fallbackName;                 // Fallback name in case a bad mask name is not defined
     19    psImageMaskType defaultMaskValue;   // Default value in case a bad mask name and its fallback are not defined
     20    bool isBad; // include this value as part of the MASK.VALUE entry (generically bad)
     21} pmConfigMaskInfo;
     22
     23static pmConfigMaskInfo warp_convolve_masks[] = {
     24    // Features of the detector
     25    { "DETECTOR",  NULL,       0x01, true }, // Something is wrong with the detector
     26    { "FLAT",      "DETECTOR", 0x01, true }, // Pixel doesn't flat-field properly
     27    { "DARK",      "DETECTOR", 0x01, true }, // Pixel doesn't dark-subtract properly
     28    { "BLANK",     "DETECTOR", 0x01, true }, // Pixel doesn't contain valid data
     29    { "CTE",       "DETECTOR", 0x01, false }, // Pixel has poor CTE
     30    { "BURNTOOL",  NULL,       0x04, false }, // Pixel has been touched by burntool
     31    // Invalid signal ranges
     32    { "SAT",       NULL,       0x02, true  }, // Pixel is saturated or non-linear
     33    { "LOW",       "SAT",      0x02, true  }, // Pixel is low
     34    { "SUSPECT",   NULL,       0x04, false }, // Pixel is suspected of being bad
     35    // Non-astronomical structures
     36    { "CR",        NULL,       0x08, true  }, // Pixel contains a cosmic ray
     37    { "SPIKE",     NULL,       0x08, false  }, // Pixel contains a diffraction spike
     38    { "GHOST",     NULL,       0x08, false  }, // Pixel contains an optical ghost
     39    { "CROSSTALK", NULL,       0x08, false  }, // Pixel contains crosstalk data
     40    { "STARCORE",  NULL,       0x08, false  }, // Pixel contains a bright star core
     41    // Effects of convolution and interpolation
     42    { "CONV.BAD",  NULL,       0x02, true  }, // Pixel is bad after convolution with a bad pixel
     43    { "CONV.POOR", NULL,       0x04, false }, // Pixel is poor after convolution with a bad pixel
     44};
     45
    1546/**
    1647 * NOTE: in this function, the coordinates are transformed from the OUTPUT to the INPUT
     
    4475      psAssert(mdok, "MASK.INPUT was not defined");
    4576    }
     77    else {
     78      psMetadata *maskrecipe = psMetadataLookupMetadata(NULL, config->recipes, "MASKS"); // The recipe
     79      if (!maskrecipe) {
     80          psError(psErrorCodeLast(), false, "Unable to find MASKS recipe.");
     81          return false;
     82      }
     83      if (!pswarpMaskSetInMetadata(&maskIn, NULL, maskrecipe)) {
     84          psError(psErrorCodeLast(), false, "Unable to determine mask value.");
     85          return false;
     86      }
     87    }
    4688    psImageMaskType maskPoor = pmConfigMaskGet("CONV.POOR", config);
    4789    if (!maskPoor) {
     
    229271    return true;
    230272}
     273
     274bool pswarpMaskSetInMetadata(psImageMaskType *outMaskValue, // Value of MASK.VALUE, returned
     275                               psImageMaskType *outMarkValue, // Value of MARK.VALUE, returned
     276                               psMetadata *source  // Source of mask bits
     277    )
     278{
     279    PS_ASSERT_METADATA_NON_NULL(source, false);
     280
     281    // Ensure all the bad mask names exist, and set the value to catch all bad pixels
     282    psImageMaskType maskValue = 0;           // Value to mask to catch all the bad pixels
     283    psImageMaskType allMasks = 0;            // Value to mask to catch all masked bits (to set MARK)
     284
     285    int nMasks = sizeof (warp_convolve_masks) / sizeof (pmConfigMaskInfo);
     286
     287    for (int i = 0; i < nMasks; i++) {
     288        bool mdok;                      // Status of MD lookup
     289        psImageMaskType value = psMetadataLookupImageMaskFromGeneric(&mdok, source, warp_convolve_masks[i].badMaskName); // Value of mask
     290        if (!mdok) {
     291            psWarning ("problem with mask value %s\n", warp_convolve_masks[i].badMaskName);
     292        }
     293
     294        if (!value) {
     295            if (warp_convolve_masks[i].fallbackName) {
     296                value = psMetadataLookupImageMaskFromGeneric(&mdok, source, warp_convolve_masks[i].fallbackName);
     297            }
     298            if (!value) {
     299                value = warp_convolve_masks[i].defaultMaskValue;
     300            }
     301            psMetadataAddImageMask(source, PS_LIST_TAIL, warp_convolve_masks[i].badMaskName, PS_META_REPLACE, NULL, value);
     302        }
     303        if (warp_convolve_masks[i].isBad) {
     304            maskValue |= value;
     305        }
     306        allMasks |= value;
     307    }
     308
     309    // search for an unset bit to use for MARK:
     310    psImageMaskType markValue = 0x00;
     311    psImageMaskType markTrial = 0x01;
     312
     313    int nBits = sizeof(psImageMaskType) * 8;
     314    for (int i = 0; !markValue && (i < nBits); i++) {
     315        if (allMasks & markTrial) {
     316            markTrial <<= 1;
     317        } else {
     318            markValue = markTrial;
     319        }
     320    }
     321    if (!markValue) {
     322        psError (PS_ERR_UNKNOWN, true, "Unable to define the MARK bit mask: all bits taken!");
     323        return false;
     324    }
     325
     326    // update the list with the results
     327    psMetadataAddImageMask(source, PS_LIST_TAIL, "MASK.VALUE", PS_META_REPLACE, NULL, maskValue);
     328    psMetadataAddImageMask(source, PS_LIST_TAIL, "MARK.VALUE", PS_META_REPLACE, NULL, markValue);
     329
     330    if (outMaskValue) {
     331        *outMaskValue = maskValue;
     332    }
     333    if (outMarkValue) {
     334        *outMarkValue = markValue;
     335    }
     336
     337    return true;
     338}
     339
  • trunk/tools

Note: See TracChangeset for help on using the changeset viewer.