Home > matutils > interf > difmap.m

difmap

PURPOSE ^

[dmap,mapvar]=difmap(ad,u,v,vis,vari)

SYNOPSIS ^

function [dmap,mapvar]=difmap(ad,u,v,vis,vari,varpow)

DESCRIPTION ^

 [dmap,mapvar]=difmap(ad,u,v,vis,vari)

 Equivalent to my make_dmap function but uses code
 ripped out of difmap. More than factor 3 faster.
 Tested against standalone difmap and agrees.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [dmap,mapvar]=difmap(ad,u,v,vis,vari,varpow)
0002 % [dmap,mapvar]=difmap(ad,u,v,vis,vari)
0003 %
0004 % Equivalent to my make_dmap function but uses code
0005 % ripped out of difmap. More than factor 3 faster.
0006 % Tested against standalone difmap and agrees.
0007 
0008 
0009 if(~exist('vari'))
0010   vari=[];
0011 end
0012 
0013 if(~exist('varpow'))
0014   varpow=[];
0015 end
0016 
0017 if(isempty(vari))
0018   vari=ones(size(vis));
0019 end
0020 
0021 if(isempty(varpow))
0022   varpow=-1;
0023 end
0024 
0025 if(isa(vari,'single'))
0026   vari=double(vari);
0027 end
0028 if(isa(vari,'single'))
0029   vis=double(vis);
0030 end
0031 
0032 if(isreal(vari))
0033   % Variance from SZA pipeline is real number which is variance of
0034   % real and imag parts - no need to halve.
0035   vari=vari;
0036 else
0037   % When input var is complex lump them together
0038   vari=(real(vari)+imag(vari))/2;
0039 end
0040 
0041 % Filter out NaNs - makes no sense to feed them to mapper
0042 i=find(~isnan(vis)&~isnan(vari));
0043 vis=vis(i);
0044 vari=vari(i);
0045 u=u(i);
0046 v=v(i);
0047 
0048 N_pix=ad.N_pix*2;
0049 
0050 [dmap,mapvar]=difmap_c(u,v,vis,vari,varpow,N_pix,ad.del_t);
0051 
0052 l=N_pix/4+1; m=3*N_pix/4;
0053 
0054 dmap=dmap(l:m,l:m);
0055 
0056 dmap=fliplr(dmap); 
0057 dmap=rot90(dmap);
0058 
0059 return

Generated on Sun 14-Jun-2015 17:12:45 by m2html © 2005