|
Basic helpBasic demosSU SEGY structureReading a SU fileBasic helpSeismicLab contains the following directories:
>> help SeismicLab
----------
SeismicLab
----------
./codes/bp_filter: freq. domain filtering
./codes/decon: time domain deconvolution and wavelet estimation
./codes/dephasing: Dephasing algorithm
./codes/fx: FX decon for SNR enhancement
./codes/iterpolation: Spitz FX interpolation
./codes/kl_transform: Karhunen-Loeve filter for SNR enhancement
./codes/radon_transforms: Radon transforms (linear and parabolic)
./codes/scaling_tapering: Scaling, envelope, gaining functions
./codes/segy: Basic functions to manipulate SU-SEGY files
./codes/seismic_plots: Functions to display data
./codes/spectra: FK panels
./codes/synthetics: Simple synthetics to test algorithms
./codes/velan_nmo: Velocity analysis, NMO, inverse NMO, etc
./SeismicLab_demos: Demos
./SeismicLab_data: Data used to run demos
Use, for instance, help decon to see the contents of ./codes/decon
to see available demos try: help SeismicLab_demos
If you want, for instance, to investigate the contents of ./codes/decon, try the following >> help decon KOLMOG: Kolmogoroff spectral factorization. LS_INV_FILTER: Least-squares inverse filter of a wavelet. POLAR_PLOT: Plot the roots of a wavelet in polar coordinates. PREDICTIVE: Predictive deconvolution filter. SMOOTH_SPECTRUM: Power spectrum estimate by smoothing the periodogram. SPARSE_DECON: Sparse-spike deconvolution using a l1 norm regularization. SPIKING: Spiking deconvolution using Levinson's recursion. ZEROS_WAV: computes the zeros of a wavelet. to see how to use spiking.m
>> help spiking
SPIKING: Spiking deconvolution using Levinson's recursion.
[f,o] = spiking(d,NF,mu)
IN d: data (trace are columns)
NF: lenght of the spiking operator
mu: prewhitening in percentage
OUT f: the filter
o: the ouput or convolution of the data with
the filter (adjusted to the length of the
input data) and normalized to 1.
Note: We assume a minimum phase wavelet, we also assume
that the reflectivity is a white process. The latter
allows us to estimate the autocorrelation of
the wavelet from the autocorrelation of the trace.
Reference: Robinson and Treitel, 1980, Geophysical Signal Analysis,
Prentice Hall
Note: some clarity was lost in order to use Matlab function "levinson"
Copyright (C) 2008, Signal Analysis and Imaging Group
For more information: http://www-geo.phys.ualberta.ca/saig/SeismicLab
Author: M.D.Sacchi
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation, either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details: http://www.gnu.org/licenses/
to see the actual program use >> more on >> type spiking Basic demosWe have included demos to test things one can do with SeismicLab, try >> help SeismicLab_demos FX_DECON_DEMO: Demo for FX decon. MOVEOUT_DEMO: NMO and Inverse NMO demo. PARABOLIC_MOVEOUT_DEMO: Analysis of residual moveout after NMO. RADON_DEMO_1: Multiple removal with the Parabolic Radon Transform. RADON_DEMO_2: Multiple removal with the Parabolic Radon Transform. SPARSE_DECON_DEMO: l1 sparse-spike deconvolution. SPIKING_DECON_DEMO: Apply spiking deconvolution to seismic traces. SPITZ_DEMO: Example showing Spitz fx interpolation VA_DEMO: Test velocity analysis program. The following script will compute and display the velocity spectrum of a cmp gather >> va_demo The demos read data from ./SeismicLab_data. The data are in "little endian format"
>> help SeismicLab_data
Data used by demos
109K data_with_noise.su
650K gom_cdp_nmo.su
380B min_phase_wavelet.su
20K small_stack.su
86K syn_cmp.su
203K syn_cmp_mult.su
420B wavelet_for_small_stack.su
- Data are in little endian
- fopen statements in ./codes/SEGY/*.m assume
data in little endian format
SU SEGY structureSeismicLab reads data in SU format (please, see The SEGY and the SU format). Header words are manipulated by the following structure
>> [segy] = segy_struct;
>> more on
>> segy
segy =
tracl: 'int'
tracr: 'int'
fldr: 'int'
tracf: 'int'
ep: 'int'
cdp: 'int'
cdpt: 'int'
trid: 'short'
nva: 'short'
nhs: 'short'
duse: 'short'
offset: 'int'
gelev: 'int'
selev: 'int'
sdepth: 'int'
gdel: 'int'
sdel: 'int'
swdep: 'int'
gwdep: 'int'
scalel: 'short'
scalco: 'short'
sx: 'int'
sy: 'int'
gx: 'int'
gy: 'int'
counit: 'short'
wevel: 'short'
swevel: 'short'
sut: 'short'
gut: 'short'
sstat: 'short'
gstat: 'short'
tstat: 'short'
laga: 'short'
lagb: 'short'
delrt: 'short'
muts: 'short'
mute: 'short'
ns: 'unsigned short'
dt: 'unsigned short'
gain: 'short'
igc: 'short'
igi: 'short'
corr: 'short'
sfs: 'short'
sfe: 'short'
slen: 'short'
styp: 'short'
stas: 'short'
stae: 'short'
tatyp: 'short'
afilf: 'short'
afils: 'short'
nofilf: 'short'
nofils: 'short'
lcf: 'short'
hcf: 'short'
lcs: 'short'
hcs: 'short'
year: 'short'
day: 'short'
hour: 'short'
minute: 'short'
sec: 'short'
timbas: 'short'
trwf: 'short'
grnors: 'short'
grnofr: 'short'
grnlof: 'short'
gaps: 'short'
otrav: 'short'
d1: 'float'
f1: 'float'
d2: 'float'
f2: 'float'
ungpow: 'float'
unscale: 'float'
ntr: 'int'
mark: 'short'
unass: 'short'
trace: 'float'
Reading a SU fileThe file "gom_cdp_nmo.su" is given in SU format. We first read the file. Then from the header structure we extract "cdp" number and "offset". The sampling interval "dt" is extracted from the first trace and converted first to msec and then to seconds "dtsec".
>> [D,H] = readsegy('gom_cdp_nmo.su');
>> cdp = [H.cdp];
>> offset = [H.offset];
>> dt = H(1).dt/1000;
>> dtsec = dt/1000;
you can now display the data, but first we create a time axis
>> [nt,nh] = size(D);
>> taxis = [0:1:nt-1]*dtsec;
>> imagesc(offset,taxis,d); title('GOM CMP gather');
>> colormap(gray);
Try also the following:
>> [D,H] = readsegy('small_stack.su'); imagesc(D); wigb(D);
|
|
Signal Analysis and Imaging Group Department of Physics, University of Alberta Edmonton, AB, T6G 2G7, Canada Phone: (780) 492-5034 Fax: (780) 492-0714 |
|