Go to the list of seismic processes.          Go to SIOSEIS introduction.          Go to SIOSEIS examples          Go back to SIOSEIS Knudsen scripts

script to create depth files from Knudsen correlate files

#! /bin/bash
#   usage:     raw2depth input-pathname output-pathname [EDEPTH]
#   Creates SEG-Y envelope files in time and depth from raw Knudsen sgy correlate files.
#   All files in the input directory with the .sgy suffix are converted.
#
#####       CHANGE PARAMETER  EDEPTH FOR A DIFFERENT TERMINATION DEPTH  ####
#
#   input-directoy = the directory of Knudsen correlate files that end in .sgy
#   output-directoy = The directory of envelope and depth files.
#   (the output file names will be the input file name with  env- and
#       depth-env-  as a prefix).
#   [EDEPTH] is optional.  EDEPTH is in meters.  e.g. 6000
#   If EDEPTH is NOT given the output will be 16000 meters sampled at 1m
#   EDEPTH also controls the sample interval.  This is because SEG-Y permits
#   a maximum of 16383 samples.
#
#   The output depth files will have permissions changed to read only.
#
#  version 5 Feb 2009 - Paul Henkart
#
if [ "$#" != "2" ]; then
   if [ "$#" != "3" ]; then
        echo "*****    raw2depth ERROR    *****"
        echo "Usage:   raw2depth  input-directory output-directory [EDEPTH]"
        exit
   fi
fi
if [ "$1" == "$2" ]; then
        echo "*****     raw2depth ERROR    *****"
        echo "Do not use the same directory for output as input (it causes a loop)."
        exit
fi
dir_in="$1"
dir_out="$2"

declare OSI edepth ndone
let OSI=1 edepth=16000 ndone=0
LINE=" "
if [ "$#" == "3" ]; then
   LINE="     sdepth 0  edepth $3"
   edepth=$3
fi

if [ $edepth -lt 8192 ]; then
        OSI=.5
fi
if [ $edepth -lt 4096 ]; then
        OSI=.25
fi
if [ $edepth -lt 2048 ]; then
        OSI=.125
fi

cd "$dir_in"
for x in *sgy ; do
	if [ $ndone == 0 ]; then
		cd "-"
	fi
	let ndone="1"
        extension=${x##*.}
        if [ $extension = sgy ]; then
                echo "reading correlate file: $dir_in/$x"
                echo "writing envelope (time) file: $dir_out/env-$x"
                echo "writing depth file: $dir_out/depth-env-$x"
sioseis << eof
noecho procs diskin header t2f f2t gains header2 filter diskob prout
              wbt avenor mix gains2 header3 t2d diskoa end
diskin
        ipath $dir_in/$x end
end
header
    i120 = i58    ! save the original trace length
    fno 0 lno 9999999 ftr 0 ltr 999 end
end
header2
    i58 = i120    ! restore the original trace length
    fno 0 lno 9999999 ftr 0 ltr 999 end
end
prout
   fno 0 lno 999999 noinc 500 end    ! print every 500th trace
end
gains
   type 7 end  ! complex modulus - make envelope from analytic
end
t2f
   end     ! number of sample is the next power of two larger than the input
end
f2t
   type analytic end   ! create the complex trace
end
filter
    ftype 0 pass 2 500 dbdrop 48 end
end
t2d
   $LINE
   osi $OSI  vtp 1500 0 end
end
gains2
    subwb yes type 5 alpha 5 end
end
avenor
   sets 0 .1 addwb yes end
end
wbt
   vel 1500 end
end
mix
   weight 1  1 end
end
header3
   c30 'SIOSEIS processing:  convert correlates to envelope, then to depth'
   c31 'header t2f f2t gains header2 filter prout wbt avenor mix gains2 t2d diskoa'
   c32 '        filter ftype 0 pass 2 500 dbdrop 48 end'
   c33 '        wbt vel 1500 end # convert water depth to time'
   c34 '        avenor sets 0 .1 addwb yes end'
   c35 '        mix weight 1  1 end'
   c36 '        gains2 subwb yes type 5 alpha 5 end # exponential gain from wb'
   c37 'Notes: '
   c38 '1)  The data sample interval is $OSI kilometers, thus other seismic'
   c39 '    packages should treat it like time.'
   c40 '2)  The deep water delay has been removed - all data start at zero.'
   end
end
diskoa
    opath $dir_out/depth-env-$x end
end
diskob
    opath $dir_out/env-$x end
end
end
eof
chmod 444 $dir_out/env-$x
chmod 444 $dir_out/depth-env-$x

      fi
done