clc
clear all
%%

Arquivos = dir('*.dat');

Tempo = []; Flow1_C=[];Flow2_C=[];FlowC_C=[];Status_C=[];ContStatus_C=[];...
    DetectStatus_C=[];LedStatus_C=[];ValveStatus_C=[];BC1_C=[];BC2_C=[];BC3_C=[];BC4_C=[];BC5_C=[];...
    BC6_C=[];BC7_C=[];Vaisala_CO2_C=[];Vaisala_CO2_Raw_C=[];Vaisala_Temp_C=[];...
    SSD_TempInlet_C=[];SSD_RHInlet_C=[];SSD_DewPntInlet_C=[];SSD_TempOutlet_C=[];...
    SSD_RHOutlet_C=[];SSD_DewPntOutlet_C=[];
%% Coletando Dados dos arquivos
for i=1:length(Arquivos)
   try [DateyyyyMMdd,Timehhmmss,Timebase,RefCh1,Sen1Ch1,Sen2Ch1,RefCh2,Sen1Ch2,Sen2Ch2,RefCh3,Sen1Ch3,Sen2Ch3,RefCh4,Sen1Ch4,Sen2Ch4,RefCh5,Sen1Ch5,Sen2Ch5,RefCh6,Sen1Ch6,Sen2Ch6,RefCh7,Sen1Ch7,Sen2Ch7,Flow1,Flow2,FlowC,PressurePa,TemperatureC,BB,ContTemp,SupplyTemp,Status,ContStatus,DetectStatus,LedStatus,ValveStatus,LedTemp,BC11,BC12,BC1,BC21,BC22,BC2,BC31,BC32,BC3,BC41,BC42,BC4,BC51,BC52,BC5,BC61,BC62,BC6,BC71,BC72,BC7,K1,K2,K3,K4,K5,K6,K7,TapeAdvCount,VarName68,VarName69,VarName70,Vaisala_CO2,Vaisala_CO2_Raw,Vaisala_Temp,SSD_TempInlet,SSD_RHInlet,SSD_DewPntInlet,SSD_TempOutlet,SSD_RHOutlet,SSD_DewPntOutlet]...
           = importfile_AE33_Camp18(Arquivos(i).name);
      
   end
    display(i)
    tmp_time= datetime(DateyyyyMMdd,'InputFormat', 'yyyy/MM/dd') + timeofday(Timehhmmss);
    
    Tempo= [Tempo; tmp_time]; Flow1_C=[Flow1_C; Flow1]; Flow2_C = [Flow2_C; Flow2];
    FlowC_C=[FlowC_C; FlowC]; Status_C=[Status_C; Status]; ContStatus_C=[ContStatus_C; ContStatus];
    DetectStatus_C=[DetectStatus_C; DetectStatus]; LedStatus_C=[LedStatus;LedStatus_C];
    ValveStatus_C=[ValveStatus_C;ValveStatus]; 	BC1_C=[BC1_C; BC1];
    BC2_C=[BC2_C; BC2]; BC3_C=[BC3_C; BC3];BC4_C=[BC4_C; BC4]; BC5_C=[BC5_C; BC5];
    BC6_C=[BC6_C; BC6]; BC7_C=[BC7_C; BC7];
    Vaisala_CO2_C=[Vaisala_CO2_C;Vaisala_CO2]; Vaisala_CO2_Raw_C=[Vaisala_CO2_Raw_C; Vaisala_CO2_Raw];
    Vaisala_Temp_C=[Vaisala_Temp_C; Vaisala_Temp]; SSD_TempInlet_C=[SSD_TempInlet_C;SSD_TempInlet];
    SSD_RHInlet_C=[SSD_RHInlet_C; SSD_RHInlet]; SSD_DewPntInlet_C=[SSD_DewPntInlet_C; SSD_DewPntInlet];
    SSD_TempOutlet_C=[SSD_TempOutlet_C;SSD_TempOutlet]; SSD_RHOutlet_C=[SSD_RHOutlet_C;SSD_RHOutlet];
    SSD_DewPntOutlet_C=[SSD_DewPntOutlet_C;SSD_DewPntOutlet];
end

% save AE33_BaseDadosLVL_0
%%

figure
plot(Tempo, Status_C, '.')
xlabel('Data')
ylabel('Overall Status')
title({'AE33 - Rio Branco', 'Overall Status Code'})

%%
figure
plot(Tempo, FlowC_C)
%%
figure
plot(Tempo, BC6_C)
%% Verificando Status != 0
i_excl = find(Status_C~=0);
size(i_excl)/size(DetectStatus_C)

