⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diaopensegy.m

📁 matlab编写的地震数据格式转换
💻 M
字号:
function varargout = DIAOpenSEGY(varargin)% DIAOPENSEGY Application M-file for DIAOpenSEGY.fig%    FIG = DIAOPENSEGY launch DIAOpenSEGY GUI.%    DIAOPENSEGY('callback_name', ...) invoke the named callback.% Last Modified by GUIDE v2.0 12-Jun-2002 10:25:58if ((nargin == 0)|isstruct(varargin{1}))  % LAUNCH GUI	fig = openfig(mfilename,'reuse');	% Use system color scheme for figure:	set(fig,'Color',get(0,'defaultUicontrolBackgroundColor'));	% Generate a structure of handles to pass to callbacks, and store it. 	handles = guihandles(fig);	guidata(fig, handles);    data = guihandles(fig); % initialize it to contain handles    if nargin==0;      data.JUMP.jump=5;      data.JUMP.enable=1;      data.TRACEHEADER.name='offset';      data.TRACEHEADER.min=1;      data.TRACEHEADER.max=1e+9;      data.TRACEHEADER.enable=0;      data.TIMERANGE.min=1;      data.TIMERANGE.max=5;      data.TIMERANGE.enable=0;      data.pathname='';      data.filename='';      guidata(fig,data);    else      data.JUMP=varargin{1}.JUMP;      data.TRACEHEADER=varargin{1}.TRACEHEADER;      data.TIMERANGE=varargin{1}.TIMERANGE;      if isfield(varargin{1},'pathname');data.pathname=varargin{1}.pathname;end      if isfield(varargin{1},'filename');data.filename=varargin{1}.filename;end    end    guidata(fig,data);              set(fig,'HandleVisibility','On')    DIAOpenSEGY('actionUpdateGUI',fig,handles)    set(fig,'HandleVisibility','CallBack')	    % Wait for callbacks to run and window to be dismissed:	uiwait(fig);    if nargout > 0       data=guidata(fig);       SEGYFILE.JUMP=data.JUMP;       SEGYFILE.TRACEHEADER=data.TRACEHEADER;       SEGYFILE.TIMERANGE=data.TIMERANGE;       if isfield(data,'SegyHeader')         SEGYFILE.SegyHeader=data.SegyHeader;       end       if isfield(data,'filename'),SEGYFILE.filename=data.filename;end       if isfield(data,'pathname'),SEGYFILE.pathname=data.pathname;end       varargout{1} = SEGYFILE;    end    		    closereq    elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK	try		if (nargout)			[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard		else			feval(varargin{:}); % FEVAL switchyard		end	catch		disp(lasterr);	endend%| ABOUT CALLBACKS:%| GUIDE automatically appends subfunction prototypes to this file, and %| sets objects' callback properties to call them through the FEVAL %| switchyard above. This comment describes that mechanism.%|%| Each callback subfunction declaration has the following form:%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)%|%| The subfunction name is composed using the object's Tag and the %| callback type separated by '_', e.g. 'slider2_Callback',%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.%|%| H is the callback object's handle (obtained using GCBO).%|%| EVENTDATA is empty, but reserved for future use.%|%| HANDLES is a structure containing handles of components in GUI using%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This%| structure is created at GUI startup using GUIHANDLES and stored in%| the figure's application data using GUIDATA. A copy of the structure%| is passed to each callback.  You can store additional information in%| this structure at GUI startup, and you can change the structure%| during callbacks.  Call guidata(h, handles) after changing your%| copy to replace the stored original so that subsequent callbacks see%| the updates. Type "help guihandles" and "help guidata" for more%| information.%|%| VARARGIN contains any extra arguments you have passed to the%| callback. Specify the extra arguments by editing the callback%| property in the inspector. By default, GUIDE sets the property to:%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))%| Add any extra arguments after the last argument, before the final%| closing parenthesis.function actionUpdateGUI(h,handles)data=guidata(h);% RESET FILEMAME,PATHNAME if FILE DOES NOT EXISTif isfield(data,'filename')    if exist([data.pathname,data.filename])~=2      data=rmfield(data,'filename');      data=rmfield(data,'pathname');  endend    % CHECK THAT A FILENAME I SET, and disbale if not.if isfield(data,'filename'),        cbEnable='on';    set(handles.eFilename,'String',[data.pathname,data.filename]);else        cbEnable='off';    set(handles.eFilename,'String','');endset(findobj('style','checkbox'),'enable',cbEnable)% JUMPset(handles.cbJump,'Value',data.JUMP.enable);data.Jump.value=get(handles.cbJump,'Value');if ((get(handles.cbJump,'Value')==1)&(isfield(data,'filename'))),     enableJump='on';     data.JUMP.enable=1;else,     enableJump='off';     data.JUMP.enable=0;endset(handles.eJump,'Enable',enableJump)    set(handles.eJump,'String',data.JUMP.jump) % TraceHeaderset(handles.cbTraceHeader,'Value',data.TRACEHEADER.enable);data.TraceHeader.value=get(handles.cbTraceHeader,'Value');if ((get(handles.cbTraceHeader,'Value')==1)&(isfield(data,'filename'))),     enableTraceHeader='on';    data.TRACEHEADER.enable=1;else,     enableTraceHeader='off';     data.TRACEHEADER.enable=0;endhnames=get(handles.popTraceHeader,'string');selected=get(handles.popTraceHeader,'value');for i=1:length(hnames)    if strcmp(hnames{i},data.TRACEHEADER.name),        set(handles.popTraceHeader,'Value',i);    endendset(handles.popTraceHeader,'Enable',enableTraceHeader)  set(handles.eTraceHeaderMin,'Enable',enableTraceHeader) set(handles.eTraceHeaderMin,'String',data.TRACEHEADER.min)set(handles.eTraceHeaderMax,'Enable',enableTraceHeader)    set(handles.eTraceHeaderMax,'String',data.TRACEHEADER.max)    % TimeRangeset(handles.cbTimeRange,'Value',data.TIMERANGE.enable);data.TimeRange.value=get(handles.cbTimeRange,'Value');if ((get(handles.cbTimeRange,'Value')==1)&(isfield(data,'filename'))),     enableTimeRange='on';     data.TIMERANGE.enable=1;else,     data.TIMERANGE.enable=0;    enableTimeRange='off'; endset(handles.eTimeRangeMin,'Enable',enableTimeRange)    set(handles.eTimeRangeMin,'String',data.TIMERANGE.min)set(handles.eTimeRangeMax,'Enable',enableTimeRange)    set(handles.eTimeRangeMax,'String',data.TIMERANGE.max)guidata(h,data)% --------------------------------------------------------------------function varargout = eFilename_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = pbSelectFile_Callback(h, eventdata, handles, varargin)data=guidata(h);[filename, pathname] = uigetfile('*.su;*.SU;*.sgy;*.SGY;*.seg*;*.SEGY', 'Pick a SEGY or SU file');    if isequal(filename,0)|isequal(pathname,0)       disp('File not found')       return    else       disp(['File ', pathname, filename, ' found'])       set(handles.eFilename,'String',[pathname,filename])       data.pathname=pathname;       data.filename=filename;    endguidata(h,data)actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = cbJump_Callback(h, eventdata, handles, varargin)data=guidata(h);data.JUMP.enable=get(h,'Value');guidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = eJump_Callback(h, eventdata, handles, varargin)data=guidata(h);if ~isempty(str2num(get(h,'String')));data.JUMP.jump=str2num(get(h,'String'));endguidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = cbTraceHeader_Callback(h, eventdata, handles, varargin)data=guidata(h);data.TRACEHEADER.enable=get(h,'Value');guidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = popTraceHeader_Callback(h, eventdata, handles, varargin)data=guidata(h);hnames=get(h,'string');selected=get(h,'value');data.TRACEHEADER.name=hnames{selected};guidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = eTraceHeaderMin_Callback(h, eventdata, handles, varargin)data=guidata(h);if ~isempty(str2num(get(h,'String')));data.TRACEHEADER.min=str2num(get(h,'String'));endif data.TRACEHEADER.min>data.TRACEHEADER.max    data.TRACEHEADER.min=data.TRACEHEADER.max;endguidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = eTraceHeaderMax_Callback(h, eventdata, handles, varargin)data=guidata(h);if ~isempty(str2num(get(h,'String')));data.TRACEHEADER.max=str2num(get(h,'String'));endif data.TRACEHEADER.max<data.TRACEHEADER.min    data.TRACEHEADER.max=data.TRACEHEADER.min;endguidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = cbTimeRange_Callback(h, eventdata, handles, varargin)data=guidata(h);data.TIMERANGE.enable=get(h,'Value');guidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = eTimeRangeMin_Callback(h, eventdata, handles, varargin)data=guidata(h);if ~isempty(str2num(get(h,'String')));data.TIMERANGE.min=str2num(get(h,'String'));endif data.TIMERANGE.min>data.TIMERANGE.max;       data.TIMERANGE.min=data.TIMERANGE.max;endguidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = eTimeRangeMax_Callback(h, eventdata, handles, varargin)data=guidata(h);if ~isempty(str2num(get(h,'String')));data.TIMERANGE.max=str2num(get(h,'String'));endif data.TIMERANGE.max<data.TIMERANGE.min    data.TIMERANGE.max=data.TIMERANGE.min;endguidata(h,data);actionUpdateGUI(h,handles)% --------------------------------------------------------------------function varargout = pbReadSegy_Callback(h, eventdata, handles, varargin)uiresume% --------------------------------------------------------------------function varargout = pbCancel_Callback(h, eventdata, handles, varargin)data=guidata(h);if isfield(data,'filename'), data=rmfield(data,'filename'); endif isfield(data,'pathname'), data=rmfield(data,'pathname'); endguidata(h,data);uiresume% --------------------------------------------------------------------function varargout = pbGUIEditSegyHeader_Callback(h, eventdata, handles, varargin)data=guidata(h);% GET SEGY HEDER FROM FILE, UNLESS WE ALLREADY GOT ITif isfield(data,'SegyHeader')==0  data.SegyHeader=GetSegyHeader([data.pathname,data.filename]);end% EDIT THE SEGY HEADERdata.SegyHeader=GUIEditSegyHeader(data.SegyHeader);guidata(h,data);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -