#!/bin/csh -f #+ # driftscan -- acquire image while drifting target across the slit # # Purpose: # Starting with sidereal tracking with objects centered on slits, # offset the telescope and begin tracking at a non-sidereal rate # while acquiring an exposure. At the end of the exposure, return # telescope to starting position and restore sidereal track rates. # # Usage: # driftscan [-v] # # Arguments: # -v = verbose mode # length = length of drift scan [arcsec] # # Output: # # Restrictions: # - Slit must be oriented N/S so that drift scanning is purely E/W. # - Guide star should be at least 0.5*length arcsec from edge of pickoff mirror # so that it is not lost during offset # # Exit values: # 0 = normal completion # 1 = wrong number of arguments # # Example: # 1) Acquire a spectrum while tracking at a non-sidereal rate # over a 10 arcsec length: # driftscan 10 # #- # Modification history: # 2008-Oct-23 GDW Original version # 2008-Oct-25 GDW Redo logic at end; issue a telescope move # instead of using "west" command to return # to original position # 2013-Mar-10 GDW Add check for the slit angle being N/S #----------------------------------------------------------------------- set cmd = `basename $0` set usage = "Usage: $cmd length" set debug = 0 set wordy = 0 set format = "%12s = %s %s\n" # parse flags... while ( $#argv > 0 ) # check for verbose flag... if ( "$1" =~ \-v* ) then set wordy = 1 shift continue endif # exit flag check if no flags remain... break end # verify args... if ( $#argv != 1 ) then printf "$usage\n\a" exit 1 endif # parse args... if ( $#argv > 0 ) then set length = $1 shift endif cat <& /dev/null & waitfor -s deiccd exposip=t printf "now exposing.\n" # begin NS tracking... printf "Changing to non-sidereal RA track rate.\n" modify -s dcs dra = $rate modify -s dcs ddec = 0. modify -s dcs dtrack = 1 if ( $wordy ) then printf "Verifying non-sidereal tracking.\n" show -s dcs dra ddec dtrack endif printf "Waiting for exposure to complete.\n" waitfor -s deiccd exposip=f # check RA/DEC if ( $wordy ) then set ra = `show -s dcs -terse ra` set dec = `show -s dcs -terse dec` printf "\nPosition at end of exposure:\n" printf "$format" RA $ra hours printf "$format" Dec $dec deg printf "\n" endif reset: # rest tracking to sidereal rates... printf "Restoring sideral tracking.\n" modify -s dcs dra = 0. modify -s dcs ddec = 0. modify -s dcs dtrack = 0 printf "Returning telescope to starting position.\n" set ra = `sex2dec $ra0` set dec = `sex2dec $dec0` modify -s dcs targra=$ra targdec=$dec movetel=1 # check RA/DEC if ( $wordy ) then set ra = `show -s dcs -terse ra` set dec = `show -s dcs -terse dec` printf "\nPosition after final offset completed:\n" printf "$format" RA $ra hours printf "$format" Dec $dec deg printf "\n" endif printf "Waiting for readout to complete.\n" wait printf "Done!\n" beep exit