ps_plot.m

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

M
796
字号
function []=ps_plot(value_type,plot_flag,lims,ref_ifg,ifg_list,n_x,cbar_flag,textsize,textcolor,lon_rg,lat_rg)% PS_PLOT plot ps values for selected ifgs%    PS_PLOT(VALUE_TYPE,BACKGROUND,PHASE_LIMS,REF_IFG,IFG_LIST,N_X,CBAR_FLAG,TEXTSIZE,TEXTCOLOR,LON_RG,LAT_RG) %%    valid VALUE_TYPE's are:%    'w' for wrapped phase%    'p' for spatially filtered wrapped phase %    'u' for unwrapped phase%    'd' for spatially correlated DEM error (rad/m)%    's' for atmosphere and orbit error (AOE) phase due to slave%    'm' for AOE phase due to master%    'a' for atmosphere phase due to slave that correlates with topography (ACT)%    'w-d' for wrapped phase minus dem error%    'u-d' for unwrapped phase minus dem error%    'u-m' for unwrapped phase minus master AOE%    'u-dm' for unwrapped phase minus dem error and master AOE%    'u-dms' for unwrapped phase minus dem error and all AOE%    'v' mean LOS velocity (MLV) in mm/yr%    'v-d' MLV calculated after removal of dem error (MLV)%    'vs-d' standard deviation of MLV after removal of dem error (mm/yr)%    'usb' for unwrapped phase of short baseline ifgs%    'dsb' for spatially correlated DEM error (rad/m) %    'usb-d' for unwrapped phase of sb ifgs minus dem error from short baseline ifgs%    'rsb' residual between unwrapped phase of sb ifgs and inverted%    'vsb' mean LOS velocity (mm/yr) from short baseline ifgs%%    valid BACKGROUND's are the same as for PS_PLOT_IFG (default 1)%                           %    PHASE_LIMS = 1x2 vector with colormap limits %                 defaults to the range of the plotted phase %%    REF_IFG = number of interferogram to reference to - defaults to 0 (master)%              -1 for incremental referencing%%    IFG_LIST = list of interferograms to plot - defaults to [] (all)%%    N_X = maximum number of images to plot per row %          defaults to 0 (find optimum based on image size)%%    CBAR_FLAG = colorbar flag - defaults to 0 (plot on master, if plotted)%                 1 = don't plot a colorbar%                 2 = plot a colorbar underneath%%    TEXTSIZE = size of date text in points - defaults to 0 (best)%               +ve size plots a top (default), -ve size plots at bottom%%    TEXTCOLOR = 1x3 color vector - default white or black depending on BACKGROUND%%    LON_RG = longitude range - defaults to [] (whole image)%%    LAT_RG = latitude range - defaults to [] (whole image)%%   Andy Hooper, June 2006%%   ======================================================================%   09/2006 AH: 'v' option added%   01/2007 AH: several new options added and 'u' options changed to print%               only unwrapped IFGs by default%   01/2007 AH: Added 64-bit machine compatibility%   ======================================================================if nargin<1    help ps_plot    error('not enough input args')end    if nargin < 2    plot_flag=1;endif nargin < 3    lims=[];endif nargin < 4    ref_ifg=0;endif nargin < 5    ifg_list=[];endif nargin < 6    n_x=0;endif nargin < 7    cbar_flag=0;endif nargin < 8    textsize=0;endif nargin < 9 | isempty(textcolor)    if plot_flag==1 | plot_flag==6        textcolor=[0 0 0.004];    else        textcolor=[1 1 0.996];    endendif lims==0    lims=[];endif nargin < 10    lon_rg=[];endif nargin < 11    lat_rg=[];endn_y=0;units='rad';load psverpsname=['ps',num2str(psver)];pmname=['pm',num2str(psver)];rcname=['rc',num2str(psver)];rcuwname=['rcuw',num2str(psver)];phuwname=['phuw',num2str(psver)];phuwsbname=['phuw_sb',num2str(psver)];phuwsbresname=['phuw_sb_res',num2str(psver)];scnname=['scn',num2str(psver)];apsname=['aps',num2str(psver)];apssbname=['aps_sb',num2str(psver)];sclaname=['scla',num2str(psver)];sclasbname=['scla_sb',num2str(psver)];meanvname=['mv',num2str(psver)];ps=load(psname);day=ps.day;master_day=ps.master_day;xy=ps.xy;lonlat=ps.lonlat;n_ps=ps.n_ps;n_ifg=ps.n_ifg;master_ix=sum(day<master_day)+1;ref_ps=0;    unwrap_ifg_index=getparm('unwrap_ifg_index');if strcmpi(getparm('small_baseline_flag'),'y')    unwrap_ifg_index_sb=unwrap_ifg_index;    if strcmpi(unwrap_ifg_index,'all')        unwrap_ifg_index_sb=[1:ps.n_ifg];    end    phuw=load(phuwname,'unwrap_ifg_index_sm');    if isfield(phuw,'unwrap_ifg_index_sm');        unwrap_ifg_index=phuw.unwrap_ifg_index_sm;    else        unwrap_ifg_index=[1:ps.n_image];    end    if length(value_type)>2 & (value_type(1:3)=='usb'|value_type(1:3)=='rsb') & isempty(ifg_list)        ifg_list=unwrap_ifg_index_sb;    endelse    if strcmpi(unwrap_ifg_index,'all')         unwrap_ifg_index=[1:ps.n_ifg];    endendif (value_type(1)=='u' | value_type(1)=='a') & isempty(ifg_list)    ifg_list=unwrap_ifg_index;end    switch(value_type)    case {'w'}        rc=load(rcname);        ph_all=rc.ph_rc;        if ref_ifg~=0            ph_all=ph_all.*conj(repmat(rc.ph_reref(:,ref_ifg),1,n_ifg));        end        clear rc     case {'w-d'}        rc=load(rcname);        ph_all=rc.ph_rc;        if ~strcmpi(getparm('small_baseline_flag'),'y')            scla=load(sclaname);        else            scla=load(sclasbname);        end        ph_all=ph_all.*exp(-j*scla.ph_scla);        if ref_ifg~=0            ph_all=ph_all.*conj(repmat(rc.ph_reref(:,ref_ifg),1,n_ifg));        end        clear rc scla     case {'w-dm'}        rc=load(rcname);        ph_all=rc.ph_rc;        scla=load(sclaname);        ph_all=ph_all.*exp(-j*scla.ph_scla);        ph_all=ph_all.*repmat(exp(-j*scla.C_ps_uw),1,size(ph_all,2));        ph_all(:,ps.master_ix)=1;        if ref_ifg~=0            ph_all=ph_all.*conj(repmat(rc.ph_reref(:,ref_ifg),1,n_ifg));        end        clear rc scla    case {'u'}        phuw=load(phuwname);        ph_all=phuw.ph_uw;        clear phuw        ref_ps=ps_setref;    case {'usb'}        uw=load(phuwsbname);        ph_all=uw.ph_uw;        clear uw        ref_ps=ps_setref;        textsize=0;    case {'dsb'}        scla=load(sclasbname);        ph_all=scla.K_ps_uw;        clear scla        ref_ps=ps_setref;        units='rad/m';    case {'usb-d'}        uw=load(phuwsbname);        scla=load(sclasbname);        ph_all=uw.ph_uw - scla.ph_scla;        clear uw scla        ref_ps=ps_setref;        textsize=0;    case {'usb-a'}        uw=load(phuwsbname);        aps=load(apssbname);        ph_all=uw.ph_uw - aps.ph_aps_slave;        clear uw aps        ref_ps=ps_setref;        textsize=0;    case {'usb-da'}        uw=load(phuwsbname);        scla=load(sclasbname);        aps=load(apssbname);        ph_all=uw.ph_uw - scla.ph_scla - aps.ph_aps_slave;        clear uw scla aps        ref_ps=ps_setref;        textsize=0;    case {'rsb'}        uw=load(phuwsbname);        res=load(phuwsbresname);        ph_all=zeros(size(uw.ph_uw));        ph_all(:,unwrap_ifg_index_sb)=uw.ph_uw(:,unwrap_ifg_index_sb)-res.ph_res(:,unwrap_ifg_index_sb);        clear uw        ref_ps=ps_setref;        textsize=0;    case {'asb'}        aps=load(apssbname);        ph_all=aps.ph_aps_slave;        clear aps        ref_ps=ps_setref;        textsize=0;    case {'u-dms'}        uw=load(phuwname);        scn=load(scnname);        scla=load(sclaname);        ph_all=uw.ph_uw - scn.ph_scn_slave - repmat(scla.C_ps_uw,1,size(uw.ph_uw,2)) - scla.ph_scla;        clear uw scn scla        ph_all(:,ps.master_ix)=0;        ref_ps=ps_setref;    case {'u-dmas'}        uw=load(phuwname);        scn=load(scnname);        scla=load(sclaname);        aps=load(apsname);        ph_all=uw.ph_uw - scn.ph_scn_slave - repmat(scla.C_ps_uw,1,size(uw.ph_uw,2)) - scla.ph_scla - aps.ph_aps_slave;        clear uw scn scla        ref_ps=ps_setref;    case {'u-dm'}        uw=load(phuwname);        scla=load(sclaname);        ph_all=uw.ph_uw;         %ph_all(:,unwrap_ifg_index)=ph_all(:,unwrap_ifg_index) - repmat(scla.C_ps_uw,1,length(unwrap_ifg_index));        %ph_all(:,unwrap_ifg_index) = ph_all(:,unwrap_ifg_index) - scla.ph_scla(:,unwrap_ifg_index);        ph_all=uw.ph_uw - repmat(scla.C_ps_uw,1,size(uw.ph_uw,2)) - scla.ph_scla;        ph_all(:,master_ix)=0;        clear uw scla        ref_ps=ps_setref;    case {'u-dma'}        uw=load(phuwname);        scla=load(sclaname);        aps=load(apsname);        ph_all=uw.ph_uw;         ph_all=uw.ph_uw - repmat(scla.C_ps_uw,1,size(uw.ph_uw,2)) - scla.ph_scla - aps.ph_aps_slave;        ph_all(:,master_ix)=0;        clear uw scla aps        ref_ps=ps_setref;    case {'u-a'}        uw=load(phuwname);        aps=load(apsname);        ph_all=uw.ph_uw;         ph_all=uw.ph_uw - aps.ph_aps_slave;        ph_all(:,master_ix)=0;        clear uw aps        ref_ps=ps_setref;    case {'u-d'}        uw=load(phuwname);        scla=load(sclaname);        ph_all=uw.ph_uw - scla.ph_scla;        clear uw scla        ref_ps=ps_setref;    case {'u-m'}        uw=load(phuwname);%        scn=load(scnname);        scla=load(sclaname);        ph_all=uw.ph_uw;%        ph_all(:,unwrap_ifg_index)=ph_all(:,unwrap_ifg_index) - repmat(scn.ph_scn_master,1,length(unwrap_ifg_index));        %ph_all(:,unwrap_ifg_index)=ph_all(:,unwrap_ifg_index) - repmat(scla.C_ps_uw,1,length(unwrap_ifg_index));        ph_all=uw.ph_uw - repmat(scla.C_ps_uw,1,size(uw.ph_uw,2));        ph_all(:,master_ix)=0;%        clear uw scn        clear uw scla        ref_ps=ps_setref;    case {'a'}        aps=load(apsname);        %ph_all=exp(j*ph_scn);        ph_all=aps.ph_aps_slave;        clear aps        ref_ps=ps_setref;    case {'s'}        scn=load(scnname);        %ph_all=exp(j*ph_scn);        ph_all=scn.ph_scn_slave;        clear scn        ref_ps=ps_setref;    case {'m'}        %scn=load(scnname);        %ph_all=scn.ph_scn_master;        %clear scn        scla=load(sclaname);        ph_all=scla.C_ps_uw;        clear scla        ref_ps=ps_setref;    case {'d'}        scla=load(sclaname);        ph_all=scla.K_ps_uw;        clear scla        ref_ps=ps_setref;        units='rad/m';    case {'v'}        uw=load(phuwname);        ph_uw=uw.ph_uw;        clear uw        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);        % Each ifg has master APS - slave APS, including master         % (where slave APS = master APS) so OK to include master in inversion        G=[ones(size(day)),day-master_day];         %G=[ones(size(day)),day-master_day,cos(2*pi*(day-datenum(2000,1,0))/365.25-5.86)];                 m=G\double(ph_uw');        lambda=getparm('lambda');        ph_all=m(2,:)'*365.25/4/pi*lambda*1000; % m(1,:) is master APS + mean deviation from model        save mean_v m        %ph_all=m(3,:)'/4/pi*lambda*1000;        %ph_all=m(1,:)';        textsize=0;        units='mm/yr';     case {'v-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] ;                m=G\double(ph_uw');        save mean_v m        lambda=getparm('lambda');

⌨️ 快捷键说明

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