#

#  SCRIPT BEHAVIOUR VARIABLES
#  SCRIPT BEHAVIOUR VARIABLES
#  SCRIPT BEHAVIOUR VARIABLES

# Duh....
set DEBUG = 0

# If you want to lazily type unravel raw/*/*.keb instead of
# having to remember the name of the last line unravelled
# then set this to 1
set SKIP_ALREADY_UNRAVELLED = 1

set ZIP_RAW = 1

#  END OF SCRIPT BEHAVIOUR VARIABLES
#  END OF SCRIPT BEHAVIOUR VARIABLES
#  END OF SCRIPT BEHAVIOUR VARIABLES


if ($# == 0) then
	echo "USAGE: kunravel raw/subdir/line_year_jday_time.keb"
	echo "Raw data must be in path raw/subdir/"
	echo "Auto-generates the following directories:"
        echo "\t\t\t\tmerged"
        echo "\t\t\t\tdecnav"
        echo "\t\t\t\tmerged/subdir"
        echo "\t\t\t\tdecnav/subdir"
	exit(1)
endif

if (! (-e raw)) then
        echo "No raw directory!"
        exit(0)
endif

set FILE_COUNT = 0
set SKIP_COUNT = 0



foreach FILE ($*)
        set SUBDIR = `echo $FILE | sed -e 's/\// /g' | awk '{print $2}' `
        set LINE_NUMBER = `echo $FILE | sed -e 's/\// /g' | awk '{print $3}' | sed -e 's/\.keb//' -e 's/\.gz//' `
        set LINE_NAME = `echo $FILE | sed -e 's/\// /g' | awk '{print $3}' | sed -e 's/\.gz//' `
	set YEAR = `echo $LINE_NAME | awk -F"_" '{print $2}' `
	set JDAY = `echo $LINE_NAME | awk -F"_" '{print $3}' `

#echo $SUBDIR
#echo $LINE_NUMBER
#echo $LINE_NAME
#echo $YEAR
#echo $JDAY
#exit(1)

	if ($DEBUG) then
                echo "Parsed the following:"
                echo "\tSubdirectory:" $SUBDIR
                echo "\tLine number:" $LINE_NUMBER
                echo "\tLine name:" $LINE_NAME
		echo "\tYear:" $YEAR
		echo "\tJday:" $JDAY
	endif

        if (! (-e raw/$SUBDIR) ) then
                echo "No raw subdir by that name!"
                echo "raw data must be in path: raw/subdir/"
                echo `date` $SUBDIR $LINE_NUMBER "...No raw subdir by that name!" >> error.log
                continue
        endif

        if ($SKIP_ALREADY_UNRAVELLED && -e merged/$SUBDIR/$LINE_NUMBER.merged) then
                echo "Skipping" $SUBDIR $LINE_NAME "since already unravelled"
                @ SKIP_COUNT = $SKIP_COUNT + 1
                continue
        endif


        if (! (-e raw/$SUBDIR/$LINE_NAME) ) then
                echo "No raw file by that name...checking for gzip'd raw"
                if (-e raw/$SUBDIR/$LINE_NAME.gz) then
                        echo "Found gzip'd file..."
                        gunzip raw/$SUBDIR/$LINE_NAME.gz
                else
                        echo "No raw (or gzip'd raw) found by that name"
                        echo "raw data must be in path: raw/subdir/"
                        echo `date` $SUBDIR $LINE_NUMBER "...No raw (or gzip'd raw) found by that name!" >> error.log
                        continue
                endif
        endif

        if (! (-e merged/$SUBDIR) ) then
                echo "Autogenerating subdirectory in merged..."
                mkdir -p merged/$SUBDIR
        endif

        if (! (-e decnav/$SUBDIR) ) then
                echo "Autogenerating subdirectory in decnav..."
                mkdir -p decnav/$SUBDIR
        endif
	
        if (! (-e kseis/$SUBDIR) ) then
                echo "Autogenerating subdirectory in kseis..."
                mkdir -p kseis/$SUBDIR
        endif

	knud2glo \
		-omg \
		-VX \
		-year $YEAR \
		-jday $JDAY \
		-hasBOTH \
		-min16_HF 0 \
		-max16_HF 16000 \
		-min16_LF 0 \
		-max16_LF 16000 \
		-out merged/$SUBDIR/$LINE_NUMBER \
		-in raw/$SUBDIR/$LINE_NAME

######### commented the stuff below out for Heron arctic 2008 processing, steveb ############


	# Fake ourselves a little .param file with the position
	# of the 'ducer, the CNAV antenna and the waterline Z re: the RP
#	echo "WLZ=9.69" >! merged/$SUBDIR/$LINE_NUMBER.param
#	echo "S1X=17.55" >> merged/$SUBDIR/$LINE_NUMBER.param
#	echo "S1Y=0.00" >> merged/$SUBDIR/$LINE_NUMBER.param
#	echo "S1Z=16.34" >> merged/$SUBDIR/$LINE_NUMBER.param
#	echo "S1H=0.00" >> merged/$SUBDIR/$LINE_NUMBER.param
#	echo "S1R=0.00" >> merged/$SUBDIR/$LINE_NUMBER.param
#	echo "S1P=0.00" >> merged/$SUBDIR/$LINE_NUMBER.param
#	echo "P1Z=-19.00" >> merged/$SUBDIR/$LINE_NUMBER.param
#	echo "P1X=-4.00" >> merged/$SUBDIR/$LINE_NUMBER.param
#	echo "P1Y=0.00\n" >> merged/$SUBDIR/$LINE_NUMBER.param
#
	# <retarded> gotta merge the antenna nav to get a rough position off the
	# ship	
#	mergeNav \
#		 merged/$SUBDIR/$LINE_NUMBER.merged

	# Then we use the antenna nav to get course made good into the .merged file
#	useCMG \
#		-filtlen 5 \
#		merged/$SUBDIR/$LINE_NUMBER.merged
#
	# Then we re-merge the nav with the lever arm offsets between CNAV and
	# the RP and the CMG from the last step
#	mergeNav \
#		-use_params \
#		merged/$SUBDIR/$LINE_NUMBER.merged
	# </retarded>

	# Gotta do newMergeAtt to reduce the soundings to the waterline!!!
	# Can post-proc with appropriate watercolumn, but at very least should 
	# reduce the soundings to the waterline and add the x-offset from RP to 'ducer
	
	# Now apply webtide values, have it auto-guess the model with the provided
	# map
#	tidecor2.42 \
#		-use_nearest \
#		-model_map $ARCTICNET_MAPS/tidecor_models.8bit \
#		-onto_merged \
#		-in merged/$SUBDIR/$LINE_NUMBER.merged

#	getBounds \
#		 merged/$SUBDIR/$LINE_NUMBER.merged
	
#	appendNav \
#		-skip 10 \
#		-comp decnav/$SUBDIR/$LINE_NUMBER.decnav \
#		merged/$SUBDIR/$LINE_NUMBER.nav

	if ($ZIP_RAW) then
                echo "\nZipping the raw file back up!\n"
                gzip raw/$SUBDIR/$LINE_NAME
        endif


        echo "Done" $SUBDIR $LINE_NUMBER "!\n"

        @ FILE_COUNT = $FILE_COUNT + 1
	
end


echo "\n\nUnravelled" $FILE_COUNT "of" $# "files..."

if ($SKIP_ALREADY_UNRAVELLED && $SKIP_COUNT) then
        echo "Skipped" $SKIP_COUNT "of" $# "files..."
endif

echo "\n"

exit(0)
