Introduction

Discussion of script

The script is given below. It is will commented. The only difference between this version and that for GMT Versions 5 and up is that DOSOLUTION is replaced by DOSOLUTION5.

#!/bin/bash
set -x
#####
#	set up directory structure for an event that we get from the IRIS
#	Changes:
#	05 JAN 2009 - changed name of pole-zero response file from RESP.. to PZRESP
#		for clarity. Also made similar change in CWBDOEVT
#####
echo ${MYPWD}
echo ${PROTODIR}
OFFSET=-60

#####
#	test usage
#####
echo $#

if [ $# -ne 16 ]
then
echo DOQUERY YEAR MO DY HR MN SC MSC  LAT    LON    DEP  MAG REG NEIC FELTID STATE MYPWD
echo DOQUERY 2006 02 05 08 17 04 000 66.25 -143.02 18.60 5.1 CUS iuae Xiuae_06 Alaska /backup/rbh/MOMENT_TENSOR/MECH.NA
	echo $*
	exit 0
fi


#####
#	define internal variables: the quotes are required since some fields can have 
#       blank spacing within"
#####
YEAR="${1}"
MO="${2}"
DY="${3}"
HR="${4}"
MN="${5}"
SEC="${6}"
MSEC="${7}"
LAT="${8}"
LON="${9}"
DEP="${10}"
MAG="${11}"
REG="${12}"
NEIC="${13}"
FELTID="${14}"
STATE="${15}"
MYPWD="${16}"

if [ "${REG}" = "EU" ]
then
DEG=20.0
WINDOW=600
else
DEG=6.0
WINDOW=400
#DEG=6.0
#WINDOW=600
fi
DEG=4.0
WINDOW=300
DELAZC=`echo $DEG $LAT $LON | awk '{printf "%f:%f:%f",$1,$2,$3}' `
#####
#    now run three scripts that set up everything
#    DOQUERY - sets up the directory structure for the Query
#####


XXXDIR="${MYPWD}/0XXXREG"

#####
#	now define the directory name
#####
DIR=${YEAR}${MO}${DY}${HR}${MN}${SEC}

cd ${MYPWD}

PROTODIR="${MYPWD}/PROTO.CWB"
echo DIR $DIR
echo PROTODIR $PROTODIR
echo 0XXXDIR $XXXDIR

#####
#	Create and populate the directory structure
#####
if [ ! -d ${DIR} ]
then
mkdir ${DIR}
fi

if [ ! -d ${DIR}/${DIR} ]
then
mkdir ${DIR}/${DIR}
fi

if [ ! -d ${DIR}/${DIR}/MFT ]
then
mkdir ${DIR}/${DIR}/MFT
fi
cp ${PROTODIR}/CWBDO* ${DIR}/${DIR}
cd ${MYPWD}

#####
#	NOW THIS IS VERY VERY SPECIFIC - MODIFY THE SCRIPTS FOR THIS REGION
#####


#####
#	go to the Trace directory get the data
#####
cd ${MYPWD}/${DIR}/${DIR}

#####
#	in the Trace directory modify the CWBDOEVT script so that
#	it now has the correct parameters for the event
#	This means that the CWBDOEVT copied into here is a prototype
#
#####
cat > evt.proto << EOF
YEAR="${YEAR}"
MO="${MO}"
DY="${DY}"
HR="${HR}"
MN="${MN}"
SEC="${SEC}"
MSEC="${MSEC}"
LAT="${LAT}"
LON="${LON}"
DEP="${DEP}"
MAG="${MAG}"
EOF

ed CWBDOEVT << EOF
/ADDAFTERHERE/
.r evt.proto
.
w
q
EOF

#####
#    get the correct velocity model into the ROT script
#####
if [ -f ${MYPWD}/${DIR}/VMODEL.used ]
then
export VMODEL=`cat  ${MYPWD}/${DIR}/VMODEL.used`
else
# default
export VMODEL="tak135sph"
fi
ed CWBDOROT << EOF
/VMODEL/s//${VMODEL}/p
w
q
EOF


#####
#	process
#####
if [ ! -d Sac ] 
then
mkdir Sac
fi
cd Sac

#####
#       redefine the time window to include an offset from the origin time
#       This was added 2008/01/02 by R B Herrmann at SLU
#       This requires the new program redodate.  Also note that the
#       time variables required to set the scripts are no longer required
#       and can be overwritten
#####
redodate ${YEAR} ${MO} ${DY} ${HR} ${MN} ${SEC} ${MSEC} ${OFFSET} > datetmp
read YR MO DY HR MN SEC MSEC <  datetmp


#####
#	set up the Query to get the waveforms
#####
echo query -nogaps -t sac -o "%N.SAC" -sacpz nm -b '"'${YEAR}/${MO}/${DY}\-${HR}:${MN}:${SEC}'"' -d ${WINDOW} -s .......[BH][HN]... -delazc "${DELAZC}" > doq
chmod +x doq
query -nogaps -t sac -o "%N.SAC" -sacpz nm -b '"'${YEAR}/${MO}/${DY}\-${HR}:${MN}:${SEC}'"' -d ${WINDOW} -s .......[BH][HN]... -delazc "${DELAZC}"


#####
#	create the NORESP directory
#####

if [ ! -d NORESP ] 
then
	echo creating NORESP
	mkdir NORESP
fi
#####
#	get the response data and rename because of underscores
#####
for i in *.SAC
do
#####
#	check byte order
#####
	saccvt -I < $i > tmp ; mv tmp $i 
        KSTNM=`saclhdr -KSTNM $i`
        KCMPNM=`saclhdr -KCMPNM $i`
        KNETWK=`saclhdr -KNETWK $i`
        KHOLE=`saclhdr -KHOLE $i`
        if [ "${KHOLE}" = "-12345" ]
        then
                LOC=""
        else
                LOC=${KHOLE}
        fi
        if [ "${KNETWK}" = "-12345" ]
        then
                NET=""
        else
                NET=${KNETWK}
        fi
#	cp ${NET}*${KSTNM}*${KCMPNM}*${LOC}*.SAC.pz PZRESP.${KNETWK}.${KSTNM}.${LOC}.${KCMPNM}
done


#####
#       Now start all the processing
#####
cd ${MYPWD}/${DIR}/${DIR}
CWBDOEVT
#####
#       form Z R T at the same time ensure that signal amplitudes
#	are absolutely bounded by 1.0e-10
#####
cd ${MYPWD}/${DIR}/${DIR}
sleep 20
CWBDOROT
#####
#	at this point we must review the traces in the GOOD directory
#	then from within the GOOD directory you will do a ../CWBDODEC
#	then cd ../FINAL.DEC and pick the P waves
#####
cd ${MYPWD}/${DIR}/${DIR}
CWBDODEC
#####
#      compute ML
#####
(cd ../ML.REG;DOML)&


#####
#       for waveforms inversion select the distance range
#####
CWBDODIST
#####
#	QC for traces for waveform inversion
#####
CWBDOQC


Last changed May 21, 2022