Skip to content

Commit 345defa

Browse files
committed
2021 jupyter remake
0 parents  commit 345defa

89 files changed

Lines changed: 11164 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

SegyMAT/CheckSegyTraceHeader.m

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
% SegyTraceHeader=CheckSegyTraceHeader(SegyTraceHeader);
2+
%
3+
% Checks that all fields of the SegyTraceHeader is set.
4+
% If not, they are initialized.
5+
%
6+
7+
%
8+
% (C) 2004, Thomas Mejer Hansen, tmh@gfy.ku.dk/thomas@cultpenguin.com
9+
%
10+
%
11+
%
12+
% This program is free software; you can redistribute it and/or modify
13+
% it under the terms of the GNU General Public License as published by
14+
% the Free Software Foundation; either version 2 of the License, or
15+
% (at your option) any later version.
16+
%
17+
% This program is distributed in the hope that it will be useful,
18+
% but WITHOUT ANY WARRANTY; without even the implied warranty of
19+
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20+
% GNU General Public License for more details.
21+
%
22+
% You should have received a copy of the GNU General Public License
23+
% along with this program; if not, write to the Free Software
24+
% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25+
%
26+
function SegyTraceHeader=CheckSegyTraceHeader(SegyTraceHeader);
27+
%% SET UP SegyTraceHeader
28+
NA=0;
29+
30+
if ~isfield(SegyTraceHeader,'TraceSequenceLine'), SegyTraceHeader.TraceSequenceLine=NA;end
31+
if ~isfield(SegyTraceHeader,'TraceSequenceFile'), SegyTraceHeader.TraceSequenceFile=NA;end
32+
if ~isfield(SegyTraceHeader,'FieldRecord'), SegyTraceHeader.FieldRecord=NA;end
33+
if ~isfield(SegyTraceHeader,'TraceNumber'), SegyTraceHeader.TraceNumber=NA;end
34+
if ~isfield(SegyTraceHeader,'EnergySourcePoint'), SegyTraceHeader.EnergySourcePoint=NA;end
35+
if ~isfield(SegyTraceHeader,'cdp'), SegyTraceHeader.cdp=NA;end
36+
if ~isfield(SegyTraceHeader,'cdpTrace'), SegyTraceHeader.cdpTrace=NA;end
37+
if ~isfield(SegyTraceHeader,'TraceIdenitifactionCode'), SegyTraceHeader.TraceIdenitifactionCode=NA;end
38+
if ~isfield(SegyTraceHeader,'NSummedTraces'), SegyTraceHeader.NSummedTraces=NA;end
39+
if ~isfield(SegyTraceHeader,'NStackedTraces'), SegyTraceHeader.NStackedTraces=NA;end
40+
if ~isfield(SegyTraceHeader,'DataUse'), SegyTraceHeader.DataUse=NA;end
41+
if ~isfield(SegyTraceHeader,'offset'), SegyTraceHeader.offset=NA;end
42+
if ~isfield(SegyTraceHeader,'ReceiverGroupElevation'), SegyTraceHeader.ReceiverGroupElevation=NA;end
43+
if ~isfield(SegyTraceHeader,'SourceSurfaceElevation'), SegyTraceHeader.SourceSurfaceElevation=NA;end
44+
if ~isfield(SegyTraceHeader,'SourceDepth'), SegyTraceHeader.SourceDepth=NA;end
45+
if ~isfield(SegyTraceHeader,'ReceiverDatumElevation'), SegyTraceHeader.ReceiverDatumElevation=NA;end
46+
if ~isfield(SegyTraceHeader,'SourceDatumElevation'), SegyTraceHeader.SourceDatumElevation=NA;end
47+
if ~isfield(SegyTraceHeader,'SourceWaterDepth'), SegyTraceHeader.SourceWaterDepth=NA;end
48+
if ~isfield(SegyTraceHeader,'GroupWaterDepth'), SegyTraceHeader.GroupWaterDepth=NA;end
49+
if ~isfield(SegyTraceHeader,'ElevationScalar'), SegyTraceHeader.ElevationScalar=NA;end
50+
% Multiply/divide next number for following 4 values
51+
if ~isfield(SegyTraceHeader,'SourceGroupScalar'), SegyTraceHeader.SourceGroupScalar=NA;end
52+
if ~isfield(SegyTraceHeader,'SourceX'), SegyTraceHeader.SourceX=NA;end
53+
if ~isfield(SegyTraceHeader,'SourceY'), SegyTraceHeader.SourceY=NA;end
54+
if ~isfield(SegyTraceHeader,'GroupX'), SegyTraceHeader.GroupX=NA;end
55+
if ~isfield(SegyTraceHeader,'GroupY'), SegyTraceHeader.GroupY=NA;end
56+
if ~isfield(SegyTraceHeader,'CoordinateUnits'), SegyTraceHeader.CoordinateUnits=NA;end
57+
if ~isfield(SegyTraceHeader,'WeatheringVelocity'), SegyTraceHeader.WeatheringVelocity=NA;end
58+
if ~isfield(SegyTraceHeader,'SubWeatheringVelocity'), SegyTraceHeader.SubWeatheringVelocity=NA;end
59+
if ~isfield(SegyTraceHeader,'SourceUpholeTime'), SegyTraceHeader.SourceUpholeTime=NA;end
60+
if ~isfield(SegyTraceHeader,'GroupUpholeTime'), SegyTraceHeader.GroupUpholeTime=NA;end
61+
if ~isfield(SegyTraceHeader,'SourceStaticCorrection'), SegyTraceHeader.SourceStaticCorrection=NA;end
62+
if ~isfield(SegyTraceHeader,'GroupStaticCorrection'), SegyTraceHeader.GroupStaticCorrection=NA;end
63+
if ~isfield(SegyTraceHeader,'TotalStaticApplied'), SegyTraceHeader.TotalStaticApplied=NA;end
64+
if ~isfield(SegyTraceHeader,'LagTimeA'), SegyTraceHeader.LagTimeA=NA;end
65+
if ~isfield(SegyTraceHeader,'LagTimeB'), SegyTraceHeader.LagTimeB=NA;end
66+
if ~isfield(SegyTraceHeader,'DelayRecordingTime'), SegyTraceHeader.DelayRecordingTime=NA;end
67+
if ~isfield(SegyTraceHeader,'MuteTimeStart'), SegyTraceHeader.MuteTimeStart=NA;end
68+
if ~isfield(SegyTraceHeader,'MuteTimeEND'), SegyTraceHeader.MuteTimeEND=NA;end
69+
if ~isfield(SegyTraceHeader,'ns'), SegyTraceHeader.ns=NA;end
70+
if ~isfield(SegyTraceHeader,'dt'), SegyTraceHeader.dt=NA;end
71+
if ~isfield(SegyTraceHeader,'GainType'), SegyTraceHeader.GainType=NA;end
72+
if ~isfield(SegyTraceHeader,'InstrumentGainConstant'), SegyTraceHeader.InstrumentGainConstant=NA;end
73+
if ~isfield(SegyTraceHeader,'InstrumentInitialGain'), SegyTraceHeader.InstrumentInitialGain=NA;end
74+
if ~isfield(SegyTraceHeader,'Correlated'), SegyTraceHeader.Correlated=NA;end
75+
if ~isfield(SegyTraceHeader,'SweepFrequenceStart'), SegyTraceHeader.SweepFrequenceStart=NA;end
76+
if ~isfield(SegyTraceHeader,'SweepFrequenceEnd'), SegyTraceHeader.SweepFrequenceEnd=NA;end
77+
if ~isfield(SegyTraceHeader,'SweepLength'), SegyTraceHeader.SweepLength=NA;end
78+
if ~isfield(SegyTraceHeader,'SweepType'), SegyTraceHeader.SweepType=NA;end
79+
if ~isfield(SegyTraceHeader,'SweepTraceTaperLengthStart'), SegyTraceHeader.SweepTraceTaperLengthStart=NA;end
80+
if ~isfield(SegyTraceHeader,'SweepTraceTaperLengthEnd'), SegyTraceHeader.SweepTraceTaperLengthEnd=NA;end
81+
if ~isfield(SegyTraceHeader,'TaperType'), SegyTraceHeader.TaperType=NA;end
82+
if ~isfield(SegyTraceHeader,'AliasFilterFrequency'), SegyTraceHeader.AliasFilterFrequency=NA;end
83+
if ~isfield(SegyTraceHeader,'AliasFilterSlope'), SegyTraceHeader.AliasFilterSlope=NA;end
84+
if ~isfield(SegyTraceHeader,'NotchFilterFrequency'), SegyTraceHeader.NotchFilterFrequency=NA;end
85+
if ~isfield(SegyTraceHeader,'NotchFilterSlope'), SegyTraceHeader.NotchFilterSlope=NA;end
86+
if ~isfield(SegyTraceHeader,'LowCutFrequency'), SegyTraceHeader.LowCutFrequency=NA;end
87+
if ~isfield(SegyTraceHeader,'HighCutFrequency'), SegyTraceHeader.HighCutFrequency=NA;end
88+
if ~isfield(SegyTraceHeader,'LowCutSlope'), SegyTraceHeader.LowCutSlope=NA;end
89+
if ~isfield(SegyTraceHeader,'HighCutSlope'), SegyTraceHeader.HighCutSlope=NA;end
90+
da=clock;
91+
if ~isfield(SegyTraceHeader,'YearDataRecorded'), SegyTraceHeader.YearDataRecorded=da(1);end
92+
DayOfYear=datenum(0,da(2),da(3)); % 22/7-2002 by Michael Toews (mwtoews@ucalgary.ca)
93+
if ~isfield(SegyTraceHeader,'DayOfYear'), SegyTraceHeader.DayOfYear=DayOfYear;end
94+
if ~isfield(SegyTraceHeader,'HourOfDay'), SegyTraceHeader.HourOfDay=da(4);end
95+
if ~isfield(SegyTraceHeader,'MinuteOfHour'), SegyTraceHeader.MinuteOfHour=da(5);end
96+
if ~isfield(SegyTraceHeader,'SecondOfMinute'), SegyTraceHeader.SecondOfMinute=round(da(6));end
97+
if ~isfield(SegyTraceHeader,'TimeBaseCode'), SegyTraceHeader.TimeBaseCode=NA;end
98+
if ~isfield(SegyTraceHeader,'TraceWeightningFactor'), SegyTraceHeader.TraceWeightningFactor=NA;end
99+
if ~isfield(SegyTraceHeader,'GeophoneGroupNumberRoll1'), SegyTraceHeader.GeophoneGroupNumberRoll1=NA;end
100+
if ~isfield(SegyTraceHeader,'GeophoneGroupNumberFirstTraceOrigField'), SegyTraceHeader.GeophoneGroupNumberFirstTraceOrigField=NA;end
101+
if ~isfield(SegyTraceHeader,'GeophoneGroupNumberLastTraceOrigField'), SegyTraceHeader.GeophoneGroupNumberLastTraceOrigField=NA;end
102+
if ~isfield(SegyTraceHeader,'GapSize'), SegyTraceHeader.GapSize=NA;end
103+
if ~isfield(SegyTraceHeader,'OverTravel'), SegyTraceHeader.OverTravel=NA;end
104+
if ~isfield(SegyTraceHeader,'cdpX'), SegyTraceHeader.cdpX=NA;end
105+
if ~isfield(SegyTraceHeader,'cdpY'), SegyTraceHeader.cdpY=NA;end
106+
if ~isfield(SegyTraceHeader,'Inline3D'), SegyTraceHeader.Inline3D=NA;end
107+
if ~isfield(SegyTraceHeader,'Crossline3D'), SegyTraceHeader.Crossline3D=NA;end
108+
if ~isfield(SegyTraceHeader,'ShotPoint'), SegyTraceHeader.ShotPoint=NA;end
109+
if ~isfield(SegyTraceHeader,'ShotPointScalar'), SegyTraceHeader.ShotPointScalar=NA;end
110+
if ~isfield(SegyTraceHeader,'TraceValueMeasurementUnit'), SegyTraceHeader.TraceValueMeasurementUnit=NA;end
111+
if ~isfield(SegyTraceHeader,'TransductionConstantMantissa'), SegyTraceHeader.TransductionConstantMantissa=NA;end
112+
if ~isfield(SegyTraceHeader,'TransductionConstantPower'), SegyTraceHeader.TransductionConstantPower=NA;end
113+
if ~isfield(SegyTraceHeader,'TransductionUnit'), SegyTraceHeader.TransductionUnit=NA;end
114+
if ~isfield(SegyTraceHeader,'TraceIdentifier'), SegyTraceHeader.TraceIdentifier=NA;end
115+
if ~isfield(SegyTraceHeader,'ScalarTraceHeader'), SegyTraceHeader.ScalarTraceHeader=NA;end
116+
117+
118+
if ~isfield(SegyTraceHeader,'SourceType'), SegyTraceHeader.SourceType=NA;end
119+
if ~isfield(SegyTraceHeader,'SourceEnergyDirectionMantissa'), SegyTraceHeader.SourceEnergyDirectionMantissa=NA;end
120+
if ~isfield(SegyTraceHeader,'SourceEnergyDirectionExponent'), SegyTraceHeader.SourceEnergyDirectionExponent=NA;end
121+
if ~isfield(SegyTraceHeader,'SourceMeasurementMantissa'), SegyTraceHeader.SourceMeasurementMantissa=NA;end
122+
if ~isfield(SegyTraceHeader,'SourceMeasurementExponent'), SegyTraceHeader.SourceMeasurementExponent=NA;end
123+
if ~isfield(SegyTraceHeader,'SourceMeasurementUnit'), SegyTraceHeader.SourceMeasurementUnit=NA;end
124+
125+
if ~isfield(SegyTraceHeader,'UnassignedInt1'), SegyTraceHeader.UnassignedInt1=NA;end
126+
if ~isfield(SegyTraceHeader,'UnassignedInt2'), SegyTraceHeader.UnassignedInt2=NA;end
127+

