3D Geometry Loading in Promax, A Practical Crperl Example
3D Geometry Loading in Promax, A Practical Crperl Example
information we need except for FFID. Finally, we have a SEGP file with all the survey
information indexed to line and station numbers.
FFID and ShotID were saved as a CSV (comma separated values) file from the
observers notes. The ProMAX flow then consists of:
Perlcode.pl (Appendix B) first reads the entire CSV file into an array. For each ensemble
from Disk Data Input, it finds the ShotID based on FFID, scans the shot log file until it
obtains a match for ShotID, reads all R_LINE and SRF_SLOC information from the
corresponding Active Seis Map Packet, and sets the ProMAX ShotID, R_LINE and
SRF_SLOC trace headers. Debugging consists of printing warnings to debug.csv when 1)
the ProMAX and shot log script numbers do not match and 2) when the number of
traces in the ProMAX ensemble does not match trace count in the shot log (Figure 1).
Note that this process does not require any editing of the shot log file.
This ProMAX flow was run iteratively until all issues were resolved. Most errors were
due to repeated shots, and could be avoided by editing the FFID list in Disk Data Input.
Finally, the SEGP survey information was merged into the ProMAX database using the
3D land geometry spreadsheet.
QUALITY CONTROL
Accuracy in matching geometry information to seismic traces is of primary
importance for the subsequent processing of the traces into useful images, especially for
3D surveys. As shown in the next section, seemingly small errors can lead to severe
imaging problems. For this reason, a quality control step applied to the raw seismic data
just after loading the geometry is highly recommended. Considering the sheer volume of
data handled by many processors, there will always be a temptation to either skip this
step, or minimize the time devoted to it.
Many processors have a favorite way of doing quality control on raw data; and
hopefully most of these methods are effective. One rudimentary way of doing QC on 3D
data, which displays all the traces in a survey, and yet allows the QC step to be done in a
reasonable period of time, is to simply read and display the entire data set a shot gather at
a time. The key to effectiveness in this procedure is to plot no more than 3 or 4 seconds
of data and to plot 3 or 4 key trace headers, in colour, along the top of the trace plot using
a tool like Trace Display in ProMAX. Figure 2 shows a display panel from the Manitou
Lake 3D seismic survey with source-receiver offset, source-receiver azimuth and receiver
line plotted above the seismic.
3D geometry loading
Start Flow
FFID, ShotID
Observers Notes
FFID, script,
Ntraces
ProMAX
FFID == FFID
ShotID == ShotID
Found Stack
ShotLog
Y
Found ActiveSeis
ProMAX
R_LINE, SRF_SLOC
debug.csv
script != script
Ntraces != Ntraces
End of dataset
Y
End
Source gather from Manitou Lake 3D survey showing three trace headers
plotted above the data. Shown are OFFSET, R_LINE, and SR_AZIM.
FIG. 2. Quality control plot of a shot gather from the Manitou Lake 3D survey. Three trace
headers are plotted here, Source-Receiver offset in black, Source-Receiver azimuth in blue and
Receiver Line (R_LINE) in red. Any irregularities in these header plots within receiver lines, and
any mismatches at receiver line boundaries indicate geometry problems in the data set that must
be corrected before further processing.
Plots of receiver line number should be flat (constant value) within each
receiver line and should show steps only at receiver line ends (red line; Figure
2).
3D geometry loading
The compelling feature of a display like that in Figure 2 is that, with a little practice, it
only takes a few seconds to quickly scan such a display and spot problems. Using
contrasting colors in the header plots is part of the key to this. With a little practice, a
moderately sized 3D survey (say 1000 shot gathers) can be scanned in an hour with a
high probability of spotting serious problems. Typically, a problem spotted on one gather
will be manifested on more than one gather; so if it isnt spotted on the first gather on
which it occurs, it will be seen on subsequent gathers. A problem which occurs only on a
single gather is unlikely to create a serious problem for imaging, even if missed by the
QC scan.
CONSEQUENCES
Shear statics are notoriously difficult to calculate. One way to deal with the problem is
to interpret horizons on a P-S receiver stack generated using P-shot statics and P-receiver
statics scaled by VP/VS. Time differences required to flatten this horizon can be used as an
additional correction term (hand-statics) for the S-receiver statics. Figure 3 shows a
comparison between the Manitou Lake P-S receiver stack with an incorrect geometry (as
discussed above), and one with a correct geometry. When the geometry is correct, the
reflections are higher frequency, noticeably more continuous, and therefore easier to
interpret.
An immediate consequence of improved S-receiver statics can be seen in time-slices
through the migrated volume at the target time. The time-slice through data with a correct
geometry (Figure 4b; Lu et al., 2007) looks more geologically reasonable than our initial
result (Figure 4a; Lu et al., 2006).
FIG. 3a. P-S receiver stack obtained using P-P shot statics and P-P receiver statics scaled by
VP/VS = 2.3. (Incorrect geometry; Lu et al., 2006).
FIG. 3b. P-S receiver stack obtained using P-P shot statics and P-P receiver statics scaled by
VP/VS = 2.3. (Correct geometry; Lu et al., 2007).
3D geometry loading
a)
b)
FIG. 4. Time-slices near the target zone through migrated P-S volumes. Dashed line and circles
(white) show location of wells along a Colony member sand channel. a) Lu et al. (2006);
geometry copied from vertical component shots (2.3% fewer traces). b) Lu et al. (2007); geometry
loaded into ProMAX as described in this report.
DISCUSSION
A Perl script was developed to quickly and accurately load geometry information into
ProMAX trace headers from a variety of sources. After binning, a visual quality control
step was applied. Total development/quality control time was about one week. A
seemingly trivial difference in the number of traces between two SEG-Y files (2.3%) had
major consequences for image quality in the final migrated volume.
FUTURE WORK
The Perl script is fairly specific to files available for the Manitou Lake survey, but
should be easily modifiable as needed for other surveys. Because of the relatively small
size of the dataset, no attempt was made to optimize the Perl script for speed. For larger
datasets, a re-write may be in order.
ACKNOWLEDGEMENTS
We would like to Calroc Energy Inc. for providing this dataset to CREWES,
Landmark Graphics Corporation and Hampson-Russell (a CGG Veritas company) for the
use of donated software (ProMAX and GLI3D respectively). We also would like to thank
all CREWES sponsors and NSERC for funding.
REFERENCES
Bland, H.C., 2002, The fusion of ProMAX and Perl: CREWES Research Report, 14, 19 pages.
Lu, H., Hall, K.W., Stewart, R.R., Feuchtwanger, D., and Szatkowski, B., 2006, Searching for sand
reservoirs: Processing 3C-3D data from Manitou Lake, Saskatchewan: CREWES Research
Report, 18.
Lu. H., Hall. K.W., Stewart, R.R., 2007, Re-processing the 3C-3D seismic data from Manitou Lake,
Saskatchewan: CREWES Research Report, 19.
N E W E N T R Y
================================================================================
I/O TRANSCRIBER 2
DETAILED SHOT LOG REPORT
PROJECT: manitou3d
Sat Feb 19 18:33:11 2005
================================================================================
Packets ignored by perlcode.pl have been deleted. Strings matched by Perl regular expressions are highlighted in blue. Data read
from the ShotLog file are highlighted in red.
3D geometry loading
10
Vibrator
-1
540
0
Sync
Normal
0
Bypassed
3.0
1ms
0 meters
0 meters
0 meters
0 meters
1/2 Nyquist Minimum Phase
Yes
19937
60 Hz
Special fixed freqs
15.360 sec
Line
-----101
103
105
107
109
111
113
115
117
119
FirstSta
-------107
107
107
107
107
107
107
107
107
107
LastSta
------136
136
166
166
166
166
166
166
166
166
#Stations
--------30
30
60
60
60
60
60
60
60
60
#Traces
------90
90
180
180
180
180
180
180
180
180
Components
---------Av, Ax, Ay
Av, Ax, Ay
Av, Ax, Ay
Av, Ax, Ay
Av, Ax, Ay
Av, Ax, Ay
Av, Ax, Ay
Av, Ax, Ay
Av, Ax, Ay
Av, Ax, Ay
StaInc
-----1
1
1
1
1
1
1
1
1
1
Source Type:
Active Boxes:
Tot Act Channels:
Aux Channels:
TB Mode:
Record Type:
1st Scan Time(us):
Low Cut Filter:
Low Cut Freq:
Sample Period:
$flag=0;
$success=0;
@SCRIPT = gethdr('SCRIPT'); #New header created with Trace Header Math (S_LINE*1000+SOU_SLOC)
@R_LINE = gethdr('R_LINE'); #New header created with Trace Header Math (all zeros)
@SRF_SLOC = gethdr('SRF_SLOC'); #New header created with Trace Header Math (all zeros)
$| = 1;
APPENDIX B: PERLCODE.PL
11
3D geometry loading
12
#Print $comment to debug.csv. Should be blank unless script numbers and/or number of traces mismatch
#Overwrite ProMAX headers with info from ShotLog
print OUT $comment;
puthdr('R_LINE',@R_LINE);
puthdr('SRF_SLOC',@SRF_SLOC);
close(IN);
13
3D geometry loading