$ Precondition with RMS balance first, then filter estimation
#include "../../Cakerules/SEP.martin.rules"
$#define PEMFULL /promax1/martin/Window/
$#define PEMWIND /promax1/martin/Window/

#define PEMFULL ../../Data/PemWindow/
#define PEMWIND ../../Data/PemWindow/

#define PSARGS color=y fat=1 fatmult=1.5

#define FIGDIR ../Fig
#define FIGSUP ../Fig2

$#define FIGLIST wavmid wavoff wavrec wavsrc

#define FIGLIST xquizNMOBAVr  eqyycube

#define BINDIR ../../Bin/MTYPE
#include <SEP.defs>

FIGDIR/wavoff.v: [[ sub -i X off.X.stk.H NINECOMP ]]
	Merge axis=2 off.xx.stk.H off.xy.stk.H off.xz.stk.H >j1.H
	Merge axis=2 off.yx.stk.H off.yy.stk.H off.yz.stk.H >j2.H
	Merge axis=2 off.zx.stk.H off.zy.stk.H off.zz.stk.H >j3.H
	Merge axis=1 j1.H j2.H j3.H > j4.H
	Taplot <j4.H |Ta2vplot title="Offset Filters" wanttitle=n wantaxis=n wantlabel=n out=FIGDIR/wavoff.v NULL

FIGDIR/wavmid.v: [[ sub -i X mid.X.stk.H NINECOMP ]]
	Merge axis=2 mid.xx.stk.H mid.xy.stk.H mid.xz.stk.H >j1.H
	Merge axis=2 mid.yx.stk.H mid.yy.stk.H mid.yz.stk.H >j2.H
	Merge axis=2 mid.zx.stk.H mid.zy.stk.H mid.zz.stk.H >j3.H
	Merge axis=1 j1.H j2.H j3.H > j4.H
	Taplot <j4.H |Ta2vplot title="Midpoint Filters" wanttitle=n wantaxis=n wantlabel=n out=FIGDIR/wavmid.v NULL


FIGDIR/wavsrc.v: [[ sub -i X src.X.stk.H NINECOMP ]]
	Merge axis=2 src.xx.stk.H src.xy.stk.H src.xz.stk.H >j1.H
	Merge axis=2 src.yx.stk.H src.yy.stk.H src.yz.stk.H >j2.H
	Merge axis=2 src.zx.stk.H src.zy.stk.H src.zz.stk.H >j3.H
	Merge axis=1 j1.H j2.H j3.H > j4.H
	Taplot <j4.H |Ta2vplot title="Source Filters" wanttitle=n wantaxis=n wantlabel=n out=FIGDIR/wavsrc.v NULL


FIGDIR/wavrec.v: [[ sub -i X rec.X.stk.H NINECOMP ]]
	Merge axis=2 rec.xx.stk.H rec.xy.stk.H rec.xz.stk.H >j1.H
	Merge axis=2 rec.yx.stk.H rec.yy.stk.H rec.yz.stk.H >j2.H
	Merge axis=2 rec.zx.stk.H rec.zy.stk.H rec.zz.stk.H >j3.H
	Merge axis=1 j1.H j2.H j3.H > j4.H
	Taplot <j4.H |Ta2vplot title="Receiver Filters" wanttitle=n wantaxis=n wantlabel=n out=FIGDIR/wavrec.v NULL


tot.%.H:  /* xqfilt.%.H */
	Reverse which=2 < xqfilt.%.H >jxqfilt.%.2.H
	Merge xqfilt.%.H jxqfilt.%.2.H axis=2 space=n >tot.%.H
	echo "d1=0.004        d2=110  d3=110" >> tot.%.H
	echo "o1=-0.04    o2=-11055       o3=5637.5" >> tot.%.H

src.tot.%.H: tot.%.H
	Cubify axis3=SHT-X axis2=OFFSET attrfile=PEMFULL/hxxcube.H < tot.%.H >src.tot.%.H

rec.tot.%.H: tot.%.H
	Cubify axis3=REC-X axis2=OFFSET attrfile=PEMFULL/hxxcube.H < tot.%.H >rec.tot.%.H


mid.%.stk.H:  tot.%.H
	Stack < tot.%.H  > mid.%.stk.H

off.%.stk.H: tot.%.H
	Transp plane=23 < tot.%.H  |Stack > off.%.stk.H

src.%.stk.H: src.tot.%.H
	Stack < src.tot.%.H  > src.%.stk.H

rec.%.stk.H: rec.tot.%.H
	Stack < rec.tot.%.H  > rec.%.stk.H

%.B.H:    %.H   
	Balance <%.H >%.B.H

xquiz%.NMO.H:  xquiz%.H 
	BINDIR/NMO < xquiz%.H vel=8000 >xquiz%.NMO.H


xquizxx.H: PEMFULL/cwindowxx.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowxx.H | Balance >jaxx.H
	Window f2=101  n2=101  <PEMFULL/cwindowxx.H | Reverse which=2 | Balance >jbxx.H
	BINDIR/Xquizitav niter=5 <jaxx.H in2=jbxx.H >jaxx.eq.H filt=xqfilt.xx.H out2=jbxx.eq.H 
	Reverse which=2 <jbxx.eq.H >jcxx.eq.H
	Merge axis=2 space=n jaxx.eq.H jcxx.eq.H > xquizxx.H
	Rm jaxx.H jaxx.eq.H jbxx.H jbxx.eq.H jcxx.eq.H

xquizyy.H:  PEMFULL/cwindowyy.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowyy.H | Balance >jayy.H
	Window f2=101  n2=101  <PEMFULL/cwindowyy.H | Reverse which=2 | Balance >jbyy.H
	BINDIR/Xquizitav niter=5 <jayy.H in2=jbyy.H >jayy.eq.H filt=xqfilt.yy.H out2=jbyy.eq.H 
	Reverse which=2 <jbyy.eq.H >jcyy.eq.H
	Merge axis=2 space=n jayy.eq.H jcyy.eq.H > xquizyy.H
	Rm jayy.H jayy.eq.H jbyy.H jbyy.eq.H jcyy.eq.H

xquizzz.H:  PEMFULL/cwindowzz.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowzz.H | Balance >jazz.H
	Window f2=101  n2=101  <PEMFULL/cwindowzz.H | Reverse which=2 | Balance >jbzz.H
	BINDIR/Xquizitav niter=5  <jazz.H in2=jbzz.H >jazz.eq.H filt=xqfilt.zz.H out2=jbzz.eq.H 
	Reverse which=2 <jbzz.eq.H >jczz.eq.H
	Merge axis=2 space=n jazz.eq.H jczz.eq.H > xquizzz.H
	Rm jazz.H jazz.eq.H jbzz.H jbzz.eq.H jczz.eq.H


xquizyx.H:  PEMFULL/cwindowyx.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowyx.H | Balance >jayx.H
	Window f2=101  n2=101  <PEMFULL/cwindowxy.H | Reverse which=2 | Balance >jbyx.H
	BINDIR/Xquizitav niter=5 <jayx.H in2=jbyx.H >jayx.eq.H filt=xqfilt.yx.H out2=jbyx.eq.H 
	Reverse which=2 <jbyx.eq.H >jcyx.eq.H
	Merge axis=2 space=n jayx.eq.H jcyx.eq.H > xquizyx.H
	Rm jayx.H jayx.eq.H jbyx.H jbyx.eq.H jcyx.eq.H

xquizxy.H:  PEMFULL/cwindowxy.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowxy.H | Balance >jaxy.H
	Window f2=101  n2=101  <PEMFULL/cwindowyx.H | Reverse which=2 | Balance >jbxy.H
	BINDIR/Xquizitav niter=5  <jaxy.H in2=jbxy.H >jaxy.eq.H filt=xqfilt.xy.H out2=jbxy.eq.H 
	Reverse which=2 <jbxy.eq.H >jcxy.eq.H
	Merge axis=2 space=n jaxy.eq.H jcxy.eq.H > xquizxy.H
	Rm jaxy.H jaxy.eq.H jbxy.H jbxy.eq.H jcxy.eq.H

xquizyz.H:  PEMFULL/cwindowyz.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowyz.H | Balance >jayz.H
	Window f2=101  n2=101  <PEMFULL/cwindowzy.H | Reverse which=2 |Balance >jbyz.H
	BINDIR/Xquizitav niter=5  <jayz.H in2=jbyz.H >jayz.eq.H filt=xqfilt.yz.H out2=jbyz.eq.H 
	Reverse which=2 <jbyz.eq.H >jcyz.eq.H
	Merge axis=2 space=n jayz.eq.H jcyz.eq.H > xquizyz.H
	Rm jayz.H jayz.eq.H jbyz.H jbyz.eq.H jcyz.eq.H

xquizzy.H:  PEMFULL/cwindowzy.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowzy.H | Balance >jazy.H
	Window f2=101  n2=101  <PEMFULL/cwindowyz.H | Reverse which=2 | Balance >jbzy.H
	BINDIR/Xquizitav niter=5 <jazy.H in2=jbzy.H >jazy.eq.H filt=xqfilt.zy.H out2=jbzy.eq.H 
	Reverse which=2 <jbzy.eq.H >jczy.eq.H
	Merge axis=2 space=n jazy.eq.H jczy.eq.H > xquizzy.H
	Rm jazy.H jazy.eq.H jbzy.H jbzy.eq.H jczy.eq.H


xquizxz.H:  PEMFULL/cwindowxz.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowxz.H | Balance >jaxz.H
	Window f2=101  n2=101  <PEMFULL/cwindowzx.H | Reverse which=2 | Balance >jbxz.H
	BINDIR/Xquizitav niter=5 <jaxz.H in2=jbxz.H >jaxz.eq.H filt=xqfilt.xz.H out2=jbxz.eq.H 
	Reverse which=2 <jbxz.eq.H >jcxz.eq.H
	Merge axis=2 space=n jaxz.eq.H jcxz.eq.H > xquizxz.H
	Rm jaxz.H jaxz.eq.H jbxz.H jbxz.eq.H jcxz.eq.H

xquizzx.H:  PEMFULL/cwindowzx.H BINDIR/Xquizitav
	Window f2=0    n2=101  <PEMFULL/cwindowzx.H | Balance >jazx.H
	Window f2=101  n2=101  <PEMFULL/cwindowxz.H | Reverse which=2 | Balance >jbzx.H
	BINDIR/Xquizitav niter=5 <jazx.H in2=jbzx.H >jazx.eq.H filt=xqfilt.zx.H out2=jbzx.eq.H 
	Reverse which=2 <jbzx.eq.H >jczx.eq.H
	Merge axis=2 space=n jazx.eq.H jczx.eq.H > xquizzx.H
	Rm jazx.H jazx.eq.H jbzx.H jbzx.eq.H jczx.eq.H


$ get a slice
xquiz%.NMO.S.H: xquiz%.NMO.H
	Window f1=30 n1=1 <xquiz%.NMO.H > xquiz%.NMO.S.H
	Rm xquiz%.NMO.H

xquiz%.S.H:  xquiz%.H 
	Window f1=30 n1=1 <xquiz%.H > xquiz%.S.H

FIGDIR/xquizBr.v: [[ sub -i X xquizX.S.H NINECOMP ]]
	PickRcpd.csh xquiz S.H
	Merge xquizxx.S.H.R xquizxy.S.H.R xquizxz.S.H.R axis=2 >j1.H
	Merge xquizyx.S.H.R xquizyy.S.H.R xquizyz.S.H.R axis=2 >j2.H
	Merge xquizzx.S.H.R xquizzy.S.H.R xquizzz.S.H.R axis=2 >j3.H
	Merge j1.H j2.H j3.H axis=1  >j4.H
	Taplot <j4.H pclip=90 |Ta2vplot title="Cross Equalized RMS" wanttitle=n wantlabel=n wantaxis=n out=FIGDIR/xquizBr.v NULL

%.T:    % 
	Transp plane=12 <% >%.T

FIGDIR/xquizNMOBAVr.v:  [[ sub -i X xquizX.NMO.S.H.T NINECOMP ]]
	Merge xquizxx.NMO.S.H.T xquizxy.NMO.S.H.T xquizxz.NMO.S.H.T axis=2 >j1.H
	Merge xquizyx.NMO.S.H.T xquizyy.NMO.S.H.T xquizyz.NMO.S.H.T axis=2 >j2.H
	Merge xquizzx.NMO.S.H.T xquizzy.NMO.S.H.T xquizzz.NMO.S.H.T axis=2 >j3.H
	Merge j1.H j2.H j3.H axis=1  >j4.H
	Taplot <j4.H pclip=90 |Ta2vplot title="Cross Equalized NMO" wanttitle=n wantlabel=n wantaxis=n out=FIGDIR/xquizNMOBAVr.v NULL
	cake FIGDIR/xquizNMOBAVr.v3

FIGDIR/xquizNMOBAVr.v3&: [[ sub -i X FIGSUP/xquizNMOBAVrX.v NINECOMP ]]

FIGSUP/xquizNMOBAVr%.v:  xquiz%.NMO.S.H.T
	Taplot <xquiz%.NMO.S.H.T pclip=90 |Ta2vplot title=" % Cross-Equalized (NMO)" out=FIGSUP/xquizNMOBAVr%.v NULL

#define CUBELABEL label1="Time [sec]" label3="Midpoint [feet]" label2="Offset [feet]"
FIGDIR/eqyycube.v cubeplot&: 
$	Taplot < xquizyy.H pclip=90 gainpanel=all >xquizyy.T
$	Cubeplot frame1=30 frame2=50 frame3=0 <xquizyy.T out=jx1.v NULL title="Yy Time Slices" point2=0.75 CUBELABEL wanttitle=n
$	BINDIR/NMO < PEMFULL/cwindowyy.H vel=8000 >jyy.H
$	Taplot < jyy.H pclip=90 gainpanel=all >jyy.T
	Cubeplot frame1=30 frame2=50 frame3=0 <jyy.T out=jx1.v NULL title="Yy Time Slices" point2=0.5 CUBELABEL wanttitle=n
$	Taplot < xquizyy.NMO.H pclip=90 gainpanel=all >xquizyy.NMO.T
	Cubeplot frame1=30 frame2=50 frame3=0 <xquizyy.NMO.T out=jx2.v NULL title="Yy Time Slices Equalized" point2=0.5 CUBELABEL wanttitle=n
$	vp_OverUnderAniso jx1.v jx2.v > FIGDIR/eqyycube.v
	vp_OverUnderAniso jx1.v jx2.v > eqyycube.v
	vp_annotate <eqyycube.v text=eqyycube.ann batch=y >FIGDIR/eqyycube.v


BINDIR/Xquizitav: if not {{ cd ../../Bin ; cake -q Xquizitav }}
	( cd ../../Bin ; cake Xquizitav )

clean&:
	-RM_CMD *.x *.o  a.out core csd* j* *.v 
	-RM_CMD *.B.H *.S.H *.R bestfilt log *.NMO.H
	-RM_CMD *.H

#include <SEP.idoc.rules>
#include <SEP.obj.rules>
#include <SEP.prog.rules>