SegyMAT/Contents.m

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
% SegyMAT : A toolbox to read, write and manipulating SEG Y formatted files
2+
% Version 1.00
3+
%
4+
% New Features.
5+
% README
6+
%
7+
% Main
8+
% ReadSegy - Reads Segy File
9+
% ReadSegyHeader - Reads SegyHeader from Segy File
10+
% ReadSegyFast - Reads Segy File in fast mode. No header values will be read.
11+
% WriteSegy - Write Segy formatted data
12+
% WriteSegyStructure- Write Segy formatted data using SegyMAT data structures
13+
%
14+
% ReadSu - Reads a SU formatted file.
15+
% ReadSuFast - Reads a SU formatted file in fast mode. No header values will be read.
16+
% WriteSu - Write SU formatted data
17+
% WriteSuStructure - Write Su formatted data using SegyMAT data structures
18+
%
19+
% Lower Level IO
20+
% GetSegyHeader - Reads the segyheader of a SEGY Y formatted file
21+
% GetSegyHeaderBasics - Default Segy header settings
22+
%
23+
% GetSegyTrace.m - Read Segy Trace Header and Data from filehandle
24+
% GetSegyTraceHeader - Read Segy Trace Header from filehandle
25+
% GetSegyTraceData - Read Segy Trace Data from filehandle
26+
%
27+
% PutSegyHeader - Write Segy Header to filehandle
28+
% PutSegyTrace - Write Segy Trace Header and Data to filehandle
29+
%
30+
% InitSegyTraceHeader - Initalize all fields in the SegyTraceheader
31+
% CheckSegyTraceHeader.m - Check a SegyTraceHeader for all required fields
32+
%
33+
%
34+
% SU<-> SEG-Y conversion
35+
% Su2Segy - Convert SU formatted files to SEG Y
36+
% Segy2Su - Convert SEG Y formatted files to SU
37+
%
38+
% Plotting
39+
% wiggle - wiggle/variable area/image plotting of seismic data
40+
%
41+
% Misc
42+
% ibm2num - Convert IBM 32 bit floatto double
43+
% num2ibm - Convert IEEE 754 doubles to IBM 32 bit floating point format
44+
% ebcdic2ascii - convert ebcdic to ascii format
45+
% SegymatVerbose - controls amount of info written to screen
46+
% SegymatVersion - Return the current SegyMAT version
47+
%
48+
%
49+
% Seismic Processing :
50+
% SegyMAT_GAIN : 'agc' and 'power' gain.
51+
%
52+
% (C) 2001-2004 Thomas Mejer Hansen, tmh@gfy.ku.dk/thomas@cultpenguin.com
53+
%
54+
55+
%
56+
% This program is free software; you can redistribute it and/or modify
57+
% it under the terms of the GNU General Public License as published by
58+
% the Free Software Foundation; either version 2 of the License, or
59+
% (at your option) any later version.
60+
%
61+
% This program is distributed in the hope that it will be useful,
62+
% but WITHOUT ANY WARRANTY; without even the implied warranty of
63+
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
64+
% GNU General Public License for more details.
65+
%
66+
% You should have received a copy of the GNU General Public License
67+
% along with this program; if not, write to the Free Software
68+
% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
69+
%
70+
71+
% Demonstrations.
72+
% SegyMATdemo1 - Writes a Segy formatted filr, reads it and displays it
73+
% (NOT IMPLEMENTED)
74+

