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

#define FIGLIST recinmo

#define XTPANELDIR ../../Xtpanel
#include "../../Cakerules/SEP.martin.rules"

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

#define FIGDIR ../Fig
#define FIGSUP ../Fig2
#define BINDIR ../../Bin/MTYPE
#include <SEP.defs>

/* we dont need to fix header since it makes  shotnumber 0 with trace zero,
 such that we get a filter that will be zero for all the missing traces 
 a waist of computing, but otherwise ok  */

/*  Interaction rule */
recinmo.action:
        PLOTSELECT(FIGSUP/recinmo,.v,scale=1)


/* do all in junks of 10 cdps gives the angular/offset average */

allbalance&: [[ sub -i X balanceX.H NINECOMP ]]

balfactor%.H:
	Balance oper=1                  <PEMFULL/window%.H > balfactor%.H

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

balance%.H: balfactor%.H
	Balance oper=2 bal=balfactor%.H <PEMFULL/window%.H |Scale dscale=1.e-4 >balance%.H

bal%.NMO.S.H: balance%.NMO.H
	Window f1=30 n1=1 <balance%.NMO.H > bal%.NMO.S.H

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

recinmo%.S.H:  PEMWIND/cwindow%.H  BINDIR/NMO PEMWIND/h%cube.H
	<PEMWIND/cwindow%.H  BINDIR/NMO vel=8000 useattr=1 attrfile=PEMWIND/h%cube.H > jwnmo%.H
	Window f1=30 n1=1 < jwnmo%.H > recinmo%.S.H 


FIGDIR/recinmo.v: [[ sub -i X recinmoX.S.H NINECOMP ]]
	PickRcpd.csh recinmo S.H
	Merge recinmoxx.S.H.R recinmoxy.S.H.R recinmoxz.S.H.R axis=2 >j1.H
	Merge recinmoyx.S.H.R recinmoyy.S.H.R recinmoyz.S.H.R axis=2 >j2.H
	Merge recinmozx.S.H.R recinmozy.S.H.R recinmozz.S.H.R axis=2 >j3.H
	Merge j1.H j2.H j3.H axis=1 |Scale dscale=-1. >j4.H
	Taplot <j4.H pclip=90. |Ta2vplot title="Recip. NMO" wanttitle=n wantlabel=n wantaxis=n out=FIGDIR/recinmo.v NULL
$ this is for the interactive part
	Taplot <recinmoxx.S.H.R pclip=90 |Ta2vplot title="xx Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmoxx.v NULL
	Taplot <recinmoxy.S.H.R pclip=90 |Ta2vplot title="xy Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmoxy.v NULL
	Taplot <recinmoxz.S.H.R pclip=90 |Ta2vplot title="xz Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmoxz.v NULL
	Taplot <recinmoyx.S.H.R pclip=90 |Ta2vplot title="yx Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmoyx.v NULL
	Taplot <recinmoyy.S.H.R pclip=90 |Ta2vplot title="yy Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmoyy.v NULL
	Taplot <recinmoyz.S.H.R pclip=90 |Ta2vplot title="yz Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmoyz.v NULL
	Taplot <recinmozx.S.H.R pclip=90 |Ta2vplot title="zx Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmozx.v NULL
	Taplot <recinmozy.S.H.R pclip=90 |Ta2vplot title="zy Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmozy.v NULL
	Taplot <recinmozz.S.H.R pclip=90 |Ta2vplot title="zz Recip. NMO" label1="Midpoint" label2="Offset" out=FIGSUP/recinmozz.v NULL



$ the scale factor of -1 is necesseary to be ample to compare the
$ polarity with afterreci and beforereci
$ they are now in reciprocal arrangement using PickRcpd.csh
FIGDIR/balr.v: [[ sub -i X balX.S.H NINECOMP ]]
	PickRcpd.csh bal S.H
	Merge balxx.S.H.R balxy.S.H.R balxz.S.H.R axis=2 >j1.H
	Merge balyx.S.H.R balyy.S.H.R balyz.S.H.R axis=2 >j2.H
	Merge balzx.S.H.R balzy.S.H.R balzz.S.H.R axis=2 >j3.H
	Merge j1.H j2.H j3.H axis=1 |Scale dscale=-1. >j4.H
	Taplot <j4.H |Ta2vplot title="Balanced" wanttitle=n wantlabel=n wantaxis=n out=FIGDIR/balr.v NULL

$ they are now in reciprocal arrangement using PickRcpd.csh
FIGDIR/balNMOr.v: [[ sub -i X balX.NMO.S.H NINECOMP ]]
	PickRcpd.csh bal NMO.S.H
	Merge balxx.NMO.S.H.R balxy.NMO.S.H.R balxz.NMO.S.H.R axis=2 >j1.H
	Merge balyx.NMO.S.H.R balyy.NMO.S.H.R balyz.NMO.S.H.R axis=2 >j2.H
	Merge balzx.NMO.S.H.R balzy.NMO.S.H.R balzz.NMO.S.H.R axis=2 >j3.H
	Merge j1.H j2.H j3.H axis=1 |Scale dscale=-1. >j4.H
	Taplot <j4.H |Ta2vplot title="Balanced NMO" wanttitle=n wantlabel=n wantaxis=n out=FIGDIR/balNMOr.v NULL
$ for the interactive part
	Taplot <balxx.NMO.S.H.R pclip=90 |Ta2vplot title="xx Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balxx.NMO.v NULL
	Taplot <balxy.NMO.S.H.R pclip=90 |Ta2vplot title="xy Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balxy.NMO.v NULL
	Taplot <balxz.NMO.S.H.R pclip=90 |Ta2vplot title="xz Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balxz.NMO.v NULL
	Taplot <balyx.NMO.S.H.R pclip=90 |Ta2vplot title="yx Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balyx.NMO.v NULL
	Taplot <balyy.NMO.S.H.R pclip=90 |Ta2vplot title="yy Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balyy.NMO.v NULL
	Taplot <balyz.NMO.S.H.R pclip=90 |Ta2vplot title="yz Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balyz.NMO.v NULL
	Taplot <balzx.NMO.S.H.R pclip=90 |Ta2vplot title="zx Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balzx.NMO.v NULL
	Taplot <balzy.NMO.S.H.R pclip=90 |Ta2vplot title="zy Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balzy.NMO.v NULL
	Taplot <balzz.NMO.S.H.R pclip=90 |Ta2vplot title="zz Recip. NMO Bal." label1="Midpoint" label2="Offset" out=FIGSUP/balzz.NMO.v NULL


testme&: windowxx.eq.H

window%.eq.H: PEMWIND/cwindow%.H BINDIR/Count BINDIR/EqualizePre5a
	Window <PEMWIND/h%cube.H >jh%cube.H   f3=100 n3=10
$ window out a few cdp
	Window <PEMWIND/cwindow%.H >jwindow%.H f3=100 n3=10
	time BINDIR/Count sxbias=55. attrfile=jh%cube.H scdfile=csd.win%.H recifile=reci.win%.H <jwindow%.H  >norm.win%.H
$ normal from here on:
        BINDIR/EqualizePre5a rms=y <norm.win%.H scdfile=csd.win%.H recifile=reci.win%.H  >norm.win%.eq.H filtermovie=filtmovwin%.H par=parfile  attrfile=PEMWIND/h%cube.H restart=d niter=40
$ previously
$	time BINDIR/Count sxbias=55. attrfile=PEMWIND/h%cube.H scdfile=csd.win%.H recifile=reci.win%.H <PEMWIND/cwindow%.H  >norm.win%.H
$        BINDIR/EqualizePre5a <norm.win%.H scdfile=csd.win%.H recifile=reci.win%.H  >norm.win%.eq.H filtermovie=filtmovwin%.H par=parfile  attrfile=PEMWIND/h%cube.H restart=d niter=20


/*	Fixheader <PEMFULL/Pem50/h%cube.H >hin%.H*/

Eqxz&:
	Window n3=50 j3=4 f1=500 n1=750 <PEMFULL/xzcube.H |Scale dscale=1.e-15 >in.smallxz.H
	Window n3=50 j3=4 <PEMFULL/hxzcube.H >hin.smallxz.H
	Window n3=50 j3=4 f1=500 n1=750 <PEMFULL/zxcube.H |Scale dscale=1.e-15 >in.smallzx.H
	Window n3=50 j3=4 <PEMFULL/hzxcube.H >hin.smallzx.H
	Merge axis=3 space=n in.smallxz.H in.smallzx.H >in.smallZX.H
	Merge axis=3 space=n in.smallxz.H in.smallzx.H >hin.smallZX.H
	time BINDIR/Count sxbias=55. attrfile=hin.smallZX.H scdfile=csd.smallZX.H recifile=reci.smallZX.H <in.smallZX.H  >norm.smallZX.H

Eqxy&:
	Window n3=50 j3=4 f1=500 n1=750 <PEMFULL/xycube.H |Scale dscale=1.e-15 >in.smallxy.H
	Window n3=50 j3=4 <PEMFULL/hxycube.H >hin.smallxy.H
	Window n3=50 j3=4 f1=500 n1=750 <PEMFULL/yxcube.H |Scale dscale=1.e-15 >in.smallyx.H
	Window n3=50 j3=4 <PEMFULL/hyxcube.H >hin.smallyx.H
	Merge axis=3 space=n in.smallxy.H in.smallyx.H >in.smallYX.H
	Merge axis=3 space=n in.smallxy.H in.smallyx.H >hin.smallYX.H
	time BINDIR/Count sxbias=55. attrfile=hin.smallYX.H scdfile=csd.smallYX.H recifile=reci.smallYX.H <in.smallYX.H  >norm.smallYX.H

Eqzy&:
	Window n3=50 j3=4 f1=500 n1=750 <PEMFULL/zycube.H |Scale dscale=1.e-15 >in.smallzy.H
	Window n3=50 j3=4 <PEMFULL/hzycube.H >hin.smallzy.H
	Window n3=50 j3=4 f1=500 n1=750 <PEMFULL/yzcube.H |Scale dscale=1.e-15 >in.smallyz.H
	Window n3=50 j3=4 <PEMFULL/hyzcube.H >hin.smallyz.H
	Merge axis=3 space=n in.smallzy.H in.smallyz.H >in.smallYZ.H
	Merge axis=3 space=n in.smallzy.H in.smallyz.H >hin.smallYZ.H
	time BINDIR/Count sxbias=55. attrfile=hin.smallYZ.H scdfile=csd.smallYZ.H recifile=reci.smallYZ.H <in.smallYZ.H  >norm.smallYZ.H
        BINDIR/EqualizePre5 <norm.smallYZ.H scdfile=csd.smallYZ.H recifile=reci.smallYZ.H  >norm.smallYZ.eq.H filter1=filt1cdpYZ.H  filtermovie=filtmovcdpsmallYZ.H par=parfile  attrfile=hin.smallYZ.H restart=d niter=40


in%.H: if not exist in%.H
	Scale <PEMFULL/%cube.H dscale=1.e-15 >in%.H
	Cp <PEMFULL/h%cube.H >hin%.H

norm%.H reci%.H: in%.H BINDIR/Count hin%.H
	time BINDIR/Count sxbias=55. attrfile=hin%.H scdfile=csd%.H recifile=reci%.H <in%.H  >norm%.H

eqcdp%&: /* norm%.h */
	time BINDIR/EqualizePre5 <norm%.H scdfile=csd%.H recifile=reci%.H  >norm%.eq.H filter1=filtcdp%.H  filtermovie=filtmovcdp%.H par=parfile  attrfile=hin%.H restart=y


filter%&:  /*  eqline%  */
	time BINDIR/Efilter  filter1=filterl1%.h error1=err1l1%.h error2=err2l1%.h <l1%.data.s >l1%.data.eq

equalonly%&: DATA/norm%.h
	Scale dscale=1.e-7 <DATA/norm%.h >DATA/norm%.s 
	EqualizePre <DATA/norm%.s par=parfile.% >DATA/norm%.equal.s


diff%.h: DATA/norm%.h DATA/reci%.h
	Add mode=sum scale=1.,-1. DATA/norm%.h DATA/reci%.h >diff%.h


%.s: %.h
	Window f3=0 n3=10  <%.h |Scale  dscale=1.e-14 >%.s

sgplot%: sgplot%.V
	Xtpen <sgplot%.V


sgplot%.V: PEMDIR/l1%.hdr.h
	Window <PEMDIR/l1%.hdr.h >junk f1=6 n1=1
	Window <PEMDIR/l1%.hdr.h >junk2 f1=8 n1=1
	Merge axis=3 space=n junk junk2 >junk3
	Transp plane=13 <junk3 |Reedfloat >junk4
	echo "esize=8 n1=1" >>junk4
	Window n1=1 <junk4 | Graph  max2=33000 min2=4000 max1=22000 min1=16000 symbol="*" >sgplotxx.V title='S-G-Plot L1 %  Pembrook' label1="shot inline" label2="geophone inline"


%.ps: %.V
	Pspen <%.V out=%.ps head=/dev/null

BINDIR/%: if not {{ cd ../../Bin ; cake -q % }}
	(  cd ../../Bin ; cake  % )
	
clean&:
	-RM_CMD *.x *.o  a.out core *.H csd* j* *.v *.R

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