function PlotDustFluxPM2_5Comparison(Struct, Bin_ae, OStruct, WeightFactor)
% PlotDustFluxPM2.5Comparison(Struct, Bin_ae, OtherStruct, WeightFactor)
% Input Oceano Dust flux "Struct" (unit: kg/m^2/s) within aerodynamic
% bin size "Bin_ae", measurements from non-sandy soils within PM10 geometric
% diameter "OtherStruct" (unit: ug/m^2/s), the weight factor between
% PM_{10.g} and PM_{2.5,a} for fragmentation theory (Kok, 2011) onto
% OtherStruct, "WeightFactor". Plot figures of comparision of dust emission
% flux within the PM10 geometric diameter size range (PM_{2.5,a})

% find mass flux of Oceano within PM_{2.5,a} size range
PM25_portion_bin3 = (log10(2.5)-log10(Bin_ae(3)))/(log10(Bin_ae(4))-log10(Bin_ae(3)));

for i = 1:length(Struct.ustar)
    Fd_PM25(i,1) = (sum((Struct.Fd(i,1:2))) + Struct.Fd(i,3)*PM25_portion_bin3)*10^9; % convert kg/m^2/s to ug/m^2/s
    Fd_err_PM25(i,1) = sqrt(sum((Struct.Fd_err(i,1:2)).^2) + Struct.Fd_err(i,3).^2*PM25_portion_bin3)*10^9;  % convert kg/m^2/s to ug/m^2/s
end

% plot mass flux of other non-sany soils
gb04f16_plot = plot(OStruct.gb04f16.ustar, OStruct.gb04f16.Fd*WeightFactor,'>'); hold on; % Gillies and Berkofsky (2004)
gb04m20_plot = plot(OStruct.gb04m20.ustar, OStruct.gb04m20.Fd*WeightFactor,'>'); hold on;

zp06d63_plot = plot(OStruct.zp06d63.ustar, OStruct.zp06d63.Fd*WeightFactor,'<'); hold on; % Zobeck and Van Pelt (2006)
zp06d77_plot = plot(OStruct.zp06d77.ustar, OStruct.zp06d77.Fd*WeightFactor,'<'); hold on;

sow09m1_plot = plot(OStruct.sow09m1.ustar, OStruct.sow09m1.Fd*WeightFactor,'^'); hold on; % Sow et al. (2009)
sow09c4_plot = plot(OStruct.sow09c4.ustar, OStruct.sow09c4.Fd*WeightFactor,'^'); hold on;

sha11al_plot = plot(OStruct.sha11al.ustar, OStruct.sha11al.Fd*WeightFactor,'v'); hold on; % Shao et al. (2011)

set(gb04f16_plot,'markerface','none','markeredge',[0.8,0.5,0.4],'markersize',6);
set(gb04m20_plot,'markerface','none','markeredge',[0.8,0.5,0.4],'markersize',6);
set(zp06d63_plot,'markerface','none','markeredge',[1,0.2,0.2],'markersize',6);
set(zp06d77_plot,'markerface','none','markeredge',[1,0.2,0.2],'markersize',6);
set(sow09m1_plot,'markerface','none','markeredge',[0,0.4,0],'markersize',6);
set(sow09c4_plot,'markerface','none','markeredge',[0,0.4,0],'markersize',6);
set(sha11al_plot,'markerface','none','markeredge',[0.4,0.4,0.8],'markersize',6);

% plot mass flux of Oceano dust
ustar = Struct.ustar; 
Oceano = plot(ustar,Fd_PM25,'o'); hold on;
set(Oceano,'markerfacecolor','none','markeredgecolor','k','markersize',7,'linewidth',1);

for i = 1:length(ustar)
   tempxpoint = [ustar(i),ustar(i)]; 
   tempypoint = [Fd_PM25(i)-Fd_err_PM25(i),Fd_PM25(i)+Fd_err_PM25(i)];
   plot(tempxpoint,tempypoint,'k','linewidth',1); hold on;
end

%--- plot scale, axis, tick setting ---
set(gca,'xscale','log');
set(gca,'yscale','log');
axis([0.15,0.6,10^(-1),2*10^2]);
set(gca,'xtick',[0.15,0.2,0.3,0.4,0.5,0.6]);
set(gca,'xticklabel',{'0.15','0.2','0.3','0.4','0.5','0.6'});

xlabel('Shear velocity \itu_{*}, \rm\bfm/s','FontSize',14,'FontWeight','bold');
ylabel('Vertical PM_{2.5,a} dust flux \itF_{d}, \rm\bf\mug/m^{2}/s','FontSize',14,'FontWeight','bold');
legend([gb04f16_plot zp06d63_plot sow09m1_plot sha11al_plot Oceano],{'Gillies and Berkofsky (2004)','Zobeck and Van Pelt (2006)',...
    'Sow et al. (2009)','Shao et al. (2011)','Oceano Dunes'},'location','southwest','FontSize',8,'FontWeight','bold');

end

