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

📄 s_cplot.m

📁 实现地震勘探中
💻 M
📖 第 1 页 / 共 2 页
字号:
if iscell(param.limits)   param.limits=cat(2,param.limits{:});end  ma=max(yi(~isnan(yi)));if isempty(ma)   iname=inputname(1);   if strcmpi(iname,'')      iname='data set';   end   alert([' All elements of ',iname,' are null values']);   returnendmi=min(yi(~isnan(yi)));if ma*mi < 0   ma=(ma-mi)*0.5;%   ma=max(ma,-mi);   mi=-ma;elseif ma == mi   ma=ma+10000*max(ma*eps,eps);   mi=mi-10000*max(mi*eps,eps);enddmami=ma-mi;if isempty(param.limits)   if iscell(param.clim)      param.clim=cat(2,param.clim{:});   end   param.limits(2)=ma-dmami*param.clim(2);   param.limits(1)=mi+dmami*param.clim(1);   if param.limits(1) >= param.limits(2)      alert(' clim(1) + clim(2) must be less than 1; present values ignored')      param.limits(1)=mi;      param.limits(2)=ma;   endelse   if param.limits(1) >= param.limits(2)      alert(' limits(1) must be less than limits(2); present values ignored')      param.limits(1)=mi;      param.limits(2)=ma;   endend%       Define colormap to usetry   cm=mycolormap(param.colormap);catch %#ok   disp(' Reqested colormap not found; seismic colormap used instead.')   cm=mycolormap('seismic');end%       Flip color matrix if requestedif isyes(param.flip_colormap)   cm=flipud(cm);end %    Plot dataif isempty(param.shading)   cplot_no1(yi,seismic.first,dti,xi,param.direction,cm, ...         param.limits,ha)else   cplot_no2(yi,seismic.first,dti,xi,param.direction,cm, ...         param.limits,ha,param.shading)end%  Titleif ~isempty(param.title)   if iscell(param.title)		% Handle multi-line titles      mytitle(param.title{1})   else      mytitle(param.title)   endend%	Add annotation of horizontal axisxtext=s_gd(seismic,param.annotation);hunits=s_gu(seismic,param.annotation);if ~isempty(xtext) && ~strcmpi(xtext,'not available')   if ~isempty(hunits) && ~strcmpi(hunits,'n/a')      xtext=[xtext,' (',hunits,')'];   end   xlabel([xtext,text2append])endif ~isempty(param.time_lines)   if ~iscell(param.time_lines)      param.time_lines={param.time_lines};   end   v=axis;   width=1;   for ii=1:length(param.time_lines)      t1=ceil(v(3)/param.time_lines{ii})*param.time_lines{ii};      temp=t1:param.time_lines{ii}:v(4);      mygrid(temp,'h','k',width);      width=width*1.5;   endendbox ongrid on zoom onset(ha,'gridlinestyle','-','xgrid','off','Layer','top')%	Button for figure-export menu% figure_export_menu(figure_handle);%	Button for scroll barscseismic_scrollbar_menu(figure_handle,seismic,param.direction)%	Button for cursor trackingif (isempty(param.tracking) && strcmpi(param.figure,'new'))  ||  ...    strcmpi(param.tracking,'yes')       % Add cursor tracking       [dummy,xinfo]=s_gh(seismic,param.annotation);   %#ok First output argument is not required   y=linspace(seismic.first,seismic.last,nsamp);   yinfo=info4time(seismic);   initiate_3d_tracking(seismic.traces,xi,y,xinfo,yinfo,{'amplitude','','Amplitude'})else   yinfo=info4time(seismic);   ylabel([yinfo{3},' (',yinfo{2},')'])end%	Button for menu to change image (color, etc. ...)if strcmpi(param.imagemenu,'yes')   myimagemenu  %	Create menu button to interactively change colors, etc.end%       Update colorbarif isyes(param.colorbar)   colorbarend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function cplot_no1(seis,stm,prm,xannot,plot_dir,cm,param_scale,ha)% Function plot seismic data as image plot%%          cplot(seis,stm,prm,xannot,plot_dir,cm,param_scale,ha,colbar)% INPUT% seis   seismic traces% stm    start time% prm    sample interval% xannot x-axis annotation% plot_dir  plot direction ('l2r' or 'r2l'); default: 'l2r'% cm     color matrix% param_scale  a 2-element vector containing clow and chigh (see imagesc and colormap).%%        or by global variable param.clim which computes %        ma=max(seis(:)); %        if ma > 0%           param_scale(2)=ma*param.clim(2);%        else%           param_scale(2)=ma/param.clim(2);%        end%        mi=min(seis(:)); %        if mi > 0%           param_scale(1)=mi/param.clim(1);%        else%           param_scale(1)=mi*param.clim(1);%        end%        if param_scale(1) >= param_scale(2)%           cc=mean(param_scale);%           param_scale(1)=cc*(1-eps);%           param_scale(2)=cc*(1+eps);%        end% ha     handle of axis[nbin,ntr]=size(seis);% 	Handle plot and CDP directionif strcmp(plot_dir,'r2l') == 1 && xannot(1) < xannot(ntr),    flip_axis=1;elseif strcmp(plot_dir,'r2l') ~= 1 && xannot(1) > xannot(ntr),    xannot=flipud(xannot(:));   seis=fliplr(seis);   flip_axis=1;elseif strcmp(plot_dir,'r2l') == 1 && xannot(1) > xannot(ntr),   xannot=flipud(xannot(:));   flip_axis=0;   seis=fliplr(seis);else   flip_axis=0;end%axis([xannot(1)-0.5,xannot(ntr)+0.5,stm,stm+(nbin-1)*prm])if ~isempty(param_scale) && ~all(isconstant(seis))   handle=imagesc(xannot,stm:prm:(nbin-1)*prm+stm,seis,param_scale);else   handle=imagesc(xannot,stm:prm:(nbin-1)*prm+stm,seis);end set(handle,'Tag','image_displayed') % Create tag for image object which is                                      % used in "myimagemenu"try   colormap(cm),catch  %#ok   % Do nothingendset(ha,'XAxisLocation','top','YDir','Reverse');if flip_axis == 1,   set(ha,'XDir','Reverse');enddrawnow%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function cplot_no2(seis,stm,prm,xannot,plot_dir,cm,param_scale,ha,param_shading)% Function plot seismic data using "pcolor"%%          cplot(seis,stm,prm,xannot,plot_dir,cm,param_scale,ha,colbar)% INPUT% seis   seismic traces% stm    start time% prm    sample interval% xannot x-axis annotation% plot_dir  plot direction ('l2r' or 'r2l'); default: 'l2r'% cm     color matrix% param_scale  a 2-element vector containing clow and chigh (see imagesc and colormap).%%        or by global variable param.clim which computes %        ma=max(seis(:)); %        if ma > 0%           param_scale(2)=ma*param.clim(2);%        else%           param_scale(2)=ma/param.clim(2);%        end%        mi=min(seis(:)); %        if mi > 0%           param_scale(1)=mi/param.clim(1);%        else%           param_scale(1)=mi*param.clim(1);%        end%        if param_scale(1) >= param_scale(2)%           cc=mean(param_scale);%           param_scale(1)=cc*(1-eps);%           param_scale(2)=cc*(1+eps);%        end% ha     handle of axis[nbin,ntr]=size(seis);% 	Handle plot and CDP directionif strcmp(plot_dir,'r2l') == 1 && xannot(1) < xannot(ntr),    flip_axis=1;   xannot=xannot(:);elseif strcmp(plot_dir,'r2l') ~= 1 && xannot(1) > xannot(ntr),    xannot=flipud(xannot(:));   seis=fliplr(seis);   flip_axis=1;elseif strcmp(plot_dir,'r2l') == 1 && xannot(1) > xannot(ntr),   xannot=flipud(xannot(:));   flip_axis=0;   seis=fliplr(seis);else   flip_axis=0;   xannot=xannot(:);endtry   colormap(cm),catch  %#ok   % Do nothingend%axis([xannot(1)-0.5,xannot(ntr)+0.5,stm,stm+(nbin-1)*prm])seis=double(seis);seis(end+1,end+1)=0;seis(:,end)=seis(:,end-1);% shading flathandle=pcolor([0;xannot]+0.5,stm-prm/2:prm:(nbin-1)*prm+stm+prm/2,seis);if ~isempty(param_scale)   set(gca, 'CLim', param_scale);end set(handle,'Tag','image_displayed') % Create tag for pplot object which is                                      % used in "myimagemenu"try   shading(param_shading)catch  %#ok   disp([' Unknown parameter for keyword "shading": ',param_shading])endset(ha,'XAxisLocation','top','YDir','Reverse');if flip_axis == 1,   set(ha,'XDir','Reverse');enddrawnow

⌨️ 快捷键说明

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