SegyMAT/GUI/DIAAboutSegymat.fig

2.37 KB
Binary file not shown.

SegyMAT/GUI/DIAAboutSegymat.m

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
function varargout = DIAAboutSegymat(varargin)
2+
% DIAAboutSegymat Application M-file for DIAAboutSegymat.fig
3+
% FIG = DIAABOUTSEGYMAT launch DIAAboutSegymat GUI.
4+
% DIAABOUTSEGYMAT('callback_name', ...) invoke the named callback.
5+
6+
% Last Modified by GUIDE v2.0 06-May-2002 10:38:58
7+
8+
if nargin == 0 % LAUNCH GUI
9+
10+
fig = openfig(mfilename,'reuse');
11+
12+
% Generate a structure of handles to pass to callbacks, and store it.
13+
handles = guihandles(fig);
14+
guidata(fig, handles);
15+
16+
set(fig,'HandleVisibility','On')
17+
[ver,releasedate]=SegymatVersion;
18+
[rev]=SegymatRevision;
19+
set(handles.tVersion,'String',ver)
20+
set(handles.tReleaseDate,'String',releasedate)
21+
set(handles.lbRevision,'String',rev)
22+
set(fig,'HandleVisibility','CallBack')
23+
24+
set(handles.fAboutSegymat,'Visible','on')
25+
26+
% Wait for callbacks to run and window to be dismissed:
27+
uiwait(fig);
28+
29+
if nargout > 0
30+
varargout{1} = fig;
31+
end
32+
33+
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK
34+
35+
try
36+
if (nargout)
37+
[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard
38+
else
39+
feval(varargin{:}); % FEVAL switchyard
40+
end
41+
catch
42+
disp(lasterr);
43+
end
44+
45+
end
46+
47+
48+
%| ABOUT CALLBACKS:
49+
%| GUIDE automatically appends subfunction prototypes to this file, and
50+
%| sets objects' callback properties to call them through the FEVAL
51+
%| switchyard above. This comment describes that mechanism.
52+
%|
53+
%| Each callback subfunction declaration has the following form:
54+
%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)
55+
%|
56+
%| The subfunction name is composed using the object's Tag and the
57+
%| callback type separated by '_', e.g. 'slider2_Callback',
58+
%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.
59+
%|
60+
%| H is the callback object's handle (obtained using GCBO).
61+
%|
62+
%| EVENTDATA is empty, but reserved for future use.
63+
%|
64+
%| HANDLES is a structure containing handles of components in GUI using
65+
%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This
66+
%| structure is created at GUI startup using GUIHANDLES and stored in
67+
%| the figure's application data using GUIDATA. A copy of the structure
68+
%| is passed to each callback. You can store additional information in
69+
%| this structure at GUI startup, and you can change the structure
70+
%| during callbacks. Call guidata(h, handles) after changing your
71+
%| copy to replace the stored original so that subsequent callbacks see
72+
%| the updates. Type "help guihandles" and "help guidata" for more
73+
%| information.
74+
%|
75+
%| VARARGIN contains any extra arguments you have passed to the
76+
%| callback. Specify the extra arguments by editing the callback
77+
%| property in the inspector. By default, GUIDE sets the property to:
78+
%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))
79+
%| Add any extra arguments after the last argument, before the final
80+
%| closing parenthesis.
81+
82+
83+
84+
% --------------------------------------------------------------------
85+
function varargout = listbox1_Callback(h, eventdata, handles, varargin)
86+
87+
88+
89+
90+
% --------------------------------------------------------------------
91+
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)
92+
uiresume
93+
closereq

SegyMAT/GUI/DIAOpenSEGY.fig

36.1 KB
Binary file not shown.

0 commit comments

Comments
 (0)