% fan_correlation - Correlate fan images over time which_experiment = 'mvco07' % which_experiment = 'pasta1' make_plots = 1; switch which_experiment case 'mvco07' settings.fname = 'D:\crs\data\MVCO2007\8369fan_raw.cdf'; case 'mvco05' settings.fname = 'D:\crs\data\Ripple_data\8044fan_raw.cdf'; case 'pasta1' settings.fname = 'D:\crs\data\Ripple_data\701fan_raw.cdf'; case 'pasta2' settings.fname = 'D:\crs\data\Ripple_data\711Gfan_raw.cdf'; case 'pasta3' settings.fname = 'D:\crs\data\Ripple_data\711Hfan_raw.cdf'; end rev_info= 'SVN $Revision: 982 $'; % Check for raw sonar netcdf file if(exist(settings.fname,'file')~=2), error('Cannot find sonar file %s\n',settings.fname); end % open existing cdf file of raw fan data ncr=netcdf(settings.fname); jt= ncr{'time'}(:)+ncr{'time2'}(:)./86400000; % set up how many images to process n=length(jt); c = zeros(n,1); cs = zeros(n,1); % first image tmp = size(ncr{'raw_image'}); ntimes=tmp(1); NPoints=tmp(2); nscans=tmp(3); % trim the redundant first and last ping imagedata = ncr{'raw_image'}(1,:,2:nscans-1); [npoints,nangles] = size(imagedata); % prange = ncr{'profile_range'}(1,2:nscans-1); % headpos = ncr{'head_pos'}(1,2:nscans-1); %recorded % headangle=ncr{'headangle'}(2:nscans-1); % calculated % trim range to real area of data nearfieldcutoff = 52; farfieldcutoff = NPoints; imagedata = imagedata(nearfieldcutoff:farfieldcutoff,:); switch which_experiment case 'mvco07' % two scans ib = 10; % correct offset between CW and CCW sweeps is = 8; s1s = 1+ib; s1e = 2321-ib; s2s = 2322+ib+is; s2e = 4642-ib+is; s1 = imagedata(:,s1s:s1e); s2 = fliplr(imagedata(:,s2s:s2e)); % average CW and CCW sweeps s = 0.5*(s1+s2); % calculate correlation among CW and CCW sweeps Cs = cov(s1,s2); cs(1)=Cs(1,2)./sqrt(Cs(1,1)*Cs(2,2)); otherwise ib = 2; s = imagedata(1+ib:nangles-ib); end s_old=s; for i=1:n, fprintf(1,'Processing %s\n',datestr(gregorian(jt(i)),'HHMM dd-mmm-yy')); tmp = size(ncr{'raw_image'}); ntimes=tmp(1); NPoints=tmp(2); nscans=tmp(3); % trim the redundant first and last ping imagedata = ncr{'raw_image'}(i,:,2:nscans-1); % prange = ncr{'profile_range'}(i,2:nscans-1); % headpos = ncr{'head_pos'}(i,2:nscans-1); %recorded % headangle=ncr{'headangle'}(2:nscans-1); % calculated [npoints,nangles] = size(imagedata); % necessary to % trim range to real area of data nearfieldcutoff = 52; farfieldcutoff = NPoints; imagedata = imagedata(nearfieldcutoff:farfieldcutoff,:); switch which_experiment case 'mvco07' % two scans ib = 10; is = 8; s1s = 1+ib; s1e = 2321-ib; s2s = 2322+ib+is; s2e = 4642-ib+is; s1 = imagedata(:,s1s:s1e); s2 = fliplr(imagedata(:,s2s:s2e)); s = 0.5*(s1+s2); Cs = cov(s1,s2); cs(i,1)=Cs(1,2)./sqrt(Cs(1,1)*Cs(2,2)); otherwise ib = 2; s = imagedata(1+ib:nangles-ib); end C = cov(s,s_old); c(i,1)=real(C(1,2)./sqrt(C(1,1)*C(2,2))); s_old = s; end