coreg_inv.m

来自「StaMps最新测试版」· M 代码 · 共 89 行

M
89
字号
%COREG_INV invert coreg translations for coefficients%%    Andy Hooper, Aug 2005%%   ======================================================================%   04/2008 AH: Updated for compatibility with matlab 2008a%   ======================================================================cpmname=dir('CPM_Data.*');load coreg_parmsLrange=coreg_parms(1)-1Prange=coreg_parms(2)-1N=coreg_parms(3)^2%osf=coreg_parms(4)osf=1n_ifg=coreg_parms(5)G=sparse(0,n_ifg*12);d=zeros(0,1);for i=1:length(cpmname);        thisname=cpmname(i).name;    CPM_Data=load(thisname);        posL1=((CPM_Data(:,2)-1)*4/Lrange)-2;    posP1=((CPM_Data(:,3)-1)*4/Prange)-2;    offL=CPM_Data(:,4);    offP=CPM_Data(:,5);    posL2=((CPM_Data(:,2)+offL-1)*4/Lrange)-2;    posP2=((CPM_Data(:,3)+offP-1)*4/Prange)-2;    n_pos=size(posL2,1);    corrf=CPM_Data(:,6);    stdev=sqrt(3/2/N).*sqrt(1-corrf.^2)/pi./corrf*osf^(3/2);    weighting=1./stdev;    ifgs=sscanf(thisname,'CPM_Data.%d.%d');    ifg1=ifgs(1);    ifg2=ifgs(2);        Gblock1=[ones(size(posL1)),posL1,posP1,posL1.^2,posL1.*posP1,posP1.^2];    Gblock1=Gblock1.*repmat(weighting,1,6);    Gblock2=[ones(size(posL2)),posL2,posP2,posL2.^2,posL2.*posP2,posP2.^2];    Gblock2=Gblock2.*repmat(weighting,1,6);    Gnew=sparse(n_pos*2,n_ifg*12);    if ifg1~=0       Gnew(1:n_pos,(ifg1-1)*12+1:(ifg1-1)*12+6)=Gblock1;       Gnew(n_pos+1:n_pos*2,(ifg1-1)*12+7:ifg1*12)=Gblock1;    end    Gnew(1:n_pos,(ifg2-1)*12+1:(ifg2-1)*12+6)=-Gblock2;    Gnew(n_pos+1:n_pos*2,(ifg2-1)*12+7:ifg2*12)=-Gblock2;        G=[G;Gnew];    d=[d;weighting.*offL;weighting.*offP];    %d=[d;offL;offP];end% coeff_s gives mapping of slave to master w.r.t. slave positioncoeff_s=G\d;% we want mapping of slave to master w.r.t. master positionl=[-2:0.05:2];p=l;[Ls,Ps]=meshgrid(l,p);Ls=Ls(:);Ps=Ps(:);nsynth=length(Ls);Gblock=[ones(nsynth,1),Ls,Ps,Ls.^2,Ls.*Ps,Ps.^2];Gsynth=sparse(2*nsynth,12);Gsynth(1:nsynth,1:6)=Gblock;Gsynth(nsynth+1:end,7:12)=Gblock;coeff_m=zeros(size(coeff_s));for i=1:n_ifg    ifg_coeff_s=coeff_s((i-1)*12+1:i*12);    dsynth=Gsynth*ifg_coeff_s;    Lm=Ls+dsynth(1:nsynth)*4/Lrange;    Pm=Ps+dsynth(nsynth+1:end)*4/Prange;    Gblock=[ones(nsynth,1),Lm,Pm,Lm.^2,Lm.*Pm,Pm.^2];    Gsynth(1:nsynth,1:6)=Gblock;    Gsynth(nsynth+1:end,7:12)=Gblock;    coeff_m((i-1)*12+1:i*12)=Gsynth\-dsynth;endsave('coreg_coeffs.txt','-ascii','coeff_m')          

⌨️ 快捷键说明

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