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

📄 l_elastic_impedance.m

📁 地震、测井方面matlab代码,解释的比较详细
💻 M
字号:
function wlog=l_elastic_impedance(wlog,varargin)
% Function computes elastic impedance log for given angles
% The program performes the following steps
% 1. Compute angle-dependent reflection coefficients for the requested angles
% 2. Compute angle-dependent impedance
% Function assumes that P-sonic (P-velocity), S-sonic (or S-velocity) and density are 
% represented by the appropriate mnemonics.
% Rewritten by: E. R., July 16, 2003
% Last updated: April 5, 2004: Remove time-conversion/interpolation step
%
%          wlog=l_elastic_impedance(wlog,varargin)
% INPUT
% wlog     log structure with at least sonic, shear, and density curves
% varagin  one or more cell arrays; the first element of each cell array is a keyword string,
%          the following arguments contains a parameter(s). 
%          Accepted keywords are:
%          'angles'  vector of angles (in degrees). 
%                Default: {'angles',[0:10:50]}
%          'method'  Method used; possible values are 'Aki', 'Bortfeld', 'Shuey','Hilterman','two-term'
%                The case does not matter ('Aki' is equivalent to 'aki')
%                Default: {'method','Bortfeld'}
% OUTPUT
% wlog     input log structure with the elastic impedance curves appended
%          the curve mnemonics are Eimp with the angle appended (e.g. eImp30 for the 
%          elastic impedance for 30 degrees)

%       Set defaults for input parameters
param.angles=[0:10:50];
param.method='Bortfeld';

%       Decode and assign input arguments
[param,cm]=l_assign_input(param,varargin,'l_elastic_impedance');

wlog=l_seismic_acoustic(wlog,{'cm',cm});

tlog=l_seismic_elastic(wlog,{'cm',cm});

tlog=l_rm_nulls(tlog,'any');
tlog=l_interpolate(tlog);

if strcmpi(param.method,'Rueger')
   tlog=l_curve(tlog,'keep',{cm.vp,cm.vs,cm.rho,cm.aimp,cm.epsilon,cm.delta});
   [refl,coeff]=ava_approximation_rueger(l_gc(tlog,cm.vp),l_gc(tlog,cm.vs), ...
           l_gc(tlog,cm.rho),l_gc(tlog,cm.epsilon),l_gc(tlog,cm.delta), ...
           param.angles);
else
   tlog=l_curve(tlog,'keep',{cm.vp,cm.vs,cm.rho,cm.aimp});
   [refl,coeff]=ava_approximation(l_gc(tlog,cm.vp),l_gc(tlog,cm.vs), ...
           l_gc(tlog,cm.rho),param.angles,param.method);
end
%       Compute angle-dependent impedance
imp0=l_gc(tlog,cm.aimp);
imp0=imp0(1);

imp=imp0*exp(2*[zeros(1,length(param.angles));cumsum(refl)]);

%       Add curves to existing log
tlog.curves=[tlog.curves,imp];
info=cell(length(param.angles),3);
for ii=1:length(param.angles)
   mnem=['eImp',num2str(param.angles(ii))];
   wlog=l_curve(wlog,'delete_ne',mnem);
   info(ii,:)={mnem,[l_gu(tlog,cm.vp),' x ',l_gu(tlog,cm.rho)], ...
      ['Elastic impedance for ',num2str(param.angles(ii)),' deg.(',param.method,')']};
   wlog=add_curve_type(wlog,{mnem,'Imp','impedance'});
end
tlog.curve_info=[tlog.curve_info;info];

wlog=l_append(wlog,l_select(tlog,[{'curves'},info(:,1)']));

⌨️ 快捷键说明

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