ps_plot.m

来自「StaMps最新测试版」· M 代码 · 共 796 行 · 第 1/2 页

M
796
字号
        ph_all=m(2,:)'*365.25/4/pi*lambda*1000; % m(1,:) is master APS + mean deviation from model        %ph_all=m(3,:)'/4/pi*lambda*1000;        textsize=0;        units='mm/yr';     case {'v-da'}        uw=load(phuwname);        scla=load(sclaname);        aps=load(apsname);        ph_uw=uw.ph_uw - scla.ph_scla- aps.ph_aps_slave;        clear uw scla aps        ph_all=zeros(n_ps,1);        ref_ps=ps_setref;        unwrap_ifg_index=setdiff(unwrap_ifg_index,ps.master_ix);        if ~isempty(ifg_list)            unwrap_ifg_index=intersect(unwrap_ifg_index,ifg_list);            ifg_list=[];        end        ph_uw=ph_uw(:,unwrap_ifg_index);        day=day(unwrap_ifg_index);                ph_uw=ph_uw-repmat(mean(ph_uw(ref_ps,:)),n_ps,1);        %G=[ones(size(day)),day-master_day,cos(2*pi*(day-datenum(2000,1,0))/365.25-5.86)];         G=[ones(size(day)),day-master_day];                 m=G\double(ph_uw');        save mean_v m        lambda=getparm('lambda');        ph_all=m(2,:)'*365.25/4/pi*lambda*1000; % m(1,:) is master APS + mean deviation from model        %ph_all=m(3,:)'/4/pi*lambda*1000;        textsize=0;        units='mm/yr';     case {'v-a'}        uw=load(phuwname);        aps=load(apsname);        ph_uw=uw.ph_uw - aps.ph_aps_slave;        clear uw aps        ph_all=zeros(n_ps,1);        ref_ps=ps_setref;        unwrap_ifg_index=setdiff(unwrap_ifg_index,ps.master_ix);        if ~isempty(ifg_list)            unwrap_ifg_index=intersect(unwrap_ifg_index,ifg_list);            ifg_list=[];        end        ph_uw=ph_uw(:,unwrap_ifg_index);        day=day(unwrap_ifg_index);                ph_uw=ph_uw-repmat(mean(ph_uw(ref_ps,:)),n_ps,1);        %G=[ones(size(day)),day-master_day,cos(2*pi*(day-datenum(2000,1,0))/365.25-5.86)];         G=[ones(size(day)),day-master_day];                 m=G\double(ph_uw');        save mean_v m        lambda=getparm('lambda');        ph_all=m(2,:)'*365.25/4/pi*lambda*1000; % m(1,:) is master APS + mean deviation from model        %ph_all=m(3,:)'/4/pi*lambda*1000;        textsize=0;        units='mm/yr';     case {'v-ds'}        uw=load(phuwname);        scla=load(sclaname);        scn=load(scnname);        ph_uw=uw.ph_uw - scla.ph_scla - scn.ph_scn_slave;        clear uw scla scn        ph_all=zeros(n_ps,1);        ref_ps=ps_setref;        unwrap_ifg_index=setdiff(unwrap_ifg_index,ps.master_ix);        if ~isempty(ifg_list)            unwrap_ifg_index=intersect(unwrap_ifg_index,ifg_list);            ifg_list=[];        end        ph_uw=ph_uw(:,unwrap_ifg_index);        day=day(unwrap_ifg_index);                ph_uw=ph_uw-repmat(mean(ph_uw(ref_ps,:)),n_ps,1);        %G=[ones(size(day)),day-master_day,cos(2*pi*(day-datenum(2000,1,0))/365.25-5.86)];         G=[ones(size(day)),day-master_day];                 m=G\double(ph_uw');        save mean_v m        lambda=getparm('lambda');        ph_all=m(2,:)'*365.25/4/pi*lambda*1000; % m(1,:) is master APS + mean deviation from model        %ph_all=m(3,:)'/4/pi*lambda*1000;        textsize=0;        units='mm/yr';     case {'v-das'}        uw=load(phuwname);        scla=load(sclaname);        scn=load(scnname);        aps=load(apsname);        ph_uw=uw.ph_uw - scla.ph_scla- aps.ph_aps_slave - scn.ph_scn_slave;        clear uw scla aps scn        ph_all=zeros(n_ps,1);        ref_ps=ps_setref;        unwrap_ifg_index=setdiff(unwrap_ifg_index,ps.master_ix);        if ~isempty(ifg_list)            unwrap_ifg_index=intersect(unwrap_ifg_index,ifg_list);            ifg_list=[];        end        ph_uw=ph_uw(:,unwrap_ifg_index);        day=day(unwrap_ifg_index);                ph_uw=ph_uw-repmat(mean(ph_uw(ref_ps,:)),n_ps,1);        %G=[ones(size(day)),day-master_day,cos(2*pi*(day-datenum(2000,1,0))/365.25-5.86)];         G=[ones(size(day)),day-master_day];                 m=G\double(ph_uw');        save mean_v m        lambda=getparm('lambda');        ph_all=m(2,:)'*365.25/4/pi*lambda*1000; % m(1,:) is master APS + mean deviation from model        %ph_all=m(3,:)'/4/pi*lambda*1000;        textsize=0;        units='mm/yr';   case {'vdrop-d'}        uw=load(phuwname);        scla=load(sclaname);        ph_uw=uw.ph_uw - scla.ph_scla;        clear uw scla        unwrap_ifg_index=setdiff(unwrap_ifg_index,ps.master_ix);        ph_all=zeros(n_ps,1);        ref_ps=ps_setref;        if ~isempty(ifg_list)            unwrap_ifg_index=intersect(unwrap_ifg_index,ifg_list);            ifg_list=[];        end        ph_uw=ph_uw(:,unwrap_ifg_index);        day=day(unwrap_ifg_index);                ph_uw=ph_uw-repmat(mean(ph_uw(ref_ps,:)),n_ps,1);        %G=[ones(size(day)),day-master_day,cos(2*pi*(day-datenum(2000,1,0))/365.25-5.86)];         G=[ones(size(day)),day-master_day] ;        n=size(ph_uw,2);        lambda=getparm('lambda');        ph_all=zeros(size(ph_uw));        for i=1:n            m=G([1:i-1,i+1:end],:)\double(ph_uw(:,[1:i-1,i+1:n])');            ph_all(:,i)=m(2,:)'*365.25/4/pi*lambda*1000;         end        %ph_all=m(3,:)'/4/pi*lambda*1000;        textsize=0;             units='mm/yr';   case {'vsb'}        phuw=load(phuwsbname);        ref_ps=ps_setref;        unwrap_ifg_index=getparm('unwrap_ifg_index')        if strcmp(unwrap_ifg_index,'all')            unwrap_ifg_index=[1:n_ifg];        end	        ph_uw=phuw.ph_uw(:,unwrap_ifg_index);        ifgday_ix=ps.ifgday_ix(unwrap_ifg_index,:);        clear phuw        ph_uw=ph_uw-repmat(mean(ph_uw(ref_ps,:)),n_ps,1);        G=[ones(size(ifgday_ix(:,1))),day(ifgday_ix(:,2))-day(ifgday_ix(:,1))];        m=G\double(ph_uw');        lambda=getparm('lambda');        ph_all=m(2,:)'*365.25/4/pi*lambda*1000;         %ph_all=m(1,:)';         textsize=0;        units='mm/yr';   case {'vsb-d'}        uw=load(phuwsbname);        scla=load(sclasbname);        ph_all=uw.ph_uw - scla.ph_scla;        clear uw scla        ref_ps=ps_setref;        unwrap_ifg_index=getparm('unwrap_ifg_index')        if strcmp(unwrap_ifg_index,'all')            unwrap_ifg_index=[1:n_ifg];        end	        ph_all=ph_all(:,unwrap_ifg_index);        ifgday_ix=ps.ifgday_ix(unwrap_ifg_index,:);        clear phuw        ph_all=ph_all-repmat(mean(ph_all(ref_ps,:)),n_ps,1);        G=[ones(size(ifgday_ix(:,1))),day(ifgday_ix(:,2))-day(ifgday_ix(:,1))];        m=G\double(ph_all');        lambda=getparm('lambda');        ph_all=m(2,:)'*365.25/4/pi*lambda*1000;         %ph_all=m(1,:)';         textsize=0;        units='mm/yr';    case {'p'}        pm=load(pmname);        %pm=load(rcuwname);        ph_all=pm.ph_patch./abs(pm.ph_patch);        if n_ifg~=size(ph_all,2)            ph_all=[ph_all(:,1:ps.master_ix-1),zeros(ps.n_ps,1),ph_all(:,ps.master_ix:end)];        end        clear pm        if ref_ifg~=0            ph_all=ph_all.*repmat(conj(ph_all(:,ref_ifg)),1,n_ifg);            ph_all(:,ref_ifg)=1; % may not be so because of rounding errors        end    case {'wf'}        uw=load('uw_grid');        gridix=zeros(size(uw.nzix));        gridix(uw.nzix)=[1:uw.n_ps];        ph_all=zeros(ps.n_ps,uw.n_ifg);        for i=1:ps.n_ps            ph_all(i,:)=uw.ph(gridix(uw.grid_ij(i,1),uw.grid_ij(i,2)),:);        end        clear uw        if ref_ifg~=0            ph_all=ph_all.*conj(repmat(ph_all(:,ref_ifg),1,n_ifg));        end    case {'vs-d'}        if exist(['./',meanvname,'.mat'],'file')==0            ps_mean_v;        end        mv=load(meanvname);        ph_all=mv.mean_v_std;        units='mm/yr';                    otherwise        error('unknown value type')endif isempty(ifg_list)    ifg_list=1:size(ph_all,2);endn_ifg_plot=length(ifg_list);figureset(gcf,'renderer','zbuffer')[Y,X]=meshgrid([0.7:-0.2:0.1],[0.1:0.1:0.8]);xgap=0.1;ygap=0.2;if ~isempty(lon_rg)    ix=lonlat(:,1)>=lon_rg(1)&lonlat(:,1)<=lon_rg(2);    lonlat=lonlat(ix,:);endif ~isempty(lat_rg)    ix=lonlat(:,2)>=lat_rg(1)&lonlat(:,2)<=lat_rg(2);    lonlat=lonlat(ix,:);endmax_xy=llh2local([max(lonlat),0]',[min(lonlat),0]);fig_ar=4/3; % aspect ratio of figure windowuseratio=1; % max fraction of figure window to usen_i=max_xy(2)*1000;n_j=max_xy(1)*1000;ar=max_xy(1)/max_xy(2); % aspect ratio (x/y)if n_x==0    n_y=ceil(sqrt((n_ifg_plot)*ar/fig_ar)); % number of plots in y direction    n_x=ceil((n_ifg_plot)/n_y);else    n_y=ceil((n_ifg_plot)/n_x);end% d_y=0.9/n_y;% d_x=d_y*ar;% if d_x>0.9/n_x%     d_x=0.9/n_x;%     d_y=d_x/ar;% endd_x=useratio/n_x;d_y=d_x/ar*fig_ar;if d_y>useratio/n_y    d_y=useratio/n_y;     d_x=d_y*ar/fig_ar;endh_y=0.95*d_y;h_x=h_y*ar/fig_ar;%y=1-d_y:-0.99/n_y:0;%y=1-d_y:-0.90/n_y:0;y=1-d_y:-d_y:0;x=1-useratio:d_x:1-d_x;[imY,imX]=meshgrid(y,x);if textsize==0    textsize=round(10*4/n_x);    if textsize>16        textsize=16;    elseif textsize<8        textsize=8;    endendl_t=1/9*abs(textsize)/10; % text lengthh_t=1/50*abs(textsize)/10; % text heightx_t=round((h_x-l_t)/h_x/2*n_j);y_t=round(h_t*1.2/h_y*n_i);ph_disp=ph_all(:,ifg_list);if isreal(ph_all)    if ref_ifg~=0        if ref_ifg==-1            ph_disp=ph_disp-[ph_disp(:,1),ph_disp(:,1:end-1)];        else            ph_disp=ph_disp-repmat(ph_all(:,ref_ifg),1,size(ph_disp,2));        end    else        ref_ifg=master_ix;    end    if ref_ps~=0        ref_ph=(ph_disp(ref_ps,:));        mean_ph=zeros(1,size(ph_disp,2));        for i=1:size(ph_disp,2)            mean_ph(i)=mean(ref_ph(~isnan(ref_ph(:,i)),i));        end        ph_disp=ph_disp-repmat(mean_ph,n_ps,1);    end        phsort=sort(ph_disp(~isnan(ph_disp)));    if isempty(lims)        maxph=phsort(round(length(phsort)*.999));        minph=phsort(ceil(length(phsort)*.001));       lims=[minph,maxph];    endelse    if ref_ifg==0        ref_ifg=master_ix;    elseif ref_ifg==-1        ph_disp=ph_disp.*conj([ph_disp(:,1),ph_disp(:,1:end-1)]);    end    if ref_ps~=0        ph_disp=ph_disp./abs(ph_disp);        ref_ph=(ph_disp(ref_ps,:));        mean_ph=zeros(1,size(ph_disp,2));        for i=1:size(ph_disp,2)            mean_ph(i)=sum(ref_ph(~isnan(ref_ph(:,i)),i));        end        ph_disp=ph_disp.*conj(repmat(mean_ph,n_ps,1));    end    lims=[-pi,pi];end%for i=1:size(ph_all,2)i_im=0;for i=ifg_list    %subplot(5,7,i);    i_im=i_im+1;    if n_ifg_plot>1        axes('position',[imX(i_im),imY(i_im),h_x,h_y])    end    %axes('position',[X(i),Y(i),xgap,ygap])    ps_plot_ifg(ph_disp(:,i_im),plot_flag,lims,lon_rg,lat_rg);    %plot_phase(ph_tc(:,i)*conj(ph_tc(ref_ix,i)));    box on    if n_ifg_plot>1        set(gca,'yticklabel',[])        set(gca,'xticklabel',[])    end    xlim=get(gca,'xlim');    x_t=(h_x-l_t)/2/h_x*(xlim(2)-xlim(1))+xlim(1);    ylim=get(gca,'ylim');    if textsize>0        y_t=(h_y-1.2*h_t)/h_y*(ylim(2)-ylim(1))+ylim(1);    else        y_t=(0.5*h_t)/h_y*(ylim(2)-ylim(1))+ylim(1);    end    %xlabel([num2str((day(i)/365.25),3),'yr, ',num2str(round(bperp(i))),'m'])    if textsize~=0 & size(day,1)==size(ph_all,2)        t=text(x_t,y_t,[datestr(day(i),'dd mmm yyyy')]);        set(t,'fontweight','bold','color',textcolor,'fontsize',abs(textsize))    end        if cbar_flag==0 & (i==ref_ifg | (isempty(intersect(ref_ifg,ifg_list)) & i==ifg_list(1)))         if n_ifg_plot>1            h=colorbar('South');        else            h=colorbar('SouthOutside');        end        xlim=get(h,'xlim');        set(h,'xlim',[xlim(2)-64,xlim(2)])        if diff(lims)>1 | diff(lims)==0            plotlims=round(lims*10)/10;        else            limorder=ceil(-log10(diff(lims)))+2;            plotlims=round(lims*10^limorder)/10^limorder;        end        set(h,'xtick',[xlim(2)-64,xlim(2)],'Xticklabel',plotlims,'xcolor',textcolor,'ycolor',textcolor,'fontweight','bold','color',textcolor)    endend    fprintf('Color Range: %g to %g %s\n',lims,units)        

⌨️ 快捷键说明

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