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

📄 l_combine.m

📁 基于Matlab的地震数据处理显示和测井数据显示于处理的小程序
💻 M
字号:
function wlog=l_combine(wlog1,wlog2,varargin)% Combine two logs in such a way that the curves of the second log follow % "below" the curves of the first log. There are two options:%  1.    Only curves common to both logs are used (common means they have the%        same curve mnemonics).%  2.    All curves are used. Values of curves not present in one log are set%        to the null value.% An index curve is added; the depth columns become normal curves% A well log identifier is added to the output log.% Written by: E. R.: August 16, 2003% Last updated: September 17, 2003: copy parameters%%          wlog=l_combine(wlog1,wlog2,varargin)% INPUT% wlog1    first well log% wlog2    second well log% varargin  one or more cell arrays; the first element of each cell array is a %          keyword, the other elements are parameters. Presently, keywords are:%          'option'  defines what to do with curves that are not present in both%                logs. Possible values are 'all' (curves of both wells are used)%                and 'common' (only the curves common to both logs are used)%                Default: {'option','common'}% OUTPUT% wlog     new well log where the curves of the second log are "below"%          the curves of the first log%	Set defaults for input parametersparam.option='common';%	Assign values of input parametersparam=assign_input(param,varargin);wlog=wlog1;%       Combine the parameters from the two logswlog=combine_parameters(wlog1,wlog2,wlog);mnems1=wlog1.curve_info(:,1);mnems2=wlog2.curve_info(:,1);%	Create curves with well identifier (if not yet present)idx1=find(ismember(mnems1,'wellid'));idx2=find(ismember(mnems2,'wellid'));if isempty(idx1) & isempty(idx2)   wlog1=l_curve(wlog1,'add','wellid',1,'n/a','Well identifier');   wlog2=l_curve(wlog2,'add','wellid',2,'n/a','Well identifier');   mnems1=wlog1.curve_info(:,1);   mnems2=wlog2.curve_info(:,1);   wlog.wellname='multi-well data';   wlog.wellnames={wlog1.wellname;wlog2.wellname};   wlog.wellids=[1;2];elseif ~isempty(idx1) & isempty(idx2)   wellid=max(wlog1.curves(:,idx1))+1;   wlog2=l_curve(wlog2,'add','wellid',wellid,'n/a','Well identifier');   mnems2=wlog2.curve_info(:,1);   wlog.wellnames=[wlog1.wellnames;{wlog2.wellname}];   wlog.wellids=[wlog1.wellids;wellid];elseif isempty(idx1) & ~isempty(idx2)   wellid=max(wlog2.curves(:,idx2))+1;   wlog1=l_curve(wlog1,'add','wellid',wellid,'n/a','Well identifier');   mnems1=wlog1.curve_info(:,1);   wlog.wellnames=[{wlog1.wellname},wlog2.wellnames];   wlog.wellids=[wlog2.wellids;wellid];else   wellids1=unique(wlog1.curves(:,idx1));   wellids2=unique(wlog1.curves(:,idx2));    if ~isempty(intersect(wellids1,wellids2))      wlog2.curves(:,idx2)=wlog2.curves(:,idx2)+max(wellids1);   end   wlog.wellnames=[wlog1.wellnames;wlog1.wellnames];   wlog.wellids=[wlog1.wellids;wlog2.wellids+max(wellids1)];end%idx=find(ismember('wellid',mnems2))[mnems,index1,index2]=intersect(mnems1,mnems2);%[index1,idx]=sort(index1);%index2=index1(idx);if isempty(mnems)    if strcmpi(param.option,'common')      disp(' Mnemonics of first well log:')      disp(mnems1)      disp(' Mnemonics of second well log:')      disp(mnems2)      error(' No common curves found')   endelse   info1=wlog1.curve_info(index1,:);   info2=wlog2.curve_info(index2,:);   for ii=1:length(index1)      if ~strcmpi(info1{ii,2},info2{ii,2})         wlog2=l_unit_conversion(wlog2,{info2{ii,2},info1{ii,2}});	 alert([' Units "',info2{ii,2},'" of second log converted to units "',info1{ii,2}])	      end   endendif strcmpi(param.option,'common')    curves=[wlog1.curves(:,index1);wlog2.curves(:,index2)];        wlog.curve_info=wlog1.curve_info(index1,:);elseif strcmpi(param.option,'all')%   index2=find(~ismember(mnems2,mnems1));   mnems=[mnems1;mnems2(~ismember(mnems2,mnems1))];   lmnems1=length(mnems1);   index1=1:length(mnems1);   [dummy,index,index2]=intersect(mnems(lmnems1+1:end),mnems2);   wlog.curve_info=cell(length(mnems),3);   index=index+lmnems1;   wlog.curve_info(index,:)=wlog2.curve_info(index2,:);   wlog.curve_info(index1,:)=wlog1.curve_info;   [nsamp1]=size(wlog1.curves,1);   [nsamp2]=size(wlog2.curves,1);   curves=NaN*zeros(nsamp1+nsamp2,length(mnems));     curves(1:nsamp1,index1)=wlog1.curves;   [dummy,index,index2]=intersect(mnems,mnems2);   curves(nsamp1+1:nsamp1+nsamp2,index)=wlog2.curves(:,index2);else   disp(' Unknown option')   error('Abnormal termination')endwlog.curves=curves;wlog=l_depth2index(wlog);

⌨️ 快捷键说明

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