BC1_C(i_excl) = NaN; BC2_C(i_excl) = NaN; BC3_C(i_excl) = NaN; 
BC4_C(i_excl) = NaN; BC5_C(i_excl) = NaN; BC6_C(i_excl) = NaN;
BC7_C(i_excl) = NaN; 
clear i_excl
%% Verificando Flow <1000mL, >8000mL
i_excl = find(or(FlowC_C<1000,FlowC_C>8000));
size(i_excl)/size(DetectStatus_C)

% figure, plot(Tempo, FlowC_C)
BC1_C(i_excl) = NaN; BC2_C(i_excl) = NaN; BC3_C(i_excl) = NaN; 
BC4_C(i_excl) = NaN; BC5_C(i_excl) = NaN; BC6_C(i_excl) = NaN;
BC7_C(i_excl) = NaN; 
clear i_excl

%% Verificando BC <-1, >100
i_excl = find(or(BC1_C<-1000,BC1_C>100000));
BC1_C(i_excl) = NaN; BC2_C(i_excl) = NaN; BC3_C(i_excl) = NaN; 
BC4_C(i_excl) = NaN; BC5_C(i_excl) = NaN; BC6_C(i_excl) = NaN;
BC7_C(i_excl) = NaN; 
clear i_excl

i_excl = find(or(BC7_C<-1000,BC7_C>100000));
BC1_C(i_excl) = NaN; BC2_C(i_excl) = NaN; BC3_C(i_excl) = NaN; 
BC4_C(i_excl) = NaN; BC5_C(i_excl) = NaN; BC6_C(i_excl) = NaN;
BC7_C(i_excl) = NaN; 
clear i_excl
%% 
Abs370_C=BC1_C.*18.47/1000;
Abs470_C=BC2_C.*14.54/1000;
Abs520_C=BC3_C.*13.14/1000;
Abs590_C=BC4_C.*11.58/1000;
Abs660_C=BC5_C.*10.35/1000;
Abs880_C=BC6_C.*7.77/1000;
Abs950_C=BC7_C.*7.19/1000;

% plot(Tempo,  Vaisala_Temp_C, '.')


%%
clear BC1 BC2 BC3 BC4 BC5 BC6 BC7 ContStatus DateyyyyMMdd DetectStatus Flow1 Flow2
clear FlowC i LedStatus SSD_DewPntInlet SSD_DewPntOutlet SSD_RHInlet SSD_RHOutlet
clear SSD_TempInlet SSD_TempOutlet Status tmp_time Timehhmmss Vaisala_CO2 Vaisala_CO2_Raw Vaisala_Temp
clear ValveStatus Arquivos

%save AE33_prontoParaFcaoJoel

%%
Instrument='Aethalometer_AE33';
Model='AE33';
serial_num='AE33-S02-00193';
Site='Campinas';
Val_level='1';
Proc_vers='1.0';
labels{1}='BC370'; labels{2}='BC470'; labels{3}='BC520'; labels{4}='BC590';
labels{5}='BC660'; labels{6}='BC880'; labels{7}='BC950nm';
labels{8}='Abs370';labels{9}='Abs470';labels{10}='Abs520';labels{11}='Abs590';
labels{12}='Abs660';labels{13}='Abs880'; labels{14}='Abs950';
units{1}='ng/m³'; units{2}='ng/m³';units{3}='ng/m³'; units{4}='ng/m³';
units{5}='ng/m³'; units{6}='ng/m³'; units{7}='ng/m³';
units{8}='Mm-1'; units{9}='Mm-1'; units{10}='Mm-1'; units{11}='Mm-1';
units{12}='Mm-1'; units{13}='Mm-1'; units{14}='Mm-1';
orig_size=length(Abs950_C);
time_X=datenum(Tempo);
X=[BC1_C BC2_C BC3_C BC4_C BC5_C BC6_C BC7_C...
    Abs370_C Abs470_C Abs520_C Abs590_C Abs660_C Abs880_C Abs950_C];
export_LFA_Leveis_60min(labels,units,Instrument,Model,serial_num,Site,Val_level,Proc_vers,orig_size,time_X,X);


%% Gráfico

figure
plot(Tempo, BC6_C./1000, '.')
title({'Rio Branco - Level 1 - AE33', 'Black Carbon 880nm'})
ylabel('BC880nm (ug/m³)')
% ylim([-1 0])
% saveas(gcf ,'BC880nmLvl1_zoom.jpeg')

%%


% %% Adaptando a Tabulação para 20/Ago/18 até 06/11/18 23:59:00
% 
% t1=datetime(2018,08,01, 00,00,00); t2 = datetime(2018,11,28, 23,59,59);
% 
% Tempo_C = [t1:minutes(1):t2]';
% % size(Tempo_C)/21600; %MEDIA QUINZENAL
% 
% %%
% [~, i_Camp, i_Aeth] = intersect(Tempo_C, Tempo);
% [~, i_Diff] = setdiff(Tempo_C, Tempo);
% 
% BC1_Campanha(i_Camp,:) = BC1_C(i_Aeth); BC1_Campanha(i_Diff)= NaN; %370
% BC2_Campanha(i_Camp,:) = BC2_C(i_Aeth); BC2_Campanha(i_Diff)= NaN; %470
% BC3_Campanha(i_Camp,:) = BC3_C(i_Aeth); BC3_Campanha(i_Diff)= NaN; %520
% BC4_Campanha(i_Camp,:) = BC4_C(i_Aeth); BC4_Campanha(i_Diff)= NaN; %590
% BC5_Campanha(i_Camp,:) = BC5_C(i_Aeth); BC5_Campanha(i_Diff)= NaN; %660
% BC6_Campanha(i_Camp,:) = BC6_C(i_Aeth); BC6_Campanha(i_Diff)= NaN; %880
% BC7_Campanha(i_Camp,:) = BC7_C(i_Aeth); BC7_Campanha(i_Diff)= NaN; %950
% 
% %% BC = 0 -> NaN
% i_excl = find(BC1_Campanha==0);
% BC1_Campanha(i_excl) = NaN; BC2_Campanha(i_excl) = NaN; BC3_Campanha(i_excl) = NaN; 
% BC4_Campanha(i_excl) = NaN; BC5_Campanha(i_excl) = NaN; BC6_Campanha(i_excl) = NaN;
% BC7_Campanha(i_excl) = NaN; 
% 
% %% Criar Tabela de dados
% display('Criando arquivos Level1')
% AE33_Lvl1 = table(Tempo_C, BC1_Campanha, BC2_Campanha, BC3_Campanha,...
%     BC4_Campanha, BC5_Campanha, BC6_Campanha, BC7_Campanha);
% AE33_Lvl1.Properties.VariableNames([1:8]) = {'Data', 'BC_370nm', 'BC_470nm',...
%     'BC_520nm', 'BC_590nm','BC_660nm', 'BC_880nm', 'BC_950nm'};
% 
% %% Escrevendo a tabela
% % writetable(AE33_Lvl1, 'AE33_Lvl1_RioBranco')
% % writetable(AE33_Lvl1, 'AE33_Lvl1_RioBranco.xlsx')
% display('fim')
% %% Arquivo com dados horários
% display('Dados Horarios')
% Tempo_Horario = reshape(Tempo_C, [60,max(size(Tempo_C))/60])';
% Tempo_Horario = Tempo_Horario(:,30);
% media_horaria_BC1 = nanmean(reshape(BC1_Campanha, [60, max(size(BC1_Campanha))/60]))';
% media_horaria_BC2 = nanmean(reshape(BC2_Campanha, [60, max(size(BC2_Campanha))/60]))';
% media_horaria_BC3 = nanmean(reshape(BC3_Campanha, [60, max(size(BC3_Campanha))/60]))';
% media_horaria_BC4 = nanmean(reshape(BC4_Campanha, [60, max(size(BC4_Campanha))/60]))';
% media_horaria_BC5 = nanmean(reshape(BC5_Campanha, [60, max(size(BC5_Campanha))/60]))';
% media_horaria_BC6 = nanmean(reshape(BC6_Campanha, [60, max(size(BC6_Campanha))/60]))';
% media_horaria_BC7 = nanmean(reshape(BC7_Campanha, [60, max(size(BC7_Campanha))/60]))';
% %
% desvio_horario_BC1 = nanstd(reshape(BC1_Campanha, [60, max(size(BC1_Campanha))/60]))';
% desvio_horario_BC2 = nanstd(reshape(BC2_Campanha, [60, max(size(BC1_Campanha))/60]))';
% desvio_horario_BC3 = nanstd(reshape(BC3_Campanha, [60, max(size(BC1_Campanha))/60]))';
% desvio_horario_BC4 = nanstd(reshape(BC4_Campanha, [60, max(size(BC1_Campanha))/60]))';
% desvio_horario_BC5 = nanstd(reshape(BC5_Campanha, [60, max(size(BC1_Campanha))/60]))';
% desvio_horario_BC6 = nanstd(reshape(BC6_Campanha, [60, max(size(BC1_Campanha))/60]))';
% desvio_horario_BC7 = nanstd(reshape(BC7_Campanha, [60, max(size(BC1_Campanha))/60]))';
% 
% faltantes_horario_BC1 = sum(isnan((reshape(BC1_Campanha, [60, max(size(BC1_Campanha))/60]))));
% faltantes_horario_BC2 = sum(isnan((reshape(BC2_Campanha, [60, max(size(BC1_Campanha))/60]))));
% faltantes_horario_BC3 = sum(isnan((reshape(BC3_Campanha, [60, max(size(BC1_Campanha))/60]))));
% faltantes_horario_BC4 = sum(isnan((reshape(BC4_Campanha, [60, max(size(BC1_Campanha))/60]))));
% faltantes_horario_BC5 = sum(isnan((reshape(BC5_Campanha, [60, max(size(BC1_Campanha))/60]))));
% faltantes_horario_BC6 = sum(isnan((reshape(BC6_Campanha, [60, max(size(BC1_Campanha))/60]))));
% faltantes_horario_BC7 = sum(isnan((reshape(BC7_Campanha, [60, max(size(BC1_Campanha))/60]))));
% 
% display('Escrevendo dados horarios! Lvl1')
% Dados_Horario_AE33_Lvl1 = table(Tempo_Horario, media_horaria_BC1, media_horaria_BC2,...
%     media_horaria_BC3, media_horaria_BC4, media_horaria_BC5, media_horaria_BC6,...
%     media_horaria_BC7, desvio_horario_BC1, desvio_horario_BC2, desvio_horario_BC3,...
%     desvio_horario_BC4, desvio_horario_BC5, desvio_horario_BC6, desvio_horario_BC7,...
%     faltantes_horario_BC1', faltantes_horario_BC2', faltantes_horario_BC3', faltantes_horario_BC4',...
%     faltantes_horario_BC5', faltantes_horario_BC6', faltantes_horario_BC7');
% writetable(Dados_Horario, 'Dados_Horario_AE33_Lvl1.xlsx')
% save Dados_Horario_AE33_Lvl1
% 
% display('Feito.')
% % percentual de faltantes
% perc_faltant_hora_BC1 = faltantes_horario_BC1/60;
% %%
% figure
% % errorbar(datenum(Tempo_Horario), media_horaria_BC1, desvio_horario_BC1)
% hold on
% [hAx,hLine1,hLine2] = plotyy(Tempo_Horario, media_horaria_BC1, Tempo_Horario, perc_faltant_hora_BC1)
% 
% ax1=gca;
% % plot(Tempo_Horario, faltantes_horario_BC1)
% % ax1_pos=ax1.Position;
% % ax2 = axes('Position',ax1_pos,...
% %     'XAxisLocation','bottom',...
% %     'YAxisLocation','right',...
% %     'Color','none');
% % set(a2, 'YLim', [0 60])
% %% Arquivo com dados quinzenais
% % periodo = 60 (horario), periodo = 21600 (quinzenal)
% % periodo 
% periodo = 21600;
% Tempo_quinz= reshape(Tempo_C, [periodo,max(size(Tempo_C))/periodo])';
% Tempo_quinz=Tempo_quinz(:,max(size(Tempo_quinz))/2);
% media_quinz_BC1 = nanmean(reshape(BC1_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))';
% media_quinz_BC2 = nanmean(reshape(BC2_Campanha, [periodo, max(size(BC2_Campanha))/periodo]))';
% media_quinz_BC3 = nanmean(reshape(BC3_Campanha, [periodo, max(size(BC3_Campanha))/periodo]))';
% media_quinz_BC4 = nanmean(reshape(BC4_Campanha, [periodo, max(size(BC4_Campanha))/periodo]))';
% media_quinz_BC5 = nanmean(reshape(BC5_Campanha, [periodo, max(size(BC5_Campanha))/periodo]))';
% media_quinz_BC6 = nanmean(reshape(BC6_Campanha, [periodo, max(size(BC6_Campanha))/periodo]))';
% media_quinz_BC7 = nanmean(reshape(BC7_Campanha, [periodo, max(size(BC7_Campanha))/periodo]))';
% %
% desvio_quinz_BC1 = nanstd(reshape(BC1_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))';
% desvio_quinz_BC2 = nanstd(reshape(BC2_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))';
% desvio_quinz_BC3 = nanstd(reshape(BC3_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))';
% desvio_quinz_BC4 = nanstd(reshape(BC4_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))';
% desvio_quinz_BC5 = nanstd(reshape(BC5_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))';
% desvio_quinz_BC6 = nanstd(reshape(BC6_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))';
% desvio_quinz_BC7 = nanstd(reshape(BC7_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))';
% 
% faltantes_quinz_BC1 = sum(isnan((reshape(BC1_Campanha, [periodo, max(size(BC1_Campanha))/periodo]))));
% % percentual de faltantes
% perc_faltant_quinz_BC1 = faltantes_quinz_BC1/periodo;
% % %
% % bar(datenum(Tempo_quinz), media_quinz_BC1)
% % datetick('x','mm-yyyy','keeplimits')
% 
% %%
% 
% figure
% % errorbar(datenum(Tempo_Horario), media_horaria_BC1, desvio_horario_BC1)
% hold on
% [hAx,hLine1,hLine2] = plotyy(Tempo_quinz, media_quinz_BC1, Tempo_quinz, perc_faltant_quinz_BC1);
% hLine1.LineStyle = ':';
% hLine2.LineStyle = '.';