24小时热门版块排行榜    

查看: 10592  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

baobiao007

木虫 (职业作家)

中国特色

[交流] 分享用matlab显示地震记录的波形变面积图 已有9人参与

wigb函数是网上找的,自己添了个主程序方便使用。


主程序
function PlotRecord_Wigb(filename,nx,nt,dx,dt,zy)
%波形变面积显示地震记录
% clear; clf;clc;
% nx=200; %道数
% nt=2001; %采样点数
% dx=10.;     %道间距
% dt=0.001;   %时间采样间隔
% zy=1.0;     %增益
% filename='r200-2001-1ms.dat';
clf;
fid=fopen(filename,'r');
[A,COUNT]=fread(fid,[nt,nx],'float32');
fclose(fid);


x=0:dx: (nx-1)*dx;
z=0:dt: (nt-1)*dt;
wigb(A,zy,x,z);

end

子函数
function wigb (a,scal,x,z,amx)
%WIGB: Plot seismic data using wiggles.
%
%  WIGB(a,scal,x,z,amx)
%
%  IN    a:     seismic data
%        scale: multiple data by scale
%        x:     x-axis;
%        z:     vertical axis (time or depth)
%
%         If only 'a' is enter, 'scal,x,z,amn,amx' are decided automatically;
%         otherwise, 'scal' is a scalar; 'x, z' are vectors for annotation in
%         offset and time, amx are the amplitude range.
%
%
%  Author(s): Xingong Li (Exxon-Mobil)
%  Copyright 1998-2003 Xingong
%  Revision: 1.2  Date: Dec/2002
%  
%  Signal Analysis and Imaging Group (SAIG)
%  Department of Physics, UofA
%

if nargin == 0, nx=10;nz=10; a = rand(nz,nx)-0.5; end;

[nz,nx]=size(a);

trmx= max(abs(a));
if (nargin <= 4); amx=mean(trmx);  end;
if (nargin <= 2); x=[1:nx]; z=[1:nz]; end;
if (nargin <= 1); scal =1; end;

if nx <= 1 ; disp(' ERR: PlotWig: nx has to be more than 1');return;end;

% take the average as dx
        dx1 = abs(x(2:nx)-x(1:nx-1));
        dx = median(dx1);

dz=z(2)-z(1);
xmx=max(max(a)); xmn=min(min(a));

if scal == 0; scal=1; end;
a = a * dx /amx;
a = a * scal;

fprintf(' PlotWig: data range [%f, %f], plotted max %f \n',xmn,xmx,amx);

% set display range
x1=min(x)-2.0*dx; x2=max(x)+2.0*dx;
z1=min(z)-dz; z2=max(z)+dz;

set(gca,'NextPlot','add','Box','on', ...
  'XLim', [x1 x2], ...
  'YDir','reverse', ...
  'YLim',[z1 z2]);


        fillcolor = [0 0 0];
        linecolor = [0 0 0];
        linewidth = 0.1;

        z=z';         % input as row vector
        zstart=z(1);
        zend  =z(nz);

for i=1:nx,
   
  if trmx(i) ~= 0;    % skip the zero traces
        tr=a(:,i);         % --- one scale for all section
          s = sign(tr) ;
          i1= find( s(1:nz-1) ~= s(2:nz) );        % zero crossing points
        npos = length(i1);


        %12/7/97
        zadd = i1 + tr(i1) ./ (tr(i1) - tr(i1+1)); %locations with 0 amplitudes
        aadd = zeros(size(zadd));

        [zpos,vpos] = find(tr >0);
        [zz,iz] = sort([zpos; zadd]);         % indices of zero point plus positives
        aa = [tr(zpos); aadd];
        aa = aa(iz);

        % be careful at the ends
                if tr(1)>0,         a0=0; z0=1.00;
                else,                 a0=0; z0=zadd(1);
                end;
                if tr(nz)>0,         a1=0; z1=nz;
                else,                 a1=0; z1=max(zadd);
                end;
                       
        zz = [z0; zz; z1; z0];
        aa = [a0; aa; a1; a0];
               
        zzz = zstart + zz*dz -dz;

        patch( aa+x(i) , zzz,  fillcolor);

        line( 'Color',[1 1 1],'EraseMode','background',  ...
         'Xdata', x(i)+[0 0], 'Ydata',[zstart zend]); % remove zero line

%'LineWidth',linewidth, ...
%12/7/97 'Xdata', x(i)+[0 0], 'Ydata',[z0 z1]*dz);        % remove zero line

        line( 'Color',linecolor,'EraseMode','background',  ...
         'LineWidth',linewidth, ...
         'Xdata', tr+x(i), 'Ydata',z);        % negatives line

   else % zeros trace
        line( 'Color',linecolor,'EraseMode','background',  ...
         'LineWidth',linewidth, ...
         'Xdata', [x(i) x(i)], 'Ydata',[zstart zend]);
   end;
end;


[ Last edited by baobiao007 on 2012-4-9 at 10:41 ]
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cj000211

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
多谢了~~~刚下载完,回去试试看
11楼2013-05-07 11:20:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

smithjohn

金虫 (正式写手)

0.8

板块做地震的不多
楼主试过实际地震资料么?
2楼2012-04-09 18:13:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

没有,实际地震资料要根据具体的数据格式来弄,勘探地震有自己行业标准的数据格式。 天然地震的就不清楚了
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
3楼2012-04-09 18:21:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
谢谢分享
4楼2012-04-11 10:29:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 EZ67DG6CvcKL 2026-08-31 5/250 2026-09-01 05:43 by o3EMxHUAQDtS
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 wsYGJnURYvm6 2026-08-31 3/150 2026-09-01 01:40 by o3EMxHUAQDtS
[基金申请] 怎么看青基中了没有啊 +6 叶九微 2026-08-26 6/300 2026-08-31 23:54 by yudaoqian88
[基金申请] 基金未中,这种答复是模板吗? +6 zhaosm1982 2026-08-27 7/350 2026-08-31 21:18 by qdxxmc
[文学芳草园] 梦想 +5 myrtle 2026-08-26 5/250 2026-08-31 14:40 by hahaboy
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[基金申请] 有没有仍没收到信息的 +7 德尚中行 2026-08-27 8/400 2026-08-30 20:52 by purplejack
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +6 gdd2018 2026-08-28 11/550 2026-08-30 08:58 by 超级无敌华子
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
信息提示
请填处理意见