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

#define FIGLIST allcoff allmgather logenergy logwenergy

$ This is the directory where the 3 Gb of data is stored */
#define PEMFULL ../../Data/PemFull/CDP

$ This is where it will place the muted data
#define PEMFULLM ../../Data/PemMute

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

#define SCALE dscale=1.e-15

#define ANNOTSZ titlesz=15 titlefat=4 labelfat=4
#define ANNOTSZ titlesz=13 titlefat=2 labelfat=1

#define NULL head=/dev/null
#define NINECOMP xx xy xz yx yy yz zx zy zz
/* get the clip value from one component and use it for all 9 other */
#define GETCLIP(A,B) `( Clip <A pclip=B >Jjunk ; Get <Jjunk clip parform=n)`

#define LOC FIGSUP
#define GRIDSIZE gridsize=8.0,8.0
#define THREEBYTHREE(A,B) vppen gridnum=3,3 GRIDSIZE LOC/A/**/xx.v LOC/A/**/xy.v LOC/A/**/xz.v LOC/A/**/yx.v LOC/A/**/yy.v LOC/A/**/yz.v LOC/A/**/zx.v LOC/A/**/zy.v LOC/A/**/zz.v >B


#define PCOLR color=F
#define ALLPOS allpos=y
#define PCOLR 
#define ALLPOS 
/* for HARDCOPY */
#define INVRAS y


#define NEEDDATA  FIGLIST

/* 
   unfortunately the data will fit by no means onto today's CDROM,
   it is totally ca 3 Gb;  if you want to recreate the figures
   contact SEP for a tape with the data.
   All the Cakerules to rebuild are in place and should work
*/


/* interaction rules */

#define PLOTSELECT(prefix,suffix,option)  xtpanel -var NAME prefix -var TYPE suffix  -var OPTION option  -file XTPANELDIR/compare9c.panel

%energy.action:
	PLOTSELECT(FIGSUP/%energy,.v,scale=0.70)

allcoff%.action:
	PLOTSELECT(FIGSUP/coff,.v,scale=1)

all%1gather%2.action&:
        PLOTSELECT(FIGSUP/%1gather,.v," ")

/* slide shooting rules */
%.eps: /* %.v */
	vppen %.v  big=n align=lb >junk
	pstexpen junk %.eps  color=y force=y 

%.tcpr: /* %.v */
	pstexpen %.v fat=4 fatmult=1.5 invras=n color=y printer=tcpr label=" "

%.lw: /* %.v */
	pstexpen %.v fat=4 fatmult=1.5 invras=n color=y printer=lw label=" "


/* the right stuff */

prepare&: [[sub X energyX.H NINECOMP ]]

/* plot log energy in 3x3 grid   */

FIGDIR/logenergy.v:  [[ sub -i X rawenergyX.T12.H NINECOMP ]] 
	Merge rawenergyxx.T12.H rawenergyxy.T12.H rawenergyxz.T12.H space=y axis=2 > j1e.H
	Merge rawenergyyx.T12.H rawenergyyy.T12.H rawenergyyz.T12.H space=y axis=2 > j2e.H
	Merge rawenergyzx.T12.H rawenergyzy.T12.H rawenergyzz.T12.H space=y axis=2 > j3e.H
	Merge j1e.H j2e.H j3e.H axis=1 space=y >j4e.H
$	<j4e.H Clip chop=g clip=0.065 |Log range=3 | Taplot |Ta2vplot wantaxis=n wantlabels=n wanttitle=n out=FIGDIR/logenergy.v  NULL
	<j4e.H Clip chop=g clip=0.065 |Log range=3 | Taplot |Ta2vplot wantaxis=n wantlabels=n wanttitle=n out=logenergy.v  NULL
	vp_annotate <logenergy.v text=logenergy.ann batch=y >FIGDIR/logenergy.v
	cake FIGDIR/logenergy.v3

FIGDIR/logenergy.v3&:  [[ sub -i X FIGSUP/logenergyX.v NINECOMP ]]

FIGDIR/logwenergy.v:  [[ sub -i X wrawenergyX.T12.H NINECOMP ]] 
	Merge wrawenergyxx.T12.H wrawenergyxy.T12.H wrawenergyxz.T12.H space=y axis=2 > j1e.H
	Merge wrawenergyyx.T12.H wrawenergyyy.T12.H wrawenergyyz.T12.H space=y axis=2 > j2e.H
	Merge wrawenergyzx.T12.H wrawenergyzy.T12.H wrawenergyzz.T12.H space=y axis=2 > j3e.H
	Merge j1e.H j2e.H j3e.H axis=1 space=y >j4e.H
$	<j4e.H Clip chop=g |Log range=3 | Taplot |Ta2vplot wantaxis=n wantlabels=n wanttitle=n out=FIGDIR/logwenergy.v  NULL
	<j4e.H Clip chop=g clip=0.065 |Log range=3 | Taplot |Ta2vplot wantaxis=n wantlabels=n wanttitle=n out=logwenergy.v  NULL
	vp_annotate <logwenergy.v text=logenergy.ann batch=y >FIGDIR/logwenergy.v
	cake FIGDIR/logwenergy.v3

FIGDIR/logwenergy.v3&:  [[ sub -i X FIGSUP/logwenergyX.v NINECOMP ]]

energy%.V: energy%.H 
	Taplot <energy%.H NINEPOS pclip=90. |Ta2vplot PCOLR ANNOTSZ title="% Energy" label1="receiver position [feet]"      label2="source position [feet]" xinch=6.0 yinch=6.0 >energy%.V

FIGSUP/logenergy%.v: logenergy%.T12.H
	Taplot <logenergy%.T12.H NINEPOS |Ta2vplot PCOLR ANNOTSZ title="% Log Energy" label1="Offset [feet]"      label2="Midpoint [feet]" xinch=6.0 yinch=6.0 out=FIGSUP/logenergy%.v NULL

FIGSUP/logwenergy%.v: logwenergy%.T12.H
	Taplot <logwenergy%.T12.H NINEPOS |Ta2vplot PCOLR ANNOTSZ title="% Log Energy" label1="Offset [feet]"      label2="Midpoint [feet]" xinch=6.0 yinch=6.0 out=FIGSUP/logwenergy%.v NULL


FIGSUP/bwslice%.v: bwslice%.T12.H
	Taplot <bwslice%.T12.H NINEPOS pclip=98. |Ta2vplot PCOLR ANNOTSZ title="% Amplitude" label1="Offset [feet]"      label2="Midpoint [feet]" xinch=6.0 yinch=6.0 out=FIGSUP/bwslice%.v NULL


%.T12.H:    %.H   
	Transp plane=12 < %.H > %.T12.H

window%.H: /* PEMFULLM/%cube.M.H */ 
	Window f1=750 n1=250 <PEMFULLM/%cube.M.H >window%.H


wrawenergy%.H:  window%.H 
        Trcamp <window%.H >wrawenergy%.H


$ full  window , but muted
rawenergy%.H:   PEMFULLM/%cube.M.H 
	Trcamp <PEMFULLM/%cube.M.H >rawenergy%.H

logenergy%.H:   rawenergy%.H 
$ is 99 percent clip on xx to get rid ot huge numbers
	Clip chop=g clip=0.065 < rawenergy%.H | Log range=3 >logenergy%.H

logwenergy%.H:   wrawenergy%.H 
$ is 99 percent clip on xx to get rid ot huge numbers
	Clip chop=g clip=0.065 < wrawenergy%.H | Log range=3 >logwenergy%.H


energy%.H:   rawenergy%.H  
	Scale dscale=10000 <rawenergy%.H >jenergy%.H
	Add add=1 log=y < jenergy%.H >energy%.H

$ small window 3-4 sec 
wenergy%.H: PEMFULLM/%cube.M.H
	Window <PEMFULLM/%cube.M.H f1=750 n1=250 | Energy lwind=249 j1=1 >je.H o1=0
	Window n1=1 <je.H >wenergy%.H 

/* for convenience */
allmute&: [[ sub -i X PEMFULLM/Xcube.M.H NINECOMP ]]

/* mute direct, refracted, surface waves and air waves  used 1150 instead */
#ifdef ISsun4
PEMFULLM/%cube.M.H: PEMFULL/%cube.H BINDIR/Mute
	Scale SCALE <PEMFULL/%cube.H  >jj%.H
	Cp < PEMFULL/h%cube.H > h%cube.H
	BINDIR/Mute <jj%.H vmute=3500 o1=0 useattr=1 keyname=OFFSET attrfile=h%cube.H >Jj%.H
	Rm jj%.H
        BINDIR/Mute <Jj%.H vmute=1250 o1=0 useattr=1 keyname=OFFSET attrfile=h%cube.H >junk1%.H
	 BINDIR/Mute <Jj%.H vmute=1050 o1=0 useattr=1 keyname=OFFSET attrfile=h%cube.H >junk2%.H
        Add junk1%.H junk2%.H scale=1,-1 mode=sum >jair%.H
	Rm junk1%.H junk2%.H
        Add Jj%.H jair%.H scale=1,-1 mode=sum >PEMFULLM/%cube.M.H out=PEMFULLM/_%cube.M.H@
	Rm Jj%.H jair%.H
	Cp < h%cube.H >PEMFULLM/h%cube.M.H out=PEMFULLM/_h%cube.M.H@
#else
PEMFULLM/%cube.M.H: PEMFULL/%cube.H BINDIR/Mute
	Scale SCALE <PEMFULL/%cube.H  >jj%.H
	Cp < PEMFULL/h%cube.H > h%cube.H
	BINDIR/Mute <jj%.H vmute=3500 o1=0 useattr=1 keyname=OFFSET attrfile=h%cube.H >Jj%.H
	Rm jj%.H
        BINDIR/Mute <Jj%.H vmute=1250 o1=0 useattr=1 keyname=OFFSET attrfile=h%cube.H >junk1%.H
	 BINDIR/Mute <Jj%.H vmute=1050 o1=0 useattr=1 keyname=OFFSET attrfile=h%cube.H >junk2%.H
        Add junk1%.H junk2%.H scale=1,-1 mode=sum >jair%.H
	Rm junk1%.H junk2%.H
        Add Jj%.H jair%.H scale=1,-1 mode=sum >%cube.M.H
	Rm Jj%.H jair%.H 
	Cp < h%cube.H >PEMFULLM/h%cube.M.H
	echo "copy %cube.M.H and h%cube.M.H  back to SDA and tape"
#endif

/* compute windowed energy of best muted n 3-4 sec Window */
bwenergy%.H: PEMFULLM/%cube.M.H 
	Window <PEMFULLM/%cube.M.H f1=750 n1=250 | Energy lwind=249 j1=1 >je.H o1=0
	Window n1=1 <je.H >bwenergy%.H 

bwslice%.H:     PEMFULLM/%cube.M.H
	Window <PEMFULLM/%cube.M.H f1=666 n1=1 >bwslice%.H


energy%.H:  PEMFULLM/%cube.M.H 
	<PEMFULLM/%cube.M.H Energy lwind=1499 j1=1 >je.H o1=0
	Window n1=1 <je.H >energy%.H 

allenergy.H: 
	Merge axis=3 space=n energyxx.H energyxy.H energyxz.H energyyx.H energyyy.H energyyz.H energyzx.H energyzy.H energyzz.H >jall.H
	Scale <jall.H >allenergy.H


FIGSUP/%.v:    %.V
	Vppen <%.V align=lb out=FIGSUP/%.v >/dev/null


mgather%.H:     PEMFULLM/%cube.M.H 
	Window <PEMFULLM/%cube.M.H f3=15 n3=1 >mgather%.H

coff%.H:        PEMFULL/%cube.H 
	Window <PEMFULL/%cube.H f2=93 n2=1  >coff%.H


#define GATHERANNOT label1="Time [sec]" label2="Channel Number"
#define GATHERANNOT label1="Time [sec]" label2="Surface Location"
FIGSUP/gather%.v: gather%.H
        Window j1=5 <gather%.H |Taplot clip=GETCLIP(gatherxx.H,95.) | Ta2vplot title="Raw Shot Gather %" GATHERANNOT out=FIGSUP/gather%.v >/dev/null

FIGSUP/mgather%.v: mgather%.H
        Window j1=5 < mgather%.H |Taplot clip=GETCLIP(mgatherxx.H,95.) | Ta2vplot title="Shot Gather %" GATHERANNOT out=FIGSUP/mgather%.v >/dev/null


FIGDIR/allcoff.v: [[ sub -i X FIGSUP/coffX.v NINECOMP ]]
	Merge space=y axis=2 coffxx.H coffxy.H coffxz.H >j1coff.H
	Merge space=y axis=2 coffyx.H coffyy.H coffyz.H >j2coff.H
	Merge space=y axis=2 coffzx.H coffzy.H coffzz.H >j3coff.H
	Merge space=y axis=1 j1coff.H j2coff.H j3coff.H >j4coff.H
$	Taplot pclip=90 <j4coff.H |Ta2vplot wantlabel=n wanttitle=n wantaxis=n  out=FIGDIR/allcoff.v NULL
	Taplot pclip=90 <j4coff.H |Ta2vplot wantlabel=n wanttitle=n wantaxis=n  out=./allcoff.v NULL
	vp_annotate <./allcoff.v text=allcoff.ann batch=y >FIGDIR/allcoff.v
	cake FIGDIR/allcoff.v3

FIGDIR/allcoff.v3&: [[ sub -i X FIGSUP/coffX.v NINECOMP ]]

FIGSUP/coff%.v: coff%.H 
	Taplot < coff%.H pclip=90 |Ta2vplot title="%  Const. Offset" out=FIGSUP/coff%.v NULL
	cake FIGDIR/allcoff.v3


FIGDIR/allmgather.v: [[ sub -i X FIGSUP/mgatherX.v NINECOMP ]]
	THREEBYTHREE(mgather,FIGDIR/allmgather.v)

../../Bin/MTYPE/Mute:
	( cd ../../Bin ; cake Mute )

clean&:
	-RM_CMD \*.x \*.o  a.out core \*.v j\* Jj*
	-RM_H -f \*.H \*.V
	makewritable FIGSUP/\*

#include <SEP.obj.rules>
#include <SEP.prog.rules>
#include <SEP.idoc.rules>
/*       dataset geometry is such that 165 + 110 + 110 ...  gives one blank */
/*       CDP and one blank trace interlaced                                 */
/*       thus we have to double d3 and half n3                              */
