func Begin() { seq=1; } func OnLineHeader() { ntrc = LH.NumTrc; if(ntrc < 0) ntrc=ntrc+65536; nrec = LH.NumRec; if(nrec < 0) nrec=nrec+65536; nlis = LH.MxLnIn - LH.MnLnIn + 1; if(nlis < 0)nlis=nlis+65536; ndis = LH.MxDpIn - LH.MnDpIn + 1; if(ndis < 0)ndis=ndis+65536; liinc= LH.CLClIn; diinc= LH.ILClIn; print("Records=",nrec," ","Trcs/rec=",ntrc," ","NLines=",nlis," ","X-lines=",ndis," ","Inline_inc=",liinc," ","X-line_inc=",diinc,"\n"); print("SEQUENCE"," ","FILE"," ","SHOT"," ","GROUP"," ","LI"," ","DI"," ","OFFSET"," ","AZIMUTH"," ","UPHOLE"," ","SHOTDEPTH"," ","FIRSTBREAK"," ","FLOATDATUM"," ","DATUM"," ","SHOT-X"," ","SHOT-Y"," ","SHOT-Z"," ","GROUP-X"," ","GROUP-Y"," ","GROUP-Z"," ","CMP-X"," ","CMP-Y"," ","CMP-Z"," ","BIN-X"," ","BIN-Y","\n"); } func OnTrace() { file = Tr.FlReFN; shot = Tr.SoPtNM; if(shot < 0) shot=shot+65536; group= Tr.RecInd; if(group < 0) group=group+65536; record=Tr.RecNum; if(record < 0) record=record+65536; trace= Tr.TrcNum; if(trace < 0) trace =trace +65536; shotx= Tr.SrPtXC; shoty= Tr.SrPtYC; shotz= Tr.SrPtEl; groupx=Tr.RcPtXC; groupy=Tr.RcPtYC; groupz=Tr.GrpElv; cmpx = Tr.SrRcMX; cmpy = Tr.SrRcMY; binx = Tr.CDPBCX; biny = Tr.CDPBCY; li = Tr.LinInd; if(li < 0) li =li +65536; di = Tr.DphInd; if(di < 0) di =di +65536; firstbreak=Tr.MulSkw; datum =Tr.RfSfEl; offset=Tr.DstSgn; if (offset == 0) offset=Tr.DstUsg; azimuth=Tr.SrRcAz; uphole=Tr.UphlTm; shotdepth=Tr.ShtDep; Floatdatum=Tr.FlDtEl; shotstatic = Tr.InStAp; recstatic =Tr.RcStAp; floatstatic=Tr.ToStAp; cdpstatic =Tr.StaCor; sx = Tr.SrPtXC; sy = Tr.SrPtYC; rx = Tr.RcPtXC; ry = Tr.RcPtYC; if(shot == 0) shot = file; selev = Tr.SrPtEl; gelev = Tr.GrpElv; cmpz = ( selev + gelev ) / 2; if( cmpx == 0) cmpx = ( sx + rx ) / 2; if( cmpy == 0) cmpy = ( sy + ry ) / 2; denom = rx-sx; if ( abs(denom) > 1.0 ){ anum = ry-sy; value = anum/denom; az = atan(value); ay = 10000*az; if( azimuth == 0) azimuth =ay; } if (cdpstatic != 30000){ print(seq," ",file," ",shot," ",group," ",li," ",di," ",offset," ",azimuth," ",uphole," ",shotdepth," ",firstbreak," ",floatdatum," ",datum," ",shotx," ",shoty," ",shotz," ",groupx," ",groupy," ",groupz," ",cmpx," ",cmpy," ",cmpz," ",binx," ",biny,"\n"); seq++; } } func End() { }