Commit ce26aaa5 authored by thomas.forbriger's avatar thomas.forbriger Committed by thomas.forbriger
Browse files

soutifu test cases are implemented and provide promising results

This is a legacy commit from before 2015-03-01.
It may be incomplete as well as inconsistent.
See COPYING.legacy and README.history for details.


SVN Path:     http://gpitrsvn.gpi.uni-karlsruhe.de/repos/TFSoftware/trunk
SVN Revision: 4033
SVN UUID:     67feda4a-a26e-11df-9d6e-31afc202ad0c
parent 297088f5
......@@ -6,7 +6,7 @@ Schicht ueber Halbraum Referenz Modell
Zb alpha beta rho Qalpha Qbeta Rb
-----------------------------------------------------------------------------
.000 .33180 .00000 .001300 1000.000 -1.000
0.0050000 0.4500 0.23000 1.500000 3.000 3.000
0.0050000 0.4500 0.23000 1.500000 5.000 5.000
halfspace: 1.7000 0.65000 2.200000 20.000 20.000
par units description
......
Schicht ueber Halbraum Referenz Modell
number of layers: 2
earth radius (km): 0.000 reference frequency (Hz): .000
Zb alpha beta rho Qalpha Qbeta Rb
-----------------------------------------------------------------------------
.000 .33180 .00000 .001300 1000.000 -1.000
0.0050000 0.3500 0.18000 1.500000 5.000 5.000
halfspace: 1.0000 0.55000 2.200000 20.000 20.000
par units description
----------------------------------------------------------------------------
Zb km bottom-of-layer depth
alpha km/s P-wave layer velocity
beta km/s S-wave layer velocity
rho g/cm^3 layer density
Qalpha quality factor related to alpha
Qbeta quality factor related to beta
Rb km radius corresponding to bottom of layer
......@@ -24,13 +24,21 @@ edit: flist; vim $<
.PHONY: clean
clean: ;
-find . -name \*.bak | xargs --no-run-if-empty /bin/rm -v
-/bin/rm -vf flist *.xxx *.xxx.* *.sff
-/bin/rm -vf flist *.xxx *.xxx.* *.sff *.TZ *.TR *.grn *.su
#----------------------------------------------------------------------
# test cases for soutifu
soutifu%: Makefile.soutifu ; $(MAKE) -f $< $@
# soutifu test cases
SOUTIFUCASES=1 2a 2b 3a 3b 3c
SOUTIFURESULTS=$(addprefix soutifu,$(addsuffix _report,$(SOUTIFUCASES)))
soutifutests:
$(MAKE) clean
/bin/rm -fv soutifu*
$(MAKE) $(addsuffix .pdf,$(SOUTIFURESULTS))
#----------------------------------------------------------------------
# test cases for foutra
......
......@@ -11,7 +11,7 @@
#
# ============================================================================
#
# produce synthetics shot gathers, using refmet
# produce synthetic shot gathers, using refmet
#
MODELS=2lay.par
......@@ -33,23 +33,45 @@ refmetmain.xxx: refmetmain.tpl $(REFMETMOD) $(REFMETSRC) $(REFMETRCV)
sed -e 's/<MODEL>/$(REFMETMOD)/' \
-e 's/<SOURCE>/$(REFMETSRC)/' \
-e 's/<RECEIVERS>/$(REFMETRCV)/' $< > $@
2laymain.xxx: refmetmain.tpl 2lay.par $(REFMETSRC) $(REFMETRCV)
sed -e 's/<MODEL>/2lay.par/' \
-e 's/<SOURCE>/$(REFMETSRC)/' \
-e 's/<RECEIVERS>/$(REFMETRCV)/' $< > $@
2laybmain.xxx: refmetmain.tpl 2layb.par $(REFMETSRC) $(REFMETRCV)
sed -e 's/<MODEL>/2layb.par/' \
-e 's/<SOURCE>/$(REFMETSRC)/' \
-e 's/<RECEIVERS>/$(REFMETRCV)/' $< > $@
seismo.TZ seismo.TR: refmetmain.xxx
refmet -v -4 -o seismo -c $<
2lay.TZ 2lay.TR: 2laymain.xxx
refmet -v -4 -o 2lay -c $<
2layb.TZ 2layb.TR: 2laybmain.xxx
refmet -v -4 -o 2layb -c $<
#----------------------------------------------------------------------
# produce seismogram file by windowing such that backpropagating
# cut-off phase is removed
WINLIM=2000
win.fil.xxx: ; echo -e "win 1,$(WINLIM)\nend" > $@
seismo.sff: seismo.TZ win.fil.xxx
synthetic%.sff: %.TZ win.fil.xxx
stufi $(word 2,$^) -v -o $<; /bin/mv $<.sfi $@
# apply a filter, simulating a source time function
STFPER=0.1
stf.fil.xxx: ; echo -e "lpb $(STFPER),2\ndel 0.03\nend" > $@
%.stf.sff: %.sff stf.fil.xxx
STFPER=0.04
stf.fil.xxx: ; echo -e "lpb $(STFPER),4\ndel 0.03\nend" > $@
data%.sff: synthetic%.sff stf.fil.xxx
tidofi -v -o -cf $(word 2,$^) $@ $<
#----------------------------------------------------------------------
# operate on SeismicUn*x data
%.su: %.sff; any2any --verbose --itype sff --otype su --overwrite $@ $<
#----------------------------------------------------------------------
# Fourier Bessel control operation
# syg
# ---
$(patsubst %.par,%syg.grn,$(MODELS)): %syg.grn: %.par zforce.xxx
......@@ -61,21 +83,169 @@ $(patsubst %.par,%syg.grn,$(MODELS)): %syg.grn: %.par zforce.xxx
grepg $< -W -d $@/ps -p 0.8 -s -f 10 -i
# ============================================================================
# apply STF inversion
TSHIFT=0.4
convseis.sff stf.sff: seismo.stf.sff seismo.sff
soutifu -D=3 -v -o -wc convseis.sff -ws stf.sff \
fbd:tshift=$(TSHIFT) $^
soutifu.ps: seismo.sff seismo.stf.sff convseis.sff
refract -d $@/cps \
-Sm 3 -Se 1.8 -C -Sa 5. -Sc 5. \
$(word 1,$^) n:"recorded data" \
$(word 2,$^) n:"synthetics with standard wavelet" \
$(word 3,$^) n:"synthetics convolved with stf" o:1.0
soutifustf.ps: stf.sff
stuplo -d $@/ps -E -m 0. -Y 0.9 -S -$(TSHIFT) $<
# test cases
# ----------
# test case 1
# -----------
SOUTIFU1SHIFT=0.4
SOUTIFU1=fbd:tshift=$(SOUTIFU1SHIFT)
soutifu1_data.sff: data2lay.sff; /bin/cp -vpd $< $@
soutifu1_synthetic.sff: synthetic2lay.sff; /bin/cp -vpd $< $@
soutifu1_signaldesc.xxx: stf.fil.xxx
echo "synthetics are calculated with a standard source" > $@
echo "time function which is band limited and has a" >> $@
echo "duration of $(SRCDUR) seconds. The recorded data" >> $@
echo "is simulated from this by applying low-pass filter" >> $@
echo "and a time delay:" >> $@
cat $< >> $@
soutifu1_convseis.su soutifu1_stf.su: \
soutifu1_data.su soutifu1_synthetic.su
soutifu -v -o -wc soutifu1_convseis.su -ws soutifu1_stf.su \
--type su $(SOUTIFU1) $^
soutifu1_description.xxx: soutifu1_signaldesc.xxx
echo "soutifu test case 1: $(SOUTIFU1)" > $@
echo >> $@
cat $< >> $@
soutifu1_section.ps: soutifu1_data.su soutifu1_synthetic.su \
soutifu1_convseis.su
refractx -d $@/vcps -ty su \
-Sm 2 -Se 1.9 -C -Sa 2.6 -Sc 5. -St 0.,.8\
-Tt "soutifu test case 1: $(SOUTIFU1)" \
$(word 1,$^) n:"recorded data" s:2,1,5 r:0.7,0.7,0.7 \
$(word 2,$^) n:"synthetics" s:3,1,1 r:0.,0.,1.\
$(word 3,$^) n:"synthetics convolved with stf" s:4,1,1 r:1.,0.,0.
soutifu1_stf.ps: soutifu1_stf.su
stuplox -ty su -d $@/ps -E -m 0. -Y 0.9 -S -$(SOUTIFU1SHIFT) \
-R 0.6 -L 0.1 -T "soutifu test case 1: $(SOUTIFU1)" -l 3,3,3\
-u "source time function" $<
#----------------------------------------------------------------------
# test case 2
# -----------
SOUTIFU2SHIFT=0.4
SOUTIFU2WL=1.
SOUTIFU2=fbd:tshift=$(SOUTIFU2SHIFT):waterlevel=$(SOUTIFU2WL)
soutifu2x_data.sff: synthetic2lay.sff; /bin/cp -vpd $< $@
soutifu2x_synthetic.sff: data2lay.sff; /bin/cp -vpd $< $@
soutifu2x_convseis.su soutifu2x_stf.su: \
soutifu2x_data.su soutifu2x_synthetic.su
soutifu -v -o -wc soutifu2x_convseis.su -ws soutifu2x_stf.su \
--type su $(SOUTIFU2) $^
soutifu2x_description.xxx: soutifu1_signaldesc.xxx
echo "soutifu test case 2: $(SOUTIFU2)" > $@
echo >> $@
echo "We take the same data like in test case 1." >> $@
echo "This time, however, data and synthetics are exchanged." >> $@
echo "Since synthetics are narrow band with respect to data" >> $@
echo "an appropriate water level is required." >> $@
echo >> $@
echo "Signal description from test case 1:" >> $@
cat $< >> $@
soutifu2x_section.ps: soutifu2x_data.su soutifu2x_synthetic.su \
soutifu2x_convseis.su
refractx -d $@/vcps -ty su \
-Sm 2 -Se 2.2 -C -Sa 2.6 -Sc 5. -St 0.,.8\
-Tt "soutifu test case 1: $(SOUTIFU2)" \
$(word 1,$^) n:"recorded data" s:2,1,5 r:0.7,0.7,0.7 \
$(word 2,$^) n:"synthetics" s:3,1,1 r:0.,0.,1.\
$(word 3,$^) n:"synthetics convolved with stf" s:4,1,1 r:1.,0.,0.
soutifu2x_stf.ps: soutifu2x_stf.su
stuplox -ty su -d $@/ps -E -m 0. -Y 0.9 -S -$(SOUTIFU1SHIFT) \
-R 0.6 -L 0.1 -T "soutifu test case 2: $(SOUTIFU2)" -l 3,3,3\
-u "source time function" $<
soutifu2a_report.pdf:
/bin/rm -fv *.fil.xxx soutifu2x*
$(MAKE) soutifu2x_report.pdf SOUTIFU2WL=10.
/bin/mv -fv soutifu2x_report.pdf $@
soutifu2b_report.pdf:
/bin/rm -fv *.fil.xxx soutifu2x* *description.xxx
$(MAKE) soutifu2x_report.pdf SOUTIFU2WL=1.e-4
/bin/mv -fv soutifu2x_report.pdf $@
soutifu2c_report.pdf:
/bin/rm -fv *.fil.xxx soutifu2x* *description.xxx
$(MAKE) soutifu2x_report.pdf SOUTIFU2WL=1.e-30
/bin/mv -fv soutifu2x_report.pdf $@
#----------------------------------------------------------------------
# test case 3
# -----------
SOUTIFU3SHIFT=0.4
SOUTIFU3WL=1.e-4
SOUTIFU3EXP=0.
SOUTIFU3=fbd:tshift=$(SOUTIFU3SHIFT):waterlevel=$(SOUTIFU3WL):exp=$(SOUTIFU3EXP)
soutifu3x_data.sff: data2lay.sff; /bin/cp -vpd $< $@
soutifu3x_synthetic.sff: synthetic2layb.sff; /bin/cp -vpd $< $@
soutifu3x_convseis.su soutifu3x_stf.su: \
soutifu3x_data.su soutifu3x_synthetic.su
soutifu -v -o -wc soutifu3x_convseis.su -ws soutifu3x_stf.su \
--type su $(SOUTIFU3) $^
soutifu3x_description.xxx: stf.fil.xxx
echo "soutifu test case 3: $(SOUTIFU3)" > $@
echo >> $@
echo "The model for which synthetics are calculated is too" >> $@
echo "slow in its wave propagation properties. Therefore" >> $@
echo "a compromise have to be made between far and near" >> $@
echo "offset traces." >> $@
echo >> $@
echo "Signal description:" >> $@
echo "Synthetics are calculated with a standard source" >> $@
echo "time function which is band limited and has a" >> $@
echo "duration of $(SRCDUR) seconds. The recorded data" >> $@
echo "is simulated from this by applying low-pass filter" >> $@
echo "and a time delay. The corner period of the low-pass is" >> $@
echo "so small that it pracically has no effect:" >> $@
cat $< >> $@
soutifu3x_section.ps: soutifu3x_data.su soutifu3x_synthetic.su \
soutifu3x_convseis.su
refractx -d $@/vcps -ty su \
-Sm 2 -Se 2.2 -C -Sa 2.6 -Sc 5. -St 0.,.8\
-Tt "soutifu test case 1: $(SOUTIFU3)" \
$(word 1,$^) n:"recorded data" s:2,1,5 r:0.7,0.7,0.7 \
$(word 2,$^) n:"synthetics" s:3,1,1 r:0.,0.,1.\
$(word 3,$^) n:"synthetics convolved with stf" s:4,1,1 r:1.,0.,0.
soutifu3x_stf.ps: soutifu3x_stf.su
stuplox -ty su -d $@/ps -E -m 0. -Y 0.9 -S -$(SOUTIFU1SHIFT) \
-R 0.6 -L 0.1 -T "soutifu test case 2: $(SOUTIFU3)" -l 3,3,3\
-u "source time function" $<
soutifu3a_report.pdf:
/bin/rm -fv *.fil.xxx soutifu3x* *description.xxx
$(MAKE) soutifu3x_report.pdf STFPER=0.001 SOUTIFU3WL=1.e-4
/bin/mv -fv soutifu3x_report.pdf $@
soutifu3b_report.pdf:
/bin/rm -fv *.fil.xxx soutifu3x* *description.xxx
$(MAKE) soutifu3x_report.pdf STFPER=0.001 SOUTIFU3WL=1.
/bin/mv -fv soutifu3x_report.pdf $@
soutifu3c_report.pdf:
/bin/rm -fv *.fil.xxx soutifu3x* *description.xxx
$(MAKE) soutifu3x_report.pdf STFPER=0.001 SOUTIFU3WL=1.e-2 SOUTIFU3EXP=4.
/bin/mv -fv soutifu3x_report.pdf $@
#======================================================================
%_description.ps: %_description.xxx
a2ps -o $@ -r --center-title=$(patsubst %_description.xxx,%,$<) \
-l 60 $<
%_report.ps: %_description.ps %_section.ps %_stf.ps
gs -sDEVICE=pswrite -dNOPAUSE -dBATCH -sOutputFile=$@ $^
%_report.pdf: %_description.ps %_section.ps %_stf.ps
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@ $^
%.psp: %.ps; gv $<; /bin/rm -fv $<
%.pdp: %.pdf; acroread $<; /bin/rm -fv $<
# ----- END OF Makefile.soutifu -----
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment