% function plot_veggie(info, dirs) %% Run settings curDir = pwd; curDir = 'd:\xbveg_validate_Lovas\runs\';% for debugging TeamCity dirs.data = 'D:\Dropbox\Research\XBeach_Veg\Validation\';% for debugging TeamCity % Experimental data for model input Hm0 = [13.739520,22.539353,12.608168,12.608168,18.489053,19.692676]; Tps = [2.5 2.5 3.5 3.5 3.5 3.5]; hs = [0.77 0.77 0.77 0.77 0.69 0.73]; types = {'sb0','sbv','nh0','nhv'}; % Load sloping beach profile based on Lovas & Torum (2000, ICCE) x = fliplr(-1*[-0.45-1 -0.45 0 1 (0.77-0.1)*30+1 27.79]); z = fliplr([0.45/1.5 0.45/1.5 0 -1*0.1 -0.77 -0.77]+0.77); % Vegetation settings Lh = 7.27; % length over which vegetation is present xveg = [-13 -13+Lh]; for i = 1:length(Tps) legs{i} = ['H_{m0} = ' num2str(round(Hm0(i))) ' cm, T_p = ' num2str(Tps(i)) ' s, h = ' num2str(hs(i)) ' m']; end %% Load data % keyboard % Load measurements load([dirs.data 'lovasdata.mat']) % Load model reults for ii = 1:length(Tps) caseID = num2str(ii,'%.2d'); for jj = 1:length(types) ncFil = fullfile(curDir,['lovas_' caseID '_' types{jj}],'xboutput.nc'); r(ii,jj).x = nc_varget(ncFil,'globalx'); r(ii,jj).t = nc_varget(ncFil,'globaltime'); r(ii,jj).zb = nc_varget(ncFil,'zb'); % water level r(ii,jj).zs = squeeze(nc_varget(ncFil,'zs')); r(ii,jj).zsm = squeeze(nc_varget(ncFil,'zs_mean')); r(ii,jj).zsv = squeeze(nc_varget(ncFil,'zs_var')); r(ii,jj).zs(isnan(r(ii,jj).zs)) = r(ii,jj).zb(isnan(r(ii,jj).zs)); % compute wave height if strcmp(types{jj}(1:2),'sb') r(ii,jj).Hm0_hf = squeeze(nc_varget(ncFil,'H_mean'))*sqrt(2); r(ii,jj).Hm0_lf = 4*sqrt(r(ii,jj).zsv); r(ii,jj).Hm0 = sqrt(r(ii,jj).Hm0_hf.^2+r(ii,jj).Hm0_lf.^2); else for kk = 1:size(r(ii,jj).zs,2)% for every location [f,Snn,A,ff,Af] = comp_spec(detrend(r(ii,jj).zs(:,kk)),1/(r(ii,jj).t(2)-r(ii,jj).t(1))); df = f(2)-f(1); % calculate variance below (IG) and above (short waves) fsplit fsplit = 0.5/Tps(ii); m0hf(kk) = sum(Snn(f >= fsplit)*df);% short wave energy density variance m0lf(kk) = sum(Snn(f < fsplit)*df);% long wave energy density variance clearvars f Snn A ff Af end r(ii,jj).Hm0_hf = 4*sqrt(m0hf); r(ii,jj).Hm0_lf = 4*sqrt(m0lf); r(ii,jj).Hm0 = sqrt(r(ii,jj).Hm0_hf.^2+r(ii,jj).Hm0_lf.^2); end end end % keyboard % Load measured data load lovasdata %% Plot SS-, IG- wave height + MWL % FS = 8; MS = 5.5; MFC = [.75 .75 .75];%'w'; % MFC2 = 'k'; LW = 1.2; % xx = [0.05 0.285 0.52 0.755]; % yy = [0.53 0.075]; % dx = .22; % dy = .43; % Generate figure for every experiment for ii = 1:length(runIDs) disp(['plotting ' runIDs ]) f1 = figure; % Top panels: short wave height ax(1) = subplot(3,2,1);hold on;%axes('position',[0.075 0.76 0.425 0.21],'units','normalized');hold on;% nonh title('nonhydrostatic') plot(r(ii,4).x,r(ii,4).Hm0*100,'Color','k','LineWidth',LW); plot(r(ii,5).x,r(ii,5).Hm0*100,'Color',[255 150 26]/255,'LineWidth',LW); plot(D2(ii).x,D2(ii).Hm0(:,1)*100,'ko','MarkerFaceColor','k','MarkerSize',MS); plot(D2(ii).x,D2(ii).Hm0_veg(:,1)*100,'ks','MarkerFaceColor',MFC,'MarkerSize',MS); xveg = (2+5.2+4.3):0.1:(2+5.2+4.3+3.66); plot([xveg(1) xveg(end)],[0.25 0.25],'k:','LineWidth',2); axis([0 19.4 0 10]) set(gca,'XTickLabel',{},'Xtick',0:2:18) ylabel('H_{SIG,TOT} [cm]') box on ax(2) = subplot(3,2,2);hold on; %axes('position',[0.525 0.76 0.425 0.21],'units','normalized');hold on;% surfbeat title('surfbeat') plot(r(ii,1).x,r(ii,1).Hm0*100,'Color','k','LineWidth',LW); plot(r(ii,2).x,r(ii,2).Hm0*100,'--','Color',[255 150 26]/255,'LineWidth',LW); plot(r(ii,3).x,r(ii,3).Hm0*100,'Color',[255 150 26]/255,'LineWidth',LW); plot(D2(ii).x,D2(ii).Hm0(:,1)*100,'ko','MarkerFaceColor','k','MarkerSize',MS); plot(D2(ii).x,D2(ii).Hm0_veg(:,1)*100,'ks','MarkerFaceColor',MFC,'MarkerSize',MS); plot([xveg(1) xveg(end)],[0.25 0.25],'k:','LineWidth',2); axis([0 19.4 0 10]) set(gca,'XTickLabel',{},'Xtick',0:2:18,'YTickLabel',{}) box on % Middle panels: IG wave height ax(3) = subplot(3,2,3);hold on; %axes('position',[0.075 0.53 0.425 0.21],'units','normalized');hold on;% nonh plot(r(ii,4).x,r(ii,4).Hm0_lf*100,'Color','k','LineWidth',LW); plot(r(ii,5).x,r(ii,5).Hm0_lf*100,'Color',[255 150 26]/255,'LineWidth',LW); plot([xveg(1) xveg(end)],[0.1 0.1],'k:','LineWidth',2); axis([0 19.4 0 5]) set(gca,'XTickLabel',{},'Xtick',0:2:18) ylabel('H_{SIG,IG} [cm]') box on ax(4) = subplot(3,2,4);hold on; %axes('position',[0.525 0.53 0.425 0.21],'units','normalized');hold on;% surfbeat plot(r(ii,1).x,r(ii,1).Hm0_lf*100,'Color','k','LineWidth',LW); plot(r(ii,2).x,r(ii,2).Hm0_lf*100,'--','Color',[255 150 26]/255,'LineWidth',LW); plot(r(ii,3).x,r(ii,3).Hm0_lf*100,'Color',[255 150 26]/255,'LineWidth',LW); plot([xveg(1) xveg(end)],[0.1 0.1],'k:','LineWidth',2); axis([0 19.4 0 5]) set(gca,'XTickLabel',{},'Xtick',0:2:18,'YTickLabel',{}) box on % Lower panels: mean water level ax(5) = subplot(3,2,5);hold on;%axes('position',[0.075 0.3 0.425 0.21],'units','normalized');hold on;% nonh plot(r(ii,4).x,r(ii,4).zsm*1000,'Color','k','LineWidth',LW); plot(r(ii,5).x,r(ii,5).zsm*1000,'Color',[255 150 26]/255,'LineWidth',LW); plot(D2(ii).x,D2(ii).MWL(:,1),'ko','MarkerFaceColor','k','MarkerSize',MS); plot(D2(ii).x,D2(ii).MWL_veg(:,1),'ks','MarkerFaceColor',MFC,'MarkerSize',MS); plot([xveg(1) xveg(end)],[-2.25 -2.25],'k:','LineWidth',2); axis([0 19.4 -2.5 5]) set(gca,'Xtick',0:2:18) xlabel('cross-shore distance [m]') ylabel('MWL [mm]') box on ax(6) = subplot(3,2,6);hold on; %axes('position',[0.525 0.3 0.425 0.21],'units','normalized');hold on;% surfbeat plot(r(ii,1).x,r(ii,1).zsm*1000,'Color','k','LineWidth',LW); plot(r(ii,2).x,r(ii,2).zsm*1000,'--','Color',[255 150 26]/255,'LineWidth',LW); plot(r(ii,3).x,r(ii,3).zsm*1000,'Color',[255 150 26]/255,'LineWidth',LW); plot(D2(ii).x,D2(ii).MWL(:,1),'ko','MarkerFaceColor','k','MarkerSize',MS); plot(D2(ii).x,D2(ii).MWL_veg(:,1),'ks','MarkerFaceColor',MFC,'MarkerSize',MS); plot([xveg(1) xveg(end)],[-2.25 -2.25],'k:','LineWidth',2); axis([0 19.4 -2.5 5]) set(gca,'Xtick',0:2:18,'YTickLabel',{}) xlabel('cross-shore distance [m]') box on % % Bottom panel: experimental setup % ax(7) = subplot(4,2,[7 8]);hold on; %axes('position',[0.075 0.05 0.875 0.2],'units','normalized');hold on; % prof = load(fullfile(dirs.data, 'sloping_beach.txt')); % LW = 1.2; % % FS = 8.5; % MS = 4; % xveg = (2+5.2+4.3):0.1:(2+5.2+4.3+3.66); % zveg = 0.2; % plot(prof(:,1),prof(:,2),'k','LineWidth',LW);% profile % plot([0 19.4],[0 0],'k--')% MSL % plot(D2(1).x,0.25,'ko','MarkerFaceColor','k','MarkerSize',MS)% Wave and water level gauges % plot(0:0.01*1.5:1.5,0.1*sin(0:0.01*2*pi:2*pi),'k')% Sinus wave % for i = 1:length(xveg) % plot([xveg(i) xveg(i)],[interp1(prof(:,1),prof(:,2),xveg(i)) zveg+interp1(prof(:,1),prof(:,2),xveg(i))],'k','LineWidth',LW-0.4); % end % axis([0 19 -0.69 0.4]) % xlabel('x [m]') % ylabel('z [m]');set(gca,'yaxislocation','left'); % xticks = unique(sort([0:2:20 D2(1).x])); % for i = 1:length(xticks) % if xticks(i)/2 == round(xticks(i)/2) % xticklab{i} = num2str(xticks(i)); % else % xticklab{i} = ''; % end % end % patch([prof(:,1);20;0],min([prof(:,2);-1;-1],-0.4),[0.95 0.95 0.95]); % set(gca,'XTick',xticks,'YTick',-1:0.2:1,'XTickLabel',xticklab,'Layer','top') % for i = 1:11 % plot([i*2-2 i*2-2],[-0.8 -0.78],'k','LineWidth',LW+0.5) % end % box on % Add labels to panels labs = {'a','b','c','d','e','f'}; for i = 1:length(labs) axes(ax(i)); yLL = get(gca,'Ylim'); if i == 7 text(.5,.9*diff(yLL)+yLL(1),[labs{i} ')']); else text(1,.9*diff(yLL)+yLL(1),[labs{i} ')']); end end % set(fig,'Renderer','Zbuffer') xb_write_plot(gcf, dirs.output, ['figure3_ozeren_' runIDs{ii} '_total']); close all %% Simple plotting for the skillbed % Waves figure % Top panels: short wave height ax(1) = subplot(1,2,1);hold on; title('nonhydrostatic') plot(r(ii,4).x,r(ii,4).Hm0*100,'Color','k','LineWidth',LW); plot(r(ii,5).x,r(ii,5).Hm0*100,'Color',[255 150 26]/255,'LineWidth',LW); plot(D2(ii).x,D2(ii).Hm0(:,1)*100,'ko','MarkerFaceColor','k','MarkerSize',MS); plot(D2(ii).x,D2(ii).Hm0_veg(:,1)*100,'ks','MarkerFaceColor',MFC,'MarkerSize',MS); xveg = (2+5.2+4.3):0.1:(2+5.2+4.3+3.66); plot([xveg(1) xveg(end)],[0.25 0.25],'k:','LineWidth',2); xlim([2.5 16]); ylim([0 round(nanmax(r(ii,4).Hm0*100)) ]) ylabel('H_{SIG,TOT} [cm]') box on xlabel('cross-shore distance [m]') ax(2) = subplot(1,2,2);hold on; title('surfbeat') plot(r(ii,1).x,r(ii,1).Hm0*100,'Color','k','LineWidth',LW); plot(r(ii,2).x,r(ii,2).Hm0*100,'--','Color',[255 150 26]/255,'LineWidth',LW); plot(r(ii,3).x,r(ii,3).Hm0*100,'Color',[255 150 26]/255,'LineWidth',LW); plot(D2(ii).x,D2(ii).Hm0(:,1)*100,'ko','MarkerFaceColor','k','MarkerSize',MS); plot(D2(ii).x,D2(ii).Hm0_veg(:,1)*100,'ks','MarkerFaceColor',MFC,'MarkerSize',MS); plot([xveg(1) xveg(end)],[0.25 0.25],'k:','LineWidth',2); xlim([2.5 16]); ylim([0 round(nanmax(r(ii,4).Hm0*100)) ]) box on xlabel('cross-shore distance [m]') xb_write_plot(gcf, dirs.output, ['figure3_ozeren_' runIDs{ii} '_waves']); close all % water level figure ax(5) = subplot(1,2,1);hold on;%axes('position',[0.075 0.3 0.425 0.21],'units','normalized');hold on;% nonh plot(r(ii,4).x,r(ii,4).zsm*1000,'Color','k','LineWidth',LW); plot(r(ii,5).x,r(ii,5).zsm*1000,'Color',[255 150 26]/255,'LineWidth',LW); plot(D2(ii).x,D2(ii).MWL(:,1),'ko','MarkerFaceColor','k','MarkerSize',MS); plot(D2(ii).x,D2(ii).MWL_veg(:,1),'ks','MarkerFaceColor',MFC,'MarkerSize',MS); plot([xveg(1) xveg(end)],[-2.25 -2.25],'k:','LineWidth',2); xlim([2.5 16]); ylim([-1 5]) ylabel('MWL [mm]') xlabel('cross-shore distance [m]') box on title('nonhydrostatic') ax(6) = subplot(1,2,2);hold on; %axes('position',[0.525 0.3 0.425 0.21],'units','normalized');hold on;% surfbeat plot(r(ii,1).x,r(ii,1).zsm*1000,'Color','k','LineWidth',LW); plot(r(ii,2).x,r(ii,2).zsm*1000,'--','Color',[255 150 26]/255,'LineWidth',LW); plot(r(ii,3).x,r(ii,3).zsm*1000,'Color',[255 150 26]/255,'LineWidth',LW); plot(D2(ii).x,D2(ii).MWL(:,1),'ko','MarkerFaceColor','k','MarkerSize',MS); plot(D2(ii).x,D2(ii).MWL_veg(:,1),'ks','MarkerFaceColor',MFC,'MarkerSize',MS); plot([xveg(1) xveg(end)],[-2.25 -2.25],'k:','LineWidth',2); xlim([2.5 16]); ylim([-1 5]) xlabel('cross-shore distance [m]'); title('surfbeat'); box on xb_write_plot(gcf, dirs.output, ['figure3_ozeren_' runIDs{ii} '_waterlevel']); close all end end