fixthings (version 1.0)
You can also look at:
#! /usr/bin/ksh
###########################################################################
#
#
# SYNTAX: fixthings
#
# BRIEFLY: Fix a number of minor spacecraft-related problems in the data.
#
# DESCRIPTION: This routine adjusts the unfiltered event files to correct for
# DESCRIPTION: various spacecraft problems.
# DESCRIPTION: Currently there are two such problems.
# DESCRIPTION: First between Feb 10, 1994 and Apr 8, 1994 some of the
# DESCRIPTION: GIS3 PHA telemetry bits were stuck in the "on" position.
# DESCRIPTION: The data from this period can be recovered, but with
# DESCRIPTION: some loss of spectral resolution.
# DESCRIPTION: <p>
# DESCRIPTION: The second problem is that occaisionally the spacecraft is
# DESCRIPTION: switched into FAST mode before it is switched from 4 CCD
# DESCRIPTION: to 1 CCD mode. Data is actually taken on one CCD
# DESCRIPTION: (no guarantee that it is the correct one), but
# DESCRIPTION: the FITS keywords show 4 CCD mode. The fast4fix STOOL
# DESCRIPTION: adjusts the keywords to reflect the actual mode.
# DESCRIPTION: As of Feb 6, 1996 this only significantly affected three
# DESCRIPTION: sequences: 10010160, 40011000, and 41010000.
#
# VERSION: 1.0
#
# HISTORY: 0.0 -> 1.0 8/21/96 Now remove ascalin.par, flookup.par, and
# HISTORY: fparkey.par after gis3bitfix runs.
#
##############################################################################
#DEBUG=1
#####################
# 4CCD fast mode
#######################
list=$($UTIL/generate_filename unfiltered s[01] any 03 any )
list=$(ls $list 2>/dev/null )
if [ -n "$list" ]; then
#############################
# there are FAST mode files
#############################
$UTIL/milestone "Checking FAST mode files for correct CCD mode"
for file in $list ; do
$UTIL/log_entry "Checking $file"
$STOOLS/fast4fix $file >stdout.log 2>stderr.log
code=$?
level=$code
if [ $level -gt 2 -o $level -lt 0 ]; then
level=2
fi
$UTIL/stool_test fast4fix $code $0 $level stdout.log stderr.log
done
fi
#######################################
######################################
##
## GIS3 stuck bit
##
#######################################
#######################################
###############################################
# read number of telemetry files from job par
##############################################
nfiles=$($UTIL/read_parfile $JOBPAR frfcnt)
if [ -z "$nfiles" ]; then
nfiles=0
fi
if [ $nfiles -eq 0 ]; then
$UTIL/exception $0 3 "Can't get non-zero number of frf files from $JOBPAR"
fi
#######################################################
# loop through the telemetry files
#######################################################
typeset -i i=1
while [ $i -le $nfiles ]; do
number="$(echo $i | nawk '{printf ("%03d", $0)}')"
telemetry=$($UTIL/read_parfile $JOBPAR frffile_$number)
telemetry=${telemetry##*/}
telemetry=${telemetry%.Z}
date=${telemetry#ft}
date=${date%_*}
if [ $date -ge 940210 -a $date -le 940408 ]; then
###############################
# GIS3 files have the problem
###############################
$UTIL/milestone "Fixing stuck bits in GIS3 unfiltered event files"
attitude=$($UTIL/read_parfile $JOBPAR attfile_$number)
attitude=${attitude##*/}
attitude=${attitude%.Z}
list=$($UTIL/generate_filename unfiltered g3 any 70 any )
list=$(ls $list 2>/dev/null)
for file in $list ; do
keyword=$($UTIL/read_fits_keyword $file[0] TLM_FILE )
if [ "$keyword" = "$telemetry" ]; then
###########################################
# event file has the right telemetry file
###########################################
$UTIL/log_entry "Fixing $file"
index=$($UTIL/parse_filename index $file )
bitrate=$($UTIL/parse_filename bitrate $file )
rm -f file.tmp
echo $file >file.tmp
teldef=$($UTIL/generate_filename teldef \
g3 $index 70 $bitrate )
ghf=$(echo $telemetry | tr '.' '_').ghf
$FTOOLS/gis3bitfix.e file.tmp $teldef $ghf $attitude \
>stdout.log 2> stderr.log
$UTIL/ftool_test gis3bitfix.e $? $0 2 stdout.log stderr.log
rm -f file.tmp
rm -f ascalin.par
rm -f flookup.par
rm -f fparkey.par
#######################################################
# rename the fixed file to replace the original file
#######################################################
mv $file.fix $file
fi
done
fi
let i=$i+1
done
rm -f gis3bitfix.kw
exit 0