|
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 |