Plot bb final

From Pnb
Jump to navigation Jump to search
function [eta, etaf] = plot_bbp_final(cruise)

[filename,path] = uigetfile(['home/data65/pb/HYDROSCAT/',cruise,'/final/'],'Choose HS-6 file to plot');

fid = fopen([path filename],'r');
C = textscan(fid,'%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f','delimiter',',','HeaderLines',120);
% C = textscan(fid,'%s%s%s%s%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f','delimiter',',');
fclose(fid);

%lambda = [ 442 470 510 589 671];
%newlambda = [420 442 470 510 589 700] as of 4/2010
lambda = [420 442 470 510 589 700];
% lambda = [420 700 442 510 470 589];
bbs = [C{69} C{70} C{71} C{72} C{73} C{74}]; 
%%bbs = [C{69} C{71} C{73} C{72} C{74} C{70}];%re-arrange to match uncorrected 3/7/2011
bbz = [C{75} C{76} C{77} C{78} C{79} C{80}]; 
%%bbz = [C{75} C{77} C{79} C{78} C{80} C{76}];%re-arrange to match uncorrected 3/7/2011
bbs(bbs==-9.9e+35) = NaN;
bbz(bbz==-9.9e+35) = NaN;


%after Mobley 3.31
bbw_525 = (16.06/2)*1.46e-4;
bbw = bbw_525*((525./lambda).^4.32);

bbps = bbs - repmat(bbw,size(bbs,1),1);
%plot(1:length(bbps),bbps);
depths = C{81};

% s = input('Choose which scattering correction to apply, method 1, 2, or 3; Enter 0 for none?');
%
% switch s
%     case 0
%         q = ac9.out.a_corr;
%     case 1
%         q = ac9.out.a_scorr1;
%     case 2
%         q = ac9.out.a_scorr2;
%     case 3
%         q = ac9.out.a_scorr3;
%     otherwise
% end

%
% qc = ac9.out.c_corr;
% qc(qc==-9.9e+35) = NaN;
% b = qc-q;

plot_spectrum(bbps,'b_b_p',depths,filename,bbw);
plot_spectrum(bbz,'b_b\_Zhang',depths,filename,bbw);
%plot_spectrum(b,'b',filename);

function S = plot_spectrum(q,type,d,filename,bbw)
%wl = [ 442 470 510 589 671];
wl = [420 442 470 510 589 700];
% wl = [420 700 442 510 470 589];
% d = 1:220';
% d = d';

%Plot all spectra at once
%%q = q(:,[1 6 2 4 3 5]);
qd = denan(q);

c = jet(size(qd,1));


%%%Calculate eta, using 442, 510 and 589 nm wavelengths
eta = [];
opts = optimset('fminsearch');
opts  = optimset('MaxFunEvals', 5000,'MaxIter',5000, 'TolFun',1e-6,'TolX',1e-4);

lambda_for_eta = wl([1 3 4]);
%%%%%lambda_for_eta = wl([1 5 4]);
lambda_for_eta = lambda_for_eta';

for i = 1:size(q,1)
    bbp = q(i,[1 3 4])';
  %%%%  bbp = q(i,[1 5 4])';
    temp = ([[ 1 1 1]',log(lambda_for_eta)])\log(bbp); %this regression allows for an intercept -
    eta(i) = -temp(2);

    r = corrcoef(bbp,bbp(1)*((lambda_for_eta/lambda_for_eta(1)).^(temp(2))));
    eta_R2(i) = r(1,2)^2;

    if ~any(isnan(q(i,:)))
        [X,cost] = fminsearch(@cost_eta,[1 0.005],opts,q(i,:),wl);
    else
        X = [NaN NaN];
    end
    etaf(i) = X(1);
end

figure
plot(eta,-d,'rx-')
hold on
plot(eta_R2, -d, 'ko-');
legend({'\eta fit linearly, using 442, 510 , 589 nm channels','R^2 of \eta fit'});
ylabel('Depth, m');
hold on
%plot([0.009 0.009],[0 -220], 'k-.');
%plot([0.025 0.025],[0 -220], 'k-.');
title(filename)


%%%%%%%%%%%%End of fitting for eta

figure
hold on
set(gca, 'ColorOrder',c)
plot(wl,q,'o-')
plot(wl,mean(qd),'ko-', 'LineWidth',3)
plot(wl, bbw, 'bo-', 'LineWidth', 3)
zeroline
xlabel('Wavelength, nm')
ylabel(type)
title('Mean spectrum in black, Morel saltwater bb in blue')
%title(filename)

%Plot the profiles
c = jet(6);

figure
subplot(131)
plot(q(:,1),-d,'Color',c(1,:))
hold on
plot(q(:,2),-d,'Color',c(2,:))
zeroline_horizontal
axis([-Inf Inf -220 0])
legend({[type,'442'],[type,'470']},'Location','SouthOutside');
legend boxoff

subplot(132)
plot(q(:,3),-d,'Color',c(3,:))
hold on
plot(q(:,4),-d,'Color',c(4,:))
zeroline_horizontal
axis([-Inf Inf -220 0])
legend({[type,'510'],[type,'589']},'Location','SouthOutside');
legend boxoff
title(filename)

subplot(133)
%plot(q(:,5),-d,'Color',c(5,:))
plot(q(:,5),-d,'k');
hold on
% plot(q(:,6),-d,'Color',c(6,:))
plot(q(:,6),-d,'b');
zeroline_horizontal
axis([-Inf Inf -220 0])
legend({[type,'671']},'Location','SouthOutside');
legend boxoff