/* distfix_ufh is a script to compute trace distances and midpoint XYs based on source & receiver XYs. in a pipeline you run it as follows ... | ufh distfix_ufh | ... from disk files you run as follows ufh distfix_ufh < indata > outdata */ func OnLineHeader () { /* read & write line header */ output (LH); } func OnTrace () { /* process all traces */ /* get src & srcvr XYs */ srx = Tr.SrPtXC; sry = Tr.SrPtYC; rrx = Tr.RcPtXC; rry = Tr.RcPtYC; /* compute trace distance & store in trace header */ dxt = srx - rrx; dyt = sry - rry; dist = sqrt ( dxt * dxt + dyt * dyt ); Tr.DstSgn = dist + 0.5; /* compute CDP bin centers & store in trace header */ mpx = (srx + rrx) / 2; mpy = (sry + rry) / 2; Tr.SrRcMX = mpx; Tr.SrRcMY = mpy; output (Tr); /* output trace */ }