QCing and Correcting Spatial Phase Variability using USP
Extract short-window, horizon-based slabs of data from the seismic volume. At least four or five slabs are necessary to adequately sample phase variability with depth.
In this example, the horizon is stored in trace header "Horz01"; a 100ms slab "horizon1.usp" is extracted about the horizon:
Compute cross-correlation cubes referenced to each pilot trace for each seismic data slab; then extract the response phase value at the maximum energy of each cross-correlation.
Select pilot trace locations for computing cross-correlation cubes. Pilot trace locations are typically spaced 25 to 100 lines apart, ensuring that they fall in decent data areas.
Compute cross-correlation cubes and extract phase values in one step. Including the qdslice step allows the phase maps to be output as USP records.The example below shows the procedure for two pilot traces and one seismic slab:
cross -N1horizon1.usp -N2horizon1.usp -X -L75 -R75 -rs1050 -re1050 -ns1030 -ne1030 | asig -nop5 -t.01 | editt -s100 -e100 | qdslice -Ohorizon1050_030.phase
cross -N1horizon1.usp -N2horizon1.usp -X -L75 -R75 -rs1050 -re1050 -ns1060 -ne1060 | asig -nop5 -t.01 | editt -s100 -e100 | qdslice -Ohorizon1050_060.phase
Gather phase maps for each slab. The following example, shows the procedure for the "horizon1" slab:
gather -S -Nhorizon1050_030.phase -Nhorizon1050_060.phase -Nhorizon1100_025.phase -Nhorizon1100_050.phase -Nhorizon1100_075.phase -Nhorizon1150_020.phase -Nhorizon1150_050.phase -Nhorizon1150_080.phase -Nhorizon1200_020.phase -Nhorizon1200_050.phase -Nhorizon1200_080.phase -Ohorizon1.phase
Gather phase maps for all slabs:
gather -S -Nhorizon1.phase -Nhorizon2.phase -Nhorizon3.phase -Nhorizon4.phase -Nhorizon5.phase -Nhorizon6.phase -Oall.phase
Re-sort the "phase maps" dataset in preparation for phase vector summation:
resorter -Nall.phase -Ojunk1
Phase vector summ all phase maps:
pstack -Njunk1 -Ojunk2 -phase
Re-sort the summed "phase map" back:
QC the summed "phase map" for phase variability. If phase variability exists, continue with correction steps. If phase is laterally stable, no correction is necessary
Smooth the "phase map":
fkkstrip -Njunk1 -l9 -pass -dup -nxtaper0 -nztaper0 -Ojunk2
Sort the "phase map" dataset to one sample per trace. Each sample now contains the phase value associated with the trace. Perform a header swap to re-introduce header information (lost during the various sorting):
hdrswap -N1junk2 -N2horizon1.usp -Ophase_corr.usp
Write phase correction values to an xyz ascii file:
editt -Nphase_corr.usp | xyz2sis -flat -hw1RecNum -hw2TrcNum -hw3CDPBCX -hw4CDPBCY -Ophase_corr.asc
Strip off only the fields containing RecNum, TrcNum, and Phase:
FreeFormat -Axyz < phase_corr.asc > phase.asc
Put phase values into trace headers:
xyz2head -Ncaxw.usp -F phase.asc -hw Horz04 -Ocaxw2.usp
Phase rotate each trace by the phase value stored in the trace header:
rest -Ncaxw2.usp -P -F -SW Horz04 -Ocaxw_corr.usp
Redo the QC portion of the procedure to ensure a flat (laterally stable) phase response after correction.
Return to Consulting Notes.