#!/bin/csh # http://www.unavco.ucar.edu/data_support/software/teqc/tutorial.html#sec_13 # script to iteratively: # 1. get data for 2 stations # 2. combine 2 days of files to make 48 hours # 3. rewindow to 23 hours 56 minutes, shifted by 4 min/day # after Jan. 2 # # lower-case station names for RINEX file names set STATION1 = `echo pve3` set STATION2 = `echo cat1` set STATION3 = `echo tmgo` set STATION4 = `echo mdo1` @ DAY = 1 set YR = "01" # get the RINEX files: while ($DAY <= 184) @ DAY = $DAY + 1 set YMD = `ydoy2ymd $YR $DAY` get.rinex $YMD /bin/mv *.Z raw/. end cd raw/ uncompress *.Z hatanaka *.01d /bin/rm *.01d cd ../. @ DAY = 2 @ DAYBEFORE = 1 @ MINUTES = 0 while ($DAY <= 182) @ DAY = $DAY + 1 @ MINUTES = $MINUTES + 4 @ DAYBEFORE = $DAY - 1 echo "Day "$DAY", min "$MINUTES set day2 = $DAY set day2b = $DAYBEFORE # build RINEX file names: if ($DAY < 10) then set day2 = "00${day2}" else if ($DAY < 100) then set day2 = "0${day2}" endif if ($DAYBEFORE < 10) then set day2b = "00${day2b}" else if ($DAYBEFORE < 100) then set day2b = "0${day2b}" endif set FILE1A = ${STATION1}${day2}0.${YR}o set FILE1B = ${STATION1}${day2b}0.${YR}o set FILE2A = ${STATION2}${day2}0.${YR}o set FILE2B = ${STATION2}${day2b}0.${YR}o set FILE3A = ${STATION3}${day2}0.${YR}o set FILE3B = ${STATION3}${day2b}0.${YR}o set FILE4A = ${STATION4}${day2}0.${YR}o set FILE4B = ${STATION4}${day2b}0.${YR}o # combine files echo ${STATION1} teqc raw/$FILE1B raw/$FILE1A > /tmp/combo1.$$ echo ${STATION2} teqc raw/$FILE2B raw/$FILE2A > /tmp/combo2.$$ echo ${STATION3} teqc raw/$FILE3B raw/$FILE3A > /tmp/combo3.$$ echo ${STATION4} teqc raw/$FILE4B raw/$FILE4A > /tmp/combo4.$$ # window data; example: # I specify the end time (-4 minutes each day) and window backwards # 23 hours 56 minutes to get a start time: # teqc -e yymmddhhmmss -dm 1436 rinex.input > rinexoutput set YMD = `ydoy2ymd $YR $DAY` set YEAR = `echo $YMD | awk '{print substr($1,1,2)}'` set MONTH = `echo $YMD | awk '{print substr($1,3,3)}'` set DAYDAY = `echo $YMD | awk '{print substr($1,6,2)}'` # take 3-character month, turn into 2-digit month switch ($MONTH) case 'jan': set mo = "01" breaksw case 'feb': set mo = "02" breaksw case 'mar': set mo = "03" breaksw case 'apr': set mo = "04" breaksw case 'may': set mo = "05" breaksw case 'jun': set mo = "06" breaksw case 'jul': set mo = "07" breaksw endsw @ STOPMIN = 1440 - $MINUTES @ HH = `expr $STOPMIN / 60` echo $STOPMIN $HH if ($HH < 10) then set hh = "0${HH}" else set hh = "${HH}" endif # echo $hh @ blah = `expr ${HH} '*' 60` @ MM = $STOPMIN - $blah if ($MM < 10) then set mm = "0${MM}" else set mm = ${MM} endif echo ${YMD} ${HH}${MM} echo ${YEAR}${mo}${DAYDAY}${hh}${mm}00 teqc -e ${YEAR}${mo}${DAYDAY}${hh}${mm}00 -dm 1436 /tmp/combo1.$$ \ > ${STATION1}${day2}0.${YR}o teqc -e ${YEAR}${mo}${DAYDAY}${hh}${mm}00 -dm 1436 /tmp/combo2.$$ \ > ${STATION2}${day2}0.${YR}o teqc -e ${YEAR}${mo}${DAYDAY}${hh}${mm}00 -dm 1436 /tmp/combo3.$$ \ > ${STATION3}${day2}0.${YR}o teqc -e ${YEAR}${mo}${DAYDAY}${hh}${mm}00 -dm 1436 /tmp/combo4.$$ \ > ${STATION4}${day2}0.${YR}o end /bin/rm /tmp/combo*.$$