Files
matlab-python/Tilt/report_CrossGraphs.m

3102 lines
161 KiB
Matlab
Executable File
Raw Permalink Blame History

function [Site,Site_ENG,FIG,FIG_ENG] = report_CrossGraphs(rTL,rIPL,rTuL,rRaL,...
rPCL,rPL,rRL,rKL,rCrL,rMPBEL,GI_Disp_TL,GI_Date_TL,GI_Prof_TL,GI_Disp_IPL,...
GI_Date_IPL,GI_Prof_IPL,GI_Level_PL,GI_Prof_PL,GI_Date_PL,GI_Rain_RL,GI_Date_RL,...
GI_Angolo_KL,GI_Num_KL,GI_Date_KL,GI_Disp_CrL,GI_Num_CrL,GI_Date_CrL,GI_Q1_TuL,...
GI_Q2_TuL,GI_Q3_TuL,GI_Q4_TuL,GI_Q1_Num_TuL,GI_Q2_Num_TuL,GI_Q3_Num_TuL,...
GI_Q4_Num_TuL,GI_Z_TuL,GI_Seg_TuL,GI_NumSeg_TuL,GI_Date_TuL,GI_Z_PCL,GI_Date_PCL,...
GI_XYZ_Rad,GI_Num_Rad,GI_dS_RL_MPB,GI_dS_RL_TuL,GI_dS_TuL_RL,GI_Date_Rad,...
GI_Date_MPB,GI_dS_MPB,GI_MPB_Base,GI_dS_MPB_RL,siteID,toolrif,chainID,Font_Chapter,...
Font_caption,Font_tools,m,rAR,br,FIG,FIG_ENG,DT,DT_ENG,activeEN,FileName)
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'report_CrossGraphs function started';
fprintf(fileID,fmt,text);
import mlreportgen.dom.*
import mlreportgen.report.*
% Make sure DOM is compilable
makeDOMCompilable()
%% --- TILT LINK + PIEZO LINK ---
% Tilt Link V + Piezo Link : Spostamento massimo locale vs Falda
if rTL(m,1) > 0 && rPL(m,1) > 0 && exist( 'GI_Disp_TL','var')
if isempty(GI_Level_PL(:,m)) == 0 && GI_Date_PL(1,m) ~= 0 && isempty(GI_Disp_TL(:,m)) == 0 && GI_Date_TL(1,m) ~= 0
ind_PL = find(GI_Date_PL(:,m));
ind_TL = find(GI_Date_TL(:,m));
sezGrafTLvsPL = Paragraph('Correlazioni tra sensori - Tilt Link vs Piezo Link');
sezGrafTLvsPL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
GI_VarFaldaPL = GI_Level_PL(:,m)-GI_Level_PL(1,m);
figure(21)
yyaxis left
GI_TiltLink = plot(GI_Date_TL(1:ind_TL(end),m),GI_Disp_TL(1:ind_TL(end),m),'Color','red');
set(gca,'YColor','k')
LIM = ylim;
if max(GI_Disp_TL(:,m)) < 10
ylim([-inf 10]);
elseif 1-max(GI_Disp_TL(:,m))/LIM(1,2) < 0.2
if max(GI_Disp_TL(:,m)) < 1
newlim = LIM(1,2)+LIM(1,2)*0.3;
else
newlim = LIM(1,2)+LIM(1,2)*0.1;
end
ylim([-inf newlim]);
end
ylabel('Spostamento [mm]');
yyaxis right
GI_PiezoLink = plot(GI_Date_PL(1:ind_PL(end),m),GI_VarFaldaPL(1:ind_PL(end)),':','Color','blue');
var = max(abs(GI_VarFaldaPL(1:ind_PL(end))));
media = mean(GI_VarFaldaPL(1:ind_PL(end)));
LIM = ylim;
if var < 0.7
ylim([media-0.5 media+0.5]);
elseif 1-max(GI_VarFaldaPL(1:ind_PL(end)))/LIM(1,2) < 0.2
if max(GI_VarFaldaPL(1:ind_PL(end))) < 1
newlim = LIM(1,2)+LIM(1,2)*0.3;
else
newlim = LIM(1,2)+LIM(1,2)*0.1;
end
ylim([-inf newlim]);
end
ylabel('Variazione del livello idrico [m]');
set(gca,'YColor','k')
title('Correlazione spostamenti - variazioni di falda');
xlabel('Data [gg/mm/aaaa]');
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
yyaxis left
lgdTL = (['Spostamenti (' num2str(GI_Prof_TL(1,m)) ' m)']);
lgdPL = ('Variazione Falda');
str(1,1) = {['Spostamenti (' num2str(GI_Prof_TL(1,m)) ' m)']};
str(2,1) = {'Variazione Falda'};
lgd = legend(lgdTL,lgdPL, 'Location','north');
numcolumns = 2;
[legend_h,object_h,plot_h,text_strings] = columnlegend(numcolumns,str);
clear str
testoTLvsPL = Paragraph(['Il grafico seguente ha l''obiettivo di evidenziare '...
'eventuali correlazioni presenti tra variazioni del livello di falda e '...
'spostamenti registrati dai sensori di tipo inclinometrico. '...
'In particolare, con riferimento al periodo temporale considerato, '...
'vengono presi in considerazione il nodo che ha registrato '...
'il maggior spostamento differenziale locale in direzione di massima pendenza '...
'ed il piezometro che ha misurato una variazione di falda maggiore '...
'(nel caso la catena presenti un singolo piezometro, i dati riportati sono riferiti '...
'all''unico sensore disponibile).']);
testoTLvsPL2 = Paragraph(['In questo caso, gli spostamenti riportati nel grafico '...
'si riferiscono al sensore posizionato a ' num2str(GI_Prof_TL(1,m)) ' m di profondit' char(224) ', '...
'mentre l''andamento della falda ' char(232) ' riferito alle misure del piezometro ' ...
'collocato ad una profondit' char(224) ' di ' num2str((GI_Prof_PL(1,m))) ' metri.']);
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-TLvsPL.png'));
saveas(GI_PiezoLink,TempName);
ChartTLvsPL = Image(TempName);
ChartTLvsPL.Style = {ScaleToFit};
ChartTLvsPL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto tra i dati di massimo '...
'spostamento differenziale locale in direzione di massima pendenza e variazione '...
'del livello idrico nel periodo temporale di riferimento']);
FIG = FIG+1;
ChartTLvsPL_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
testoTLvsPL.HAlign = 'justify';
testoTLvsPL2.HAlign = 'justify';
add(DT,sezGrafTLvsPL);
add(DT,testoTLvsPL);
add(DT,testoTLvsPL2);
add(DT,ChartTLvsPL);
add(DT,ChartTLvsPL_cap);
add(DT,br);
close(figure(21));
%--ENG--
if activeEN == 1
sezGrafTLvsPL_ENG = Paragraph('Correlations between sensors - Tilt Link vs Piezo Link');
sezGrafTLvsPL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
GI_VarFaldaPL = GI_Level_PL(:,m)-GI_Level_PL(1,m);
figure(22)
yyaxis left
GI_TiltLink = plot(GI_Date_TL(1:ind_TL(end),m),GI_Disp_TL(1:ind_TL(end),m),'Color','red');
set(gca,'YColor','k')
LIM = ylim;
if max(GI_Disp_TL(:,m)) < 10
ylim([-inf 10]);
elseif 1-max(GI_Disp_TL(:,m))/LIM(1,2) < 0.2
if max(GI_Disp_TL(:,m)) < 1
newlim = LIM(1,2)+LIM(1,2)*0.3;
else
newlim = LIM(1,2)+LIM(1,2)*0.1;
end
ylim([-inf newlim]);
end
ylabel('Displacement [mm]');
yyaxis right
GI_PiezoLink = plot(GI_Date_PL(1:ind_PL(end),m),GI_VarFaldaPL(1:ind_PL(end)),':','Color','blue');
var = max(abs(GI_VarFaldaPL(1:ind_PL(end))));
media = mean(GI_VarFaldaPL(1:ind_PL(end)));
LIM = ylim;
if var < 0.7
ylim([media-0.5 media+0.5]);
elseif 1-max(GI_VarFaldaPL(1:ind_PL(end)))/LIM(1,2) < 0.2
if max(GI_VarFaldaPL(1:ind_PL(end))) < 1
newlim = LIM(1,2)+LIM(1,2)*0.3;
else
newlim = LIM(1,2)+LIM(1,2)*0.1;
end
ylim([-inf newlim]);
end
ylabel('Water level variation [m]');
set(gca,'YColor','k')
title('Correlation between displacements and water level variation');
xlabel('Date [dd/mm/yyyy]');
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
yyaxis left
lgdTL = (['Displacements (' num2str(GI_Prof_TL(1,m)) ' m)']);
lgdPL = ('Water level variation');
str(1,1) = {['Displacements (' num2str(GI_Prof_TL(1,m)) ' m)']};
str(2,1) = {'Water level variation'};
lgd = legend(lgdTL,lgdPL, 'Location','north');
numcolumns = 2;
[legend_h,object_h,plot_h,text_strings] = columnlegend(numcolumns,str);
clear str
testoTLvsPL = Paragraph(['The following graph aims to highlight the presence of '...
'correlations between displacement data and water level variations. '...
'In particular, for what concern the reference time period, the comparison '...
'will focus on the sensor that measured the maximum local differential '...
'displacement and the piezometer that recorded the largest water level variation. '...
'If the Array includes only one piezometer, the graph is going to include monitoring '...
'data measured by the only sensor available.']);
testoTLvsPL2 = Paragraph(['In this case, displacement data reported in the graph '...
'refer to the sensor located at ' num2str(GI_Prof_TL(1,m)) ' m of depth, while '...
'the represented water level variation derives from the piezometer installed ' ...
'at ' num2str((GI_Prof_PL(1,m))) ' m of depth.']);
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-TLvsPL_ENG.png'));
saveas(GI_PiezoLink,TempName);
ChartTLvsPL_ENG = Image(TempName);
ChartTLvsPL_ENG.Style = {ScaleToFit};
ChartTLvsPL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between the '...
'maximum local differential displacement and the water level variation '...
'measured during the reference time period']);
FIG_ENG = FIG_ENG+1;
ChartTLvsPL_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
testoTLvsPL.HAlign = 'justify';
testoTLvsPL2.HAlign = 'justify';
add(DT_ENG,sezGrafTLvsPL_ENG);
add(DT_ENG,testoTLvsPL);
add(DT_ENG,testoTLvsPL2);
add(DT_ENG,ChartTLvsPL_ENG);
add(DT_ENG,ChartTLvsPL_ENG_cap);
add(DT_ENG,br);
close(figure(22));
end
% pulisco variabili da riutilizzare per catena successiva
clear GI_VarFaldaPL;
end
end
%% --- IN PLACE LINK + PIEZO LINK ---
% In Place Link + Piezo Link : Spostamento massimo locale vs Falda
if rIPL(m,1) > 0 && rPL(m,1) > 0 && exist( 'GI_Disp_IPL','var')
if isempty(GI_Level_PL(:,m)) == 0 && GI_Date_PL(1,m) ~= 0 && ...
isempty(GI_Disp_IPL(:,m)) == 0 && GI_Date_IPL(1,m) ~= 0
ind_PL = find(GI_Date_PL(:,m));
ind_IPL = find(GI_Date_IPL(:,m));
sezGrafIPLvsPL = Paragraph('Correlazioni tra sensori - In Place Link vs Piezo Link');
sezGrafIPLvsPL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
GI_VarFaldaPL = GI_Level_PL(:,m)-GI_Level_PL(1,m);
figure(21)
yyaxis left
GI_InPlaceLink = plot(GI_Date_IPL(1:ind_IPL(end),m),GI_Disp_IPL(1:ind_IPL(end),m),'Color','red');
set(gca,'YColor','k')
LIM = ylim;
if max(GI_Disp_IPL(:,m)) < 10
ylim([-inf 10]);
elseif 1-max(GI_Disp_IPL(:,m))/LIM(1,2) < 0.2
if max(GI_Disp_IPL(:,m)) < 1
newlim = LIM(1,2)+LIM(1,2)*0.3;
else
newlim = LIM(1,2)+LIM(1,2)*0.1;
end
ylim([-inf newlim]);
end
ylabel('Spostamento [mm]');
yyaxis right
GI_PiezoLink = plot(GI_Date_PL(1:ind_PL(end),m),GI_VarFaldaPL(1:ind_PL(end)),':','Color','blue');
var = max(abs(GI_VarFaldaPL(1:ind_PL(end))));
media = mean(GI_VarFaldaPL(1:ind_PL(end)));
LIM = ylim;
if var < 0.7
ylim([media-0.5 media+0.5]);
elseif 1-max(GI_VarFaldaPL(1:ind_PL(end)))/LIM(1,2) < 0.2
if max(GI_VarFaldaPL(1:ind_PL(end))) < 1
newlim = LIM(1,2)+LIM(1,2)*0.3;
else
newlim = LIM(1,2)+LIM(1,2)*0.1;
end
ylim([-inf newlim]);
end
ylabel('Variazione del livello idrico [m]');
set(gca,'YColor','k')
title('Correlazione spostamenti - variazioni di falda');
xlabel('Data [gg/mm/aaaa]');
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
lgdIPL = (['Spostamenti (' num2str(GI_Prof_IPL(1,m)) ' m)']);
lgdPL = ('Variazione Falda');
str(1,1) = {['Spostamenti (' num2str(GI_Prof_IPL(1,m)) ' m)']};
str(2,1) = {'Variazione Falda'};
lgd = legend(lgdIPL,lgdPL, 'Location','north');
numcolumns = 2;
[legend_h,object_h,plot_h,text_strings] = columnlegend(numcolumns,str);
clear str
testoIPLvsPL = Paragraph(['Il grafico seguente ha l''obiettivo di evidenziare '...
'eventuali correlazioni presenti tra variazioni del livello di falda e '...
'spostamenti registrati dai sensori di tipo inclinometrico. '...
'In particolare, con riferimento al periodo temporale considerato, '...
'vengono presi in considerazione il nodo che ha registrato '...
'il maggior spostamento differenziale locale in direzione di massima pendenza '...
'ed il piezometro che ha misurato una variazione di falda maggiore '...
'(nel caso la catena presenti un singolo piezometro, i dati riportati sono riferiti '...
'all''unico sensore disponibile).']);
testoIPLvsPL2 = Paragraph(['In questo caso, gli spostamenti riportati nel grafico '...
'si riferiscono al sensore posizionato a ' num2str(GI_Prof_IPL(1,m)) ...
' m di profondit' char(224) ', mentre l''andamento della falda ' ...
char(232) ' riferito alle misure del piezometro collocato ad una '...
'profondit' char(224) ' di ' num2str((GI_Prof_PL(1,m))) ' metri.']);
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-IPLvsPL.png'));
saveas(GI_PiezoLink,TempName);
ChartIPLvsPL = Image(TempName);
ChartIPLvsPL.Style = {ScaleToFit};
ChartIPLvsPL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto tra i dati di massimo '...
'spostamento differenziale locale in direzione di massima pendenza e variazione '...
'del livello idrico nel periodo temporale di riferimento']);
FIG = FIG+1;
ChartIPLvsPL_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
testoIPLvsPL.HAlign = 'justify';
testoIPLvsPL2.HAlign = 'justify';
add(DT,sezGrafIPLvsPL);
add(DT,testoIPLvsPL);
add(DT,testoIPLvsPL2);
add(DT,ChartIPLvsPL);
add(DT,ChartIPLvsPL_cap);
add(DT,br);
close(figure(21));
%--ENG--
if activeEN == 1
sezGrafIPLvsPL_ENG = Paragraph('Correlations between sensors - In Place Link vs Piezo Link');
sezGrafIPLvsPL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
GI_VarFaldaPL = GI_Level_PL(:,m)-GI_Level_PL(1,m);
figure(22)
yyaxis left
GI_InPlaceLink = plot(GI_Date_IPL(1:ind_IPL(end),m),GI_Disp_IPL(1:ind_IPL(end),m),'Color','red');
set(gca,'YColor','k')
LIM = ylim;
if max(GI_Disp_IPL(:,m)) < 10
ylim([-inf 10]);
elseif 1-max(GI_Disp_IPL(:,m))/LIM(1,2) < 0.2
if max(GI_Disp_IPL(:,m)) < 1
newlim = LIM(1,2)+LIM(1,2)*0.3;
else
newlim = LIM(1,2)+LIM(1,2)*0.1;
end
ylim([-inf newlim]);
end
ylabel('Displacement [mm]');
yyaxis right
GI_PiezoLink = plot(GI_Date_PL(1:ind_PL(end),m),GI_VarFaldaPL(1:ind_PL(end)),':','Color','blue');
var = max(abs(GI_VarFaldaPL(1:ind_PL(end))));
media = mean(GI_VarFaldaPL(1:ind_PL(end)));
LIM = ylim;
if var < 0.7
ylim([media-0.5 media+0.5]);
elseif 1-max(GI_VarFaldaPL(1:ind_PL(end)))/LIM(1,2) < 0.2
if max(GI_VarFaldaPL(1:ind_PL(end))) < 1
newlim = LIM(1,2)+LIM(1,2)*0.3;
else
newlim = LIM(1,2)+LIM(1,2)*0.1;
end
ylim([-inf newlim]);
end
ylabel('Water level variation [m]');
set(gca,'YColor','k')
title('Correlation between displacements and water level variation');
xlabel('Date [dd/mm/yyyy]');
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
lgdIPL = (['Displacements (' num2str(GI_Prof_IPL(1,m)) ' m)']);
lgdPL = ('Water level variation');
str(1,1) = {['Displacements (' num2str(GI_Prof_IPL(1,m)) ' m)']};
str(2,1) = {'Water level variation'};
lgd = legend(lgdIPL,lgdPL, 'Location','north');
numcolumns = 2;
[legend_h,object_h,plot_h,text_strings] = columnlegend(numcolumns,str);
clear str
testoIPLvsPL = Paragraph(['The following graph aims to highlight the presence of '...
'correlations between displacement data and water level variations. '...
'In particular, for what concern the reference time period, the comparison '...
'will focus on the sensor that measured the maximum local differential '...
'displacement and the piezometer that recorded the largest water level variation. '...
'If the Array includes only one piezometer, the graph is going to include monitoring '...
'data measured by the only sensor available.']);
testoIPLvsPL2 = Paragraph(['In this case, displacement data reported in the graph '...
'refer to the sensor located at ' num2str(GI_Prof_IPL(1,m)) ' m of depth, while '...
'the represented water level variation derives from the piezometer installed ' ...
'at ' num2str((GI_Prof_PL(1,m))) ' m of depth.']);
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-IPLvsPL_ENG.png'));
saveas(GI_PiezoLink,TempName);
ChartIPLvsPL_ENG = Image(TempName);
ChartIPLvsPL_ENG.Style = {ScaleToFit};
ChartIPLvsPL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between the '...
'maximum local differential displacement and the water level variation '...
'measured during the reference time period']);
FIG_ENG = FIG_ENG+1;
ChartIPLvsPL_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
testoIPLvsPL.HAlign = 'justify';
testoIPLvsPL2.HAlign = 'justify';
add(DT_ENG,sezGrafIPLvsPL_ENG);
add(DT_ENG,testoIPLvsPL);
add(DT_ENG,testoIPLvsPL2);
add(DT_ENG,ChartIPLvsPL_ENG);
add(DT_ENG,ChartIPLvsPL_ENG_cap);
add(DT_ENG,br);
close(figure(22));
end
% pulisco variabili da riutilizzare per catena successiva
clear GI_VarFaldaPL;
end
end
Site = Chapter;
if activeEN == 1
Site_ENG = Chapter;
else
Site_ENG = [];
end
%% Grafici riassuntivi del SITO
if m == rAR && rAR > 1
titleCha = 0;
% --- Piogge vs falda ---
if sum(rRL) > 0 && sum(rPL) > 0 && exist('GI_Rain_RL','var') && exist('GI_Level_PL','var')
if isempty(GI_Level_PL) == 0 && isempty(GI_Rain_RL) == 0
if titleCha == 0
sezSITE = Heading1('Correlazioni fra i diversi sensori presenti in sito');
sezSITE.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site.Title = sezSITE;
spazio = Paragraph('');
add(Site,spazio);
if activeEN == 1
sezSITE_ENG = Heading1('Correlations between different sensors installed on site');
sezSITE_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site_ENG.Title = sezSITE_ENG;
spazio = Paragraph('');
add(Site_ENG,spazio);
end
titleCha = 1;
end
sezGrafRLvsPL = Heading2('Correlazioni tra sensori - Rain Link vs Piezo Link');
sezGrafRLvsPL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
GI_VarFaldaPL = GI_Level_PL-GI_Level_PL(1,:);
testoRLvsPL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra il piezometro '...
'che ha registrato le maggiori variazioni di falda per ogni Array '...
'presente in sito e le precipitazioni locali rilevate dal pluviometro.']);
add(Site,sezGrafRLvsPL);
add(Site,testoRLvsPL);
testoRLvsPL.HAlign = 'justify';
figure(22)
GI_RainLink = bar(GI_Date_RL,GI_Rain_RL,75,'k');
yyaxis left
ylabel('Precipitazioni [mm]');
set(gca,'YColor','k')
yyaxis right
ylabel('Variazione di falda [m]');
set(gca,'YColor','k')
title('Correlazione piogge - variazioni di falda');
xlabel('Data [gg/mm/aaaa]');
strRL(1,1) = cellstr('Precipitazioni');
legend(strRL,'Location','northwest');
[~,colPL] = size(GI_Level_PL);
num = 2;
index = [];
hold on
grid on
cmap = lines(colPL);
for p = 1:colPL
if GI_Date_PL(1,p) ~= 0
ind_PL = find(GI_Date_PL(:,p));
index = [index; p];
GI_RainLink = plot(GI_Date_PL(1:ind_PL(end),p),GI_VarFaldaPL(1:ind_PL(end),p),'-','Color',cmap(p,:));
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(p,4)) ' -' num2str(GI_Prof_PL(1,p)) 'm']);
str(1,1) = cellstr('Precipitazioni');
legend(str,'Location','northwest');
num = num+1;
end
end
leg = legend(str,'Location','best');
clear str
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-RLvsPL.png'));
saveas(GI_RainLink,TempName);
ChartRLvsPL = Image(TempName);
ChartRLvsPL.Style = {ScaleToFit};
ChartRLvsPL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto tra i dati di precipitazione e variazione '...
'di falda registrati nel periodo temporale di riferimento']);
FIG = FIG+1;
ChartRLvsPL_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = (['In questo caso, l''andamento della falda ' char(232) ' riferito alle misure dei sensori riportati di seguito: ']);
testoRLvsPL2 = Paragraph(text);
testoRLvsPL2.HAlign = 'justify';
add(Site,testoRLvsPL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - Piezometro a ',num2str(GI_Prof_PL(1,index(a))),' m da P.C.'];
testoRLvsPL2 = Paragraph(text);
add(Site,testoRLvsPL2);
end
add(Site,ChartRLvsPL);
add(Site,ChartRLvsPL_cap);
add(Site,br);
close(figure(22));
% -- ENG --
if activeEN == 1
sezGrafRLvsPL_ENG = Heading2('Correlation between sensors - Rain Link vs Piezo Link');
sezGrafRLvsPL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
GI_VarFaldaPL = GI_Level_PL-GI_Level_PL(1,:);
testoRLvsPL = Paragraph(['The following graph aims to highlight '...
'the presence of correlations between the piezometer that recorded the '...
'the maximum water level variation for each Array present on site, and the '...
'local rainfall data measured by the rain gauge.']);
add(Site_ENG,sezGrafRLvsPL_ENG);
add(Site_ENG,testoRLvsPL);
testoRLvsPL.HAlign = 'justify';
figure(23)
GI_RainLink = bar(GI_Date_RL,GI_Rain_RL,75,'k');
yyaxis left
ylabel('Rainfall [mm]');
set(gca,'YColor','k')
yyaxis right
ylabel('Water level variation [m]');
set(gca,'YColor','k')
title('Correlations between rainfall and water level variation');
xlabel('Date [dd/mm/yyyy]');
strRL(1,1) = cellstr('Rainfall');
legend(strRL,'Location','northwest');
[~,colPL] = size(GI_Level_PL);
num = 2;
index = [];
hold on
grid on
cmap = lines(colPL);
for p = 1:colPL
if GI_Date_PL(1,p) ~= 0
ind_PL = find(GI_Date_PL(:,p));
index = [index; p];
GI_RainLink = plot(GI_Date_PL(1:ind_PL(end),p),GI_VarFaldaPL(1:ind_PL(end),p),'-','Color',cmap(p,:));
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(p,4)) ' -' num2str(GI_Prof_PL(1,p)) 'm']);
str(1,1) = cellstr('Rainfall');
legend(str,'Location','northwest');
num = num+1;
end
end
leg = legend(str,'Location','best');
clear str
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-RLvsPL_ENG.png'));
saveas(GI_RainLink,TempName);
ChartRLvsPL_ENG = Image(TempName);
ChartRLvsPL_ENG.Style = {ScaleToFit};
ChartRLvsPL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'rainfall data and water level variation during the reference time period']);
FIG_ENG = FIG_ENG+1;
ChartRLvsPL_ENG_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = ('In this case, the water level variation data derive from the sensors listed below: ');
testoRLvsPL2 = Paragraph(text);
testoRLvsPL2.HAlign = 'justify';
add(Site_ENG,testoRLvsPL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - Piezometer located ',num2str(GI_Prof_PL(1,index(a))),' m b.g.l.'];
testoRLvsPL2 = Paragraph(text);
add(Site_ENG,testoRLvsPL2);
end
add(Site_ENG,ChartRLvsPL_ENG);
add(Site_ENG,ChartRLvsPL_ENG_cap);
add(Site_ENG,br);
close(figure(23));
end
end
end
escludiTL = 0;
escludiIPL = 0;
% --- Piogge vs Max Spostamento Tilt Link ---
if sum(rRL) > 0 && sum(rTL) > 0 && exist('GI_Rain_RL','var') && exist('GI_Disp_TL','var')
if isempty(GI_Disp_TL) == 0 && isempty(GI_Rain_RL) == 0
if titleCha == 0
sezSITE = Heading1('Correlazioni fra i diversi sensori presenti in sito');
sezSITE.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site.Title = sezSITE;
spazio = Paragraph('');
add(Site,spazio);
if activeEN == 1
sezSITE_ENG = Heading1('Correlations between different sensors installed on site');
sezSITE_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site_ENG.Title = sezSITE_ENG;
spazio = Paragraph('');
add(Site_ENG,spazio);
end
titleCha = 1;
end
sezGrafRLvsTL = Heading2('Correlazioni tra sensori - Rain Link vs Tilt Link V');
sezGrafRLvsTL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoRLvsTL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra il sensore MEMS 3D '...
'che ha registrato i maggiori spostamenti per ogni Array '...
'presente in sito e le precipitazioni locali rilevate dal pluviometro.']);
add(Site,sezGrafRLvsTL);
add(Site,testoRLvsTL);
testoRLvsTL.HAlign = 'justify';
figure(23)
GI_RainLink = bar(GI_Date_RL,GI_Rain_RL,75,'k');
yyaxis left
ylabel('Precipitazioni [mm]');
set(gca,'YColor','k')
yyaxis right
ylabel('Spostamento [mm]');
set(gca,'YColor','k')
title('Correlazione piogge - spostamenti');
xlabel('Data [gg/mm/aaaa]');
strRL(1,1) = cellstr('Precipitazioni');
legend(strRL,'Location','northwest');
[~,colTL] = size(GI_Disp_TL);
num = 2;
hold on
grid on
index = [];
cmap = lines(colTL);
for t = 1:colTL
if GI_Date_TL(1,t) ~= 0
ind_TL = find(GI_Date_TL(:,t));
index = [index; t];
GI_RainLink = plot(GI_Date_TL(1:ind_TL(end),t),GI_Disp_TL(1:ind_TL(end),t),'-','Color',cmap(t,:));
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,1) = cellstr('Precipitazioni');
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_TL(1,t)) 'm']);
legend(str,'Location','northwest');
num = num+1;
end
end
clear str
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-RLvsTL.png'));
saveas(GI_RainLink,TempName);
ChartRLvsTL = Image(TempName);
ChartRLvsTL.Style = {ScaleToFit};
ChartRLvsTL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati di precipitazione e spostamento registrati nel periodo temporale di riferimento']);
FIG = FIG+1;
ChartRLvsTL_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Gli spostamenti sono riferiti alle misure dei sensori riportati di seguito: ';
testoRLvsTL2 = Paragraph(text);
testoRLvsTL2.HAlign = 'justify';
add(Site,testoRLvsTL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - MEMS a ',num2str(abs(GI_Prof_TL(1,index(a)))),' m da P.C.'];
testoRLvsTL2 = Paragraph(text);
add(Site,testoRLvsTL2);
end
add(Site,ChartRLvsTL);
add(Site,ChartRLvsTL_cap);
add(Site,br);
close(figure(23));
% -- ENG --
if activeEN == 1
sezGrafRLvsTL_ENG = Heading2('Correlation between sensors - Rain Link vs Tilt Link V');
sezGrafRLvsTL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoRLvsTL = Paragraph(['The following graph aims to highlight the presence '...
'of correlations between the maximum displacement measured by the MEMS 3D '...
'sensors for each Array installed on site, and the local rainfall data recorded '...
'by the rain gauge.']);
add(Site_ENG,sezGrafRLvsTL_ENG);
add(Site_ENG,testoRLvsTL);
testoRLvsTL.HAlign = 'justify';
figure(24)
GI_RainLink = bar(GI_Date_RL,GI_Rain_RL,75,'k');
yyaxis left
ylabel('Rainfall [mm]');
set(gca,'YColor','k')
yyaxis right
ylabel('Displacement [mm]');
set(gca,'YColor','k')
title('Correlation between rainfall and displacements');
xlabel('Date [dd/mm/yyyy]');
strRL(1,1) = cellstr('Rainfall');
legend(strRL,'Location','northwest');
[~,colTL] = size(GI_Disp_TL);
num = 2;
hold on
grid on
index = [];
cmap = lines(colTL);
for t = 1:colTL
if GI_Date_TL(1,t) ~= 0
ind_TL = find(GI_Date_TL(:,t));
index = [index; t];
GI_RainLink = plot(GI_Date_TL(1:ind_TL(end),t),GI_Disp_TL(1:ind_TL(end),t),'-','Color',cmap(t,:));
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,1) = cellstr('Rainfall');
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_TL(1,t)) 'm']);
legend(str,'Location','northwest');
num = num+1;
end
end
clear str
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-RLvsTL_ENG.png'));
saveas(GI_RainLink,TempName);
ChartRLvsTL_ENG = Image(TempName);
ChartRLvsTL_ENG.Style = {ScaleToFit};
ChartRLvsTL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'rainfall and displacement data recorded during the reference time period']);
FIG_ENG = FIG_ENG+1;
ChartRLvsTL_ENG_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'The analyzed displacements refer to monitoring data recorded by the following sensors: ';
testoRLvsTL2 = Paragraph(text);
testoRLvsTL2.HAlign = 'justify';
add(Site_ENG,testoRLvsTL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - MEMS located ',num2str(abs(GI_Prof_TL(1,index(a)))),' m b.g.l.'];
testoRLvsTL2 = Paragraph(text);
add(Site_ENG,testoRLvsTL2);
end
add(Site_ENG,ChartRLvsTL_ENG);
add(Site_ENG,ChartRLvsTL_ENG_cap);
add(Site_ENG,br);
close(figure(24));
end
escludiTL = 1;
end
end
% --- Piogge vs Max Spostamento In Place Link ---
if sum(rRL) > 0 && sum(rIPL) > 0 && exist('GI_Rain_RL','var') && exist('GI_Disp_IPL','var')
if isempty(GI_Disp_IPL) == 0 && isempty(GI_Rain_RL) == 0
if titleCha == 0
sezSITE = Heading1('Correlazioni fra i diversi sensori presenti in sito');
sezSITE.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site.Title = sezSITE;
spazio = Paragraph('');
add(Site,spazio);
if activeEN == 1
sezSITE_ENG = Heading1('Correlations between different sensors installed on site');
sezSITE_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site_ENG.Title = sezSITE_ENG;
spazio = Paragraph('');
add(Site_ENG,spazio);
end
titleCha = 1;
end
sezGrafRLvsIPL = Heading2('Correlazioni tra sensori - Rain Link vs In Place Link');
sezGrafRLvsIPL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoRLvsIPL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra il sensore MEMS 3D '...
'che ha registrato i maggiori spostamenti per ogni Array '...
'presente in sito e le precipitazioni locali rilevate dal pluviometro.']);
add(Site,sezGrafRLvsIPL);
add(Site,testoRLvsIPL);
testoRLvsIPL.HAlign = 'justify';
figure(23)
GI_RainLink = bar(GI_Date_RL,GI_Rain_RL,75,'k');
yyaxis left
ylabel('Precipitazioni [mm]');
set(gca,'YColor','k')
yyaxis right
ylabel('Spostamento [mm]');
set(gca,'YColor','k')
title('Correlazione piogge - spostamenti');
xlabel('Data [gg/mm/aaaa]');
strRL(1,1) = cellstr('Precipitazioni');
legend(strRL,'Location','northwest');
[~,colIPL] = size(GI_Disp_IPL);
num = 2;
hold on
grid on
index = [];
cmap = lines(colIPL);
for t = 1:colIPL
if GI_Date_IPL(1,t) ~= 0
ind_IPL = find(GI_Date_IPL(:,t));
index = [index; t];
GI_RainLink = plot(GI_Date_IPL(1:ind_IPL(end),t),GI_Disp_IPL(1:ind_IPL(end),t),'-','Color',cmap(t,:));
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_IPL(1,t)) 'm']);
num = num+1;
end
end
leg = legend(str,'Location','northwest');
clear str
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-RLvsIPL.png'));
saveas(GI_RainLink,TempName);
ChartRLvsIPL = Image(TempName);
ChartRLvsIPL.Style = {ScaleToFit};
ChartRLvsIPL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati di precipitazione e spostamento registrati nel periodo '...
'temporale di riferimento']);
FIG = FIG+1;
ChartRLvsIPL_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Gli spostamenti sono riferiti alle misure dei sensori riportati di seguito: ';
testoRLvsIPL2 = Paragraph(text);
testoRLvsIPL2.HAlign = 'justify';
add(Site,testoRLvsIPL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - MEMS a ',num2str(abs(GI_Prof_IPL(1,index(a)))),' m da P.C.'];
testoRLvsIPL2 = Paragraph(text);
add(Site,testoRLvsIPL2);
end
add(Site,ChartRLvsIPL);
add(Site,ChartRLvsIPL_cap);
add(Site,br);
close(figure(23));
% -- ENG --
if activeEN == 1
sezGrafRLvsIPL_ENG = Heading2('Correlation between sensors - Rain Link vs In Place Link');
sezGrafRLvsIPL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoRLvsIPL = Paragraph(['The following graph aims to highlight the presence '...
'of correlations between the maximum displacement measured by the MEMS 3D '...
'sensors for each Array installed on site, and the local rainfall data recorded '...
'by the rain gauge.']);
add(Site_ENG,sezGrafRLvsIPL_ENG);
add(Site_ENG,testoRLvsIPL);
testoRLvsIPL.HAlign = 'justify';
figure(23)
GI_RainLink = bar(GI_Date_RL,GI_Rain_RL,75,'k');
yyaxis left
ylabel('Rainfall [mm]');
set(gca,'YColor','k')
yyaxis right
ylabel('Displacement [mm]');
set(gca,'YColor','k')
title('Correlation between rainfall and displacements');
xlabel('Date [dd/mm/yyyy]');
strRL(1,1) = cellstr('Rainfall');
legend(strRL,'Location','northwest');
[~,colIPL] = size(GI_Disp_IPL);
num = 2;
hold on
grid on
index = [];
cmap = lines(colIPL);
for t = 1:colIPL
if GI_Date_IPL(1,t) ~= 0
ind_IPL = find(GI_Date_IPL(:,t));
index = [index; t];
GI_RainLink = plot(GI_Date_IPL(1:ind_IPL(end),t),GI_Disp_IPL(1:ind_IPL(end),t),'-','Color',cmap(t,:));
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_IPL(1,t)) 'm']);
num = num+1;
end
end
leg = legend(str,'Location','northwest');
clear str
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-RLvsIPL_ENG.png'));
saveas(GI_RainLink,TempName);
ChartRLvsIPL_ENG = Image(TempName);
ChartRLvsIPL_ENG.Style = {ScaleToFit};
ChartRLvsIPL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'rainfall and displacement data recorded during the reference time period']);
FIG_ENG = FIG_ENG+1;
ChartRLvsIPL_ENG_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'The analyzed displacements refer to monitoring data recorded by the following sensors: ';
testoRLvsIPL2 = Paragraph(text);
testoRLvsIPL2.HAlign = 'justify';
add(Site_ENG,testoRLvsIPL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - MEMS located ',num2str(abs(GI_Prof_IPL(1,index(a)))),' m b.g.l.'];
testoRLvsIPL2 = Paragraph(text);
add(Site_ENG,testoRLvsIPL2);
end
add(Site_ENG,ChartRLvsIPL_ENG);
add(Site_ENG,ChartRLvsIPL_ENG_cap);
add(Site_ENG,br);
close(figure(23));
end
escludiIPL = 1;
end
end
% --- Spostamenti Tilt Link o In Place Link - clinometri - fessurimetri ---
if sum(rTL) > 0 && exist('GI_Disp_TL','var') && sum(rKL) > 0 && exist('GI_Angolo_KL','var') || ...
sum(rIPL) > 0 && exist('GI_Disp_IPL','var') && sum(rKL) > 0 && exist('GI_Angolo_KL','var') || ...
sum(rTL) > 0 && exist('GI_Disp_TL','var') && sum(rCrL) > 0 && exist('GI_Disp_CrL','var') || ...
sum(rIPL) > 0 && exist('GI_Disp_IPL','var') && sum(rCrL) > 0 && exist('GI_Disp_CrL','var') || ...
sum(rCrL) > 0 && exist('GI_Disp_CrL','var') && sum(rKL) > 0 && exist('GI_Angolo_KL','var')
if isempty(GI_Disp_TL) == 0 && isempty(GI_Angolo_KL) == 0 || ...
isempty(GI_Disp_IPL) == 0 && isempty(GI_Angolo_KL) == 0 || ...
isempty(GI_Disp_TL) == 0 && isempty(GI_Disp_CrL) == 0 || ...
isempty(GI_Disp_IPL) == 0 && isempty(GI_Disp_CrL) == 0 || ...
isempty(GI_Disp_CrL) == 0 && isempty(GI_Angolo_KL) == 0
figure(25)
hold on
grid on
if sum(rTL) > 0 && sum(rKL) > 0 && sum(rCrL) > 0 % Ci sono Tilt + Klino + Crack
sezGrafTLvsKL = Heading2('Correlazioni tra sensori Tilt Link V, Klino Link e Crack Link');
testoTLvsKL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti differenziali registrati per ogni Array dai sensori MEMS 3D, '...
'la massima inclinazione differenziale lungo gli assi strumentali registrata '...
'dai clinometri e la maggior apertura o chiusura rilevata dai fessurimetri presenti in sito.']);
title('Valori massimi dei sensori Tilt, Klino e Crack Link');
ChartTLvsKL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati differenziali massimi di spostamento, inclinazione ed apertura '...
'o chiusura di fessure registrati rispettivamente dai sensori inclinometrici, '...
'clinometrici e fessurimetri di ogni singolo Array, nel periodo temporale di riferimento']);
elseif sum(rIPL) > 0 && sum(rKL) > 0 && sum(rCrL) > 0 % Ci sono In Place + Klino + Crack
sezGrafTLvsKL = Heading2('Correlazioni tra sensori In Place Link, Klino Link e Crack Link');
testoTLvsKL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti differenziali registrati per ogni Array dai sensori MEMS 3D, '...
'la massima inclinazione differenziale lungo gli assi strumentali registrata '...
'dai clinometri e la maggior apertura o chiusura rilevata dai fessurimetri presenti in sito.']);
title('Valori massimi dei sensori In Place, Klino e Crack Link');
ChartTLvsKL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati differenziali massimi di spostamento, inclinazione ed apertura '...
'o chiusura di fessure registrati rispettivamente dai sensori inclinometrici, '...
'clinometrici e fessurimetri di ogni singolo Array, nel periodo temporale di riferimento']);
elseif sum(rTL) > 0 && sum(rKL) > 0 % Tilt + Klino
sezGrafTLvsKL = Heading2('Correlazioni tra sensori Tilt Link V e Klino Link');
testoTLvsKL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti differenziali registrati per ogni Array dai sensori MEMS 3D '...
'e la massima inclinazione differenziale lungo gli assi strumentali registrata '...
'dai clinometri presenti in sito.']);
title('Valori massimi dei sensori Tilt e Klino Link');
ChartTLvsKL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati differenziali massimi di spostamento e di inclinazione '...
'registrati rispettivamente dai sensori inclinometrici e '...
'clinometrici di ogni singolo Array, nel periodo temporale di riferimento']);
elseif sum(rIPL) > 0 && sum(rKL) > 0 % In Place + Klino
sezGrafTLvsKL = Heading2('Correlazioni tra sensori In Place Link e Klino Link');
testoTLvsKL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti differenziali registrati per ogni Array dai sensori MEMS 3D '...
'e la massima inclinazione differenziale lungo gli assi strumentali registrata '...
'dai clinometri presenti in sito.']);
title('Valori massimi dei sensori In Place e Klino Link');
ChartTLvsKL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati differenziali massimi di spostamento e di inclinazione '...
'registrati rispettivamente dai sensori inclinometrici e '...
'clinometrici di ogni singolo Array, nel periodo temporale di riferimento']);
elseif sum(rTL) > 0 && sum(rCrL) > 0 % Tilt e Crack
sezGrafTLvsKL = Heading2('Correlazioni tra sensori Tilt Link V e Crack Link');
testoTLvsKL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti differenziali registrati per ogni Array dai sensori MEMS 3D '...
'e la maggior apertura o chiusura rilevata dai fessurimetri presenti in sito.']);
title('Valori massimi dei sensori Tilt e Crack Link');
ChartTLvsKL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati differenziali massimi di spostamento ed apertura '...
'o chiusura di fessure registrati rispettivamente dai sensori inclinometrici '...
'e fessurimetri di ogni singolo Array, nel periodo temporale di riferimento']);
elseif sum(rIPL) > 0 && sum(rCrL) > 0 % In Place e Crack
sezGrafTLvsKL = Heading2('Correlazioni tra sensori In Place Link e Crack Link');
testoTLvsKL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti differenziali registrati per ogni Array dai sensori MEMS 3D '...
'e la maggior apertura o chiusura rilevata dai fessurimetri presenti in sito.']);
title('Valori massimi dei sensori Tilt e Crack Link');
ChartTLvsKL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati differenziali massimi di spostamento ed apertura '...
'o chiusura di fessure registrati rispettivamente dai sensori inclinometrici '...
'e fessurimetri di ogni singolo Array, nel periodo temporale di riferimento']);
elseif sum(rKL) > 0 && sum(rCrL) > 0
sezGrafTLvsKL = Heading2('Correlazioni tra sensori Klino Link e Crack Link');
testoTLvsKL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'la massima inclinazione differenziale rilevata lungo gli assi strumentali '...
'dei clinometri e la maggior apertura o chiusura rilevata dai fessurimetri presenti in sito.']);
title('Valori massimi dei sensori Klino e Crack Link');
ChartTLvsKL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati differenziali massimi di inclinazione ed apertura '...
'o chiusura di fessure registrati rispettivamente dai sensori '...
'clinometrici e fessurimetri di ogni singolo Array, nel periodo temporale di riferimento']);
end
sezGrafTLvsKL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTLvsKL.HAlign = 'justify';
yyaxis left
ylabel('Spostamento [mm]');
set(gca,'YColor','k')
yyaxis right
ylabel(['Inclinazione [' char(176) ']']);
set(gca,'YColor','k')
xlabel('Data [gg/mm/aaaa]');
[~,colTL] = size(GI_Disp_TL);
[~,colIPL] = size(GI_Disp_IPL);
[~,colKL] = size(GI_Date_KL);
[~,colCrL] = size(GI_Date_CrL);
num = 1;
cmap = lines(2*colKL+colTL+colIPL+colCrL);
cont = 1;
% Tilt Link V
indexTL = [];
if sum(rTL) > 0
yyaxis left
for t = 1:colTL
if GI_Date_TL(1,t) ~= 0
ind_TL = find(GI_Date_TL(:,t));
indexTL = [indexTL; t];
plot(GI_Date_TL(1:ind_TL(end),t),GI_Disp_TL(1:ind_TL(end),t),'-','Color',cmap(cont,:));
cont = cont+1;
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_TL(1,t)) ' m']);
num = num+1;
end
end
MIN(1) = min(min(GI_Disp_TL));
MAX(1) = max(max(GI_Disp_TL));
end
% In Place Link
indexIPL = [];
if sum(rIPL) > 0
yyaxis left
for t = 1:colIPL
if GI_Date_IPL(1,t) ~= 0
ind_IPL = find(GI_Date_IPL(:,t));
indexIPL = [indexIPL; t];
plot(GI_Date_IPL(1:ind_IPL(end),t),GI_Disp_IPL(1:ind_IPL(end),t),'-','Color',cmap(cont,:));
cont = cont+1;
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_IPL(1,t)) ' m']);
num = num+1;
end
end
MIN(2) = min(min(GI_Disp_IPL));
MAX(2) = max(max(GI_Disp_IPL));
end
% Crack Link
indexCrL = [];
if sum(rCrL) > 0
yyaxis left
for c = 1:colCrL
if GI_Date_CrL(1,c) ~= 0
var = GI_Disp_CrL-GI_Disp_CrL(1,:);
ind_CrL = find(GI_Date_CrL(:,c));
indexCrL = [indexCrL; c];
if sum(rKL) > 0
plot(GI_Date_CrL(1:ind_CrL(end),c),var(1:ind_CrL(end),c),'-','Color',cmap(cont,:));
else
GI_KlinoLink = plot(GI_Date_CrL(1:ind_CrL(end),c),var(1:ind_CrL(end),c),'-','Color',cmap(cont,:));
end
cont = cont+1;
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(c,4)) ' nodo ' num2str(GI_Num_CrL(1,c))]);
num = num+1;
end
end
MIN(3) = min(min(var));
MAX(3) = max(max(var));
ylim([floor(min(min(MIN))) ceil(max(max(MAX)))]);
end
% Klino Link
indexKL = [];
if sum(rKL) > 0
yyaxis right
kk = 1;
for k = 1:colKL
if GI_Date_KL(1,k) ~= 0
ind_KL = find(GI_Date_KL(:,k));
indexKL = [indexKL; k];
plot(GI_Date_KL(1:ind_KL(end),k),GI_Angolo_KL(1:ind_KL(end),kk)...
-GI_Angolo_KL(1,kk),'-','Color',cmap(cont,:));
GI_KlinoLink = plot(GI_Date_KL(1:ind_KL(end),k),GI_Angolo_KL(1:ind_KL(end)...
,kk+1)-GI_Angolo_KL(1,kk+1),'-','Color',cmap(cont+1,:));
cont = cont+2;
kk = kk+2;
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(k,4)) ' nodo ' num2str(GI_Num_KL(1,k)) ' asse X']);
str(1,num+1) = cellstr([char(chainID(k,4)) ' nodo ' num2str(GI_Num_KL(1,k)) ' asse Y']);
num = num+2;
end
end
yyaxis right
ylim([floor(min(min(GI_Angolo_KL))) ceil(max(max(GI_Angolo_KL)))]);
end
numcolumns = 1;
[legend_h,object_h,plot_h,text_strings] = columnlegend(numcolumns,str,'Location','NorthWest');
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-TLvsKL.png'));
if titleCha == 0
sezSITE = Heading1('Correlazioni fra i diversi sensori presenti in sito');
sezSITE.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site.Title = sezSITE;
spazio = Paragraph('');
add(Site,spazio);
if activeEN == 1
sezSITE_ENG = Heading1('Correlations between different sensors installed on site');
sezSITE_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site_ENG.Title = sezSITE_ENG;
spazio = Paragraph('');
add(Site_ENG,spazio);
end
titleCha = 1;
end
add(Site,sezGrafTLvsKL);
add(Site,testoTLvsKL);
saveas(GI_KlinoLink,TempName);
ChartTLvsKL = Image(TempName);
ChartTLvsKL.Style = {ScaleToFit};
FIG = FIG+1;
ChartTLvsKL_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'I dati sono riferiti alle misure dei sensori riportati di seguito: ';
testoTL2 = Paragraph(text);
testoTL2.HAlign = 'justify';
add(Site,testoTL2);
% Tilt Link
I = size(indexTL);
for a = 1:I(1)
text = ['- Array ',char(chainID(indexTL(a),4)),' - MEMS a ',num2str(abs(GI_Prof_TL(1,indexTL(a)))),' m da P.C.'];
testoTL2 = Paragraph(text);
add(Site,testoTL2);
end
% In Place Link
I = size(indexIPL);
for a = 1:I(1)
text = ['- Array ',char(chainID(indexIPL(a),4)),' - MEMS a ',num2str(abs(GI_Prof_IPL(1,indexIPL(a)))),' m da P.C.'];
testoTL2 = Paragraph(text);
add(Site,testoTL2);
end
% Klino Link
I = size(indexKL);
for a = 1:I(1)
text = ['- Array ',char(chainID(indexKL(a),4)),' - Clinometro numero ',num2str(GI_Num_KL(1,indexKL(a)))];
testoTL2 = Paragraph(text);
add(Site,testoTL2);
end
% Crack Link
I = size(indexCrL);
for a = 1:I(1)
text = ['- Array ',char(chainID(indexCrL(a),4)),' - Fessurimetro numero ',num2str(GI_Num_CrL(1,indexCrL(a)))];
testoTL2 = Paragraph(text);
add(Site,testoTL2);
end
add(Site,ChartTLvsKL);
add(Site,ChartTLvsKL_cap);
add(Site,br);
close(figure(25));
% --- ENG ---
if activeEN == 1
figure(35)
hold on
grid on
if sum(rTL) > 0 && sum(rKL) > 0 && sum(rCrL) > 0 % Ci sono Tilt + Klino + Crack
sezGrafTLvsKL_ENG = Heading2('Correlation between sensors: Tilt Link V, Klino Link, and Crack Link');
testoTLvsKL = Paragraph(['The following graph has the objective to '...
'highlight the presence of correlations between '...
'the maximum differential displacements recorded for each Array by 3D MEMS sensors, '...
'the maximum differential tilt recorded by tilt meters along the instrumental axes, '...
'and the maximum crack opening variation measured by crack meters installed on site.']);
title('Maximum values recorded by Tilt, Klino, and Crack Links');
ChartTLvsKL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'maximum differential displacements, tilt, and crack opening data'...
'recorded during the reference time period respectively by '...
'Tilt Link, Klino Link, and Crack Link sensors integrated in each single Array']);
elseif sum(rIPL) > 0 && sum(rKL) > 0 && sum(rCrL) > 0 % Ci sono In Place + Klino + Crack
sezGrafTLvsKL_ENG = Heading2('Correlation between sensors: In Place Link, Klino Link, and Crack Link');
testoTLvsKL = Paragraph(['The following graph has the objective to '...
'highlight the presence of correlations between '...
'the maximum differential displacements recorded for each Array by 3D MEMS sensors, '...
'the maximum differential tilt recorded by tilt meters along the instrumental axes, '...
'and the maximum crack opening variation measured by crack meters installed on site.']);
title('Maximum values recorded by In Place, Klino, and Crack Links');
ChartTLvsKL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'maximum differential displacements, tilt, and crack opening data'...
'recorded during the reference time period respectively by '...
'In Place Link, Klino Link, and Crack Link sensors integrated in each single Array']);
elseif sum(rTL) > 0 && sum(rKL) > 0 % Tilt + Klino
sezGrafTLvsKL_ENG = Heading2('Correlation between sensors: Tilt Link V and Klino Link');
testoTLvsKL = Paragraph(['The following graph has the objective to '...
'highlight the presence of correlations between '...
'the maximum differential displacements recorded for each Array by 3D MEMS sensors, and '...
'the maximum differential tilt recorded along the instrumental axes by the tilt meters '...
'installed on site.']);
title('Maximum values recorded by Tilt Link and Klino Link');
ChartTLvsKL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'maximum differential displacements and tilt data'...
'recorded during the reference time period respectively by '...
'Tilt Link and Klino Link sensors integrated in each single Array']);
elseif sum(rIPL) > 0 && sum(rKL) > 0 % In Place + Klino
sezGrafTLvsKL_ENG = Heading2('Correlation between sensors: In Place Link and Klino Link');
testoTLvsKL = Paragraph(['The following graph has the objective to '...
'highlight the presence of correlations between '...
'the maximum differential displacements recorded for each Array by 3D MEMS sensors, and '...
'the maximum differential tilt recorded along the instrumental axes by the tilt meters '...
'installed on site.']);
title('Maximum values recorded by In Place Link and Klino Link');
ChartTLvsKL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'maximum differential displacements and tilt data'...
'recorded during the reference time period respectively by '...
'In Place Link and Klino Link sensors integrated in each single Array']);
elseif sum(rTL) > 0 && sum(rCrL) > 0 % Tilt e Crack
sezGrafTLvsKL_ENG = Heading2('Correlation between sensors: Tilt Link V and Crack Link');
testoTLvsKL = Paragraph(['The following graph has the objective to '...
'highlight the presence of correlations between '...
'the maximum differential displacements recorded for each Array by 3D MEMS sensors, '...
'and the maximum crack opening variation measured by crack meters installed on site.']);
title('Maximum values recorded by Tilt and Crack Links');
ChartTLvsKL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'maximum differential displacements and crack opening data'...
'recorded during the reference time period respectively by '...
'Tilt Link and Crack Link sensors integrated in each single Array']);
elseif sum(rIPL) > 0 && sum(rCrL) > 0 % In Place e Crack
sezGrafTLvsKL_ENG = Heading2('Correlation between sensors: In Place and Crack Link');
testoTLvsKL = Paragraph(['The following graph has the objective to '...
'highlight the presence of correlations between '...
'the maximum differential displacements recorded for each Array by 3D MEMS sensors, '...
'and the maximum crack opening variation measured by crack meters installed on site.']);
title('Maximum values recorded by In Place and Crack Links');
ChartTLvsKL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'maximum differential displacements and crack opening data'...
'recorded during the reference time period respectively by '...
'In Place Link and Crack Link sensors integrated in each single Array']);
elseif sum(rKL) > 0 && sum(rCrL) > 0
sezGrafTLvsKL_ENG = Heading2('Correlation between sensors: Klino Link and Crack Link');
testoTLvsKL = Paragraph(['The following graph has the objective to '...
'highlight the presence of correlations between '...
'the maximum differential tilt recorded by tilt meters along the instrumental axes '...
'and the maximum crack opening variation measured by crack meters installed on site.']);
title('Maximum values recorded by Klino and Crack Links');
ChartTLvsKL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'tilt and crack opening data'...
'recorded during the reference time period respectively by '...
'Klino Link and Crack Link sensors integrated in each single Array']);
end
sezGrafTLvsKL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTLvsKL.HAlign = 'justify';
yyaxis left
ylabel('Displacement [mm]');
set(gca,'YColor','k')
yyaxis right
ylabel(['Tilt [' char(176) ']']);
set(gca,'YColor','k')
xlabel('Date [dd/mm/yyyy]');
[~,colTL] = size(GI_Disp_TL);
[~,colIPL] = size(GI_Disp_IPL);
[~,colKL] = size(GI_Date_KL);
[~,colCrL] = size(GI_Date_CrL);
num = 1;
cmap = lines(2*colKL+colTL+colIPL+colCrL);
cont = 1;
% Tilt Link V
indexTL = [];
if sum(rTL) > 0
yyaxis left
for t = 1:colTL
if GI_Date_TL(1,t) ~= 0
ind_TL = find(GI_Date_TL(:,t));
indexTL = [indexTL; t];
plot(GI_Date_TL(1:ind_TL(end),t),GI_Disp_TL(1:ind_TL(end),t),'-','Color',cmap(cont,:));
cont = cont+1;
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_TL(1,t)) ' m']);
num = num+1;
end
end
MIN(1) = min(min(GI_Disp_TL));
MAX(1) = max(max(GI_Disp_TL));
end
% In Place Link
indexIPL = [];
if sum(rIPL) > 0
yyaxis left
for t = 1:colIPL
if GI_Date_IPL(1,t) ~= 0
ind_IPL = find(GI_Date_IPL(:,t));
indexIPL = [indexIPL; t];
plot(GI_Date_IPL(1:ind_IPL(end),t),GI_Disp_IPL(1:ind_IPL(end),t),'-','Color',cmap(cont,:));
cont = cont+1;
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_IPL(1,t)) ' m']);
num = num+1;
end
end
MIN(2) = min(min(GI_Disp_IPL));
MAX(2) = max(max(GI_Disp_IPL));
end
% Crack Link
indexCrL = [];
if sum(rCrL) > 0
yyaxis left
for c = 1:colCrL
if GI_Date_CrL(1,c) ~= 0
var = GI_Disp_CrL-GI_Disp_CrL(1,:);
ind_CrL = find(GI_Date_CrL(:,c));
indexCrL = [indexCrL; c];
if sum(rKL) > 0
plot(GI_Date_CrL(1:ind_CrL(end),c),var(1:ind_CrL(end),c),'-','Color',cmap(cont,:));
else
GI_KlinoLink = plot(GI_Date_CrL(1:ind_CrL(end),c),var(1:ind_CrL(end),c),'-','Color',cmap(cont,:));
end
cont = cont+1;
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(c,4)) ' node ' num2str(GI_Num_CrL(1,c))]);
num = num+1;
end
end
MIN(3) = min(min(var));
MAX(3) = max(max(var));
ylim([floor(min(min(MIN))) ceil(max(max(MAX)))]);
end
% Klino Link
indexKL = [];
if sum(rKL) > 0
yyaxis right
kk = 1;
for k = 1:colKL
if GI_Date_KL(1,k) ~= 0
ind_KL = find(GI_Date_KL(:,k));
indexKL = [indexKL; k];
plot(GI_Date_KL(1:ind_KL(end),k),GI_Angolo_KL(1:ind_KL(end),kk)...
-GI_Angolo_KL(1,kk),'-','Color',cmap(cont,:));
GI_KlinoLink = plot(GI_Date_KL(1:ind_KL(end),k),GI_Angolo_KL(1:ind_KL(end)...
,kk+1)-GI_Angolo_KL(1,kk+1),'-','Color',cmap(cont+1,:));
cont = cont+2;
kk = kk+2;
h = gca;
h.XAxis.MinorTick = 'on';
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
str(1,num) = cellstr([char(chainID(k,4)) ' node ' num2str(GI_Num_KL(1,k)) ' - X axis']);
str(1,num+1) = cellstr([char(chainID(k,4)) ' node ' num2str(GI_Num_KL(1,k)) ' - Y axis']);
num = num+2;
end
end
yyaxis right
ylim([floor(min(min(GI_Angolo_KL))) ceil(max(max(GI_Angolo_KL)))]);
end
numcolumns = 1;
[legend_h,object_h,plot_h,text_strings] = columnlegend(numcolumns,str,'Location','NorthWest');
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-TLvsKL_ENG.png'));
add(Site_ENG,sezGrafTLvsKL_ENG);
add(Site_ENG,testoTLvsKL);
saveas(GI_KlinoLink,TempName);
ChartTLvsKL_ENG = Image(TempName);
ChartTLvsKL_ENG.Style = {ScaleToFit};
FIG_ENG = FIG_ENG+1;
ChartTLvsKL_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Monitoring data refer to the sensors listed below: ';
testoTL2 = Paragraph(text);
testoTL2.HAlign = 'justify';
add(Site_ENG,testoTL2);
% Tilt Link
I = size(indexTL);
for a = 1:I(1)
text = ['- Array ',char(chainID(indexTL(a),4)),' - MEMS located ',num2str(abs(GI_Prof_TL(1,indexTL(a)))),' m b.g.l.'];
testoTL2 = Paragraph(text);
add(Site_ENG,testoTL2);
end
% In Place Link
I = size(indexIPL);
for a = 1:I(1)
text = ['- Array ',char(chainID(indexIPL(a),4)),' - MEMS located ',num2str(abs(GI_Prof_IPL(1,indexIPL(a)))),' m b.g.l.'];
testoTL2 = Paragraph(text);
add(Site_ENG,testoTL2);
end
% Klino Link
I = size(indexKL);
for a = 1:I(1)
text = ['- Array ',char(chainID(indexKL(a),4)),' - Tilt meter ',num2str(GI_Num_KL(1,indexKL(a)))];
testoTL2 = Paragraph(text);
add(Site_ENG,testoTL2);
end
% Crack Link
I = size(indexCrL);
for a = 1:I(1)
text = ['- Array ',char(chainID(indexCrL(a),4)),' - Crack meter ',num2str(GI_Num_CrL(1,indexCrL(a)))];
testoTL2 = Paragraph(text);
add(Site_ENG,testoTL2);
end
add(Site_ENG,ChartTLvsKL_ENG);
add(Site_ENG,ChartTLvsKL_ENG_cap);
add(Site_ENG,br);
close(figure(35));
end
end
escludiTL = 1;
end
% --- Spostamenti a confronto ---
% ---> Tilt Link
if sum(rTL) > 0 && exist('GI_Disp_TL','var')
if isempty(GI_Disp_TL) == 0
if escludiTL == 0
sezGrafTL = Heading2('Correlazioni tra sensori Tilt Link V');
sezGrafTL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti registrati per ogni Array dai sensori MEMS 3D '...
'presenti in sito.']);
testoTL.HAlign = 'justify';
figure(24)
ylabel('Spostamento [mm]');
set(gca,'YColor','k')
title('Correlazione fra gli spostamenti massimi di ogni Array');
xlabel('Data [gg/mm/aaaa]');
[~,colTL] = size(GI_Disp_TL);
num = 1;
index = [];
for t = 1:colTL
if GI_Date_TL(1,t) ~= 0
ind_TL = find(GI_Date_TL(:,t));
index = [index; t];
hold on
grid on
GI_TiltLink = plot(GI_Date_TL(1:ind_TL(end),t),GI_Disp_TL(1:ind_TL(end),t));
h = gca;
h.XAxis.MinorTick = 'on';
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_TL(1,t)) ' m']);
num = num+1;
end
end
Max = max(GI_Disp_TL(1:ind_TL(end),:));
MAX = max(Max);
if MAX < 10 % mm
ylim([0 10]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-TL.png'));
if num >= 3
if titleCha == 0
sezSITE = Heading1('Correlazioni fra i diversi sensori presenti in sito');
sezSITE.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site.Title = sezSITE;
spazio = Paragraph('');
add(Site,spazio);
if activeEN == 1
sezSITE_ENG = Heading1('Correlations between different sensors installed on site');
sezSITE_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site_ENG.Title = sezSITE_ENG;
spazio = Paragraph('');
add(Site_ENG,spazio);
end
titleCha = 1;
end
add(Site,sezGrafTL);
add(Site,testoTL);
saveas(GI_TiltLink,TempName);
ChartTL = Image(TempName);
ChartTL.Style = {ScaleToFit};
ChartTL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati massimi di spostamento registrati da ogni singolo Array nel periodo temporale di riferimento']);
FIG = FIG+1;
ChartTL_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Gli spostamenti sono riferiti alle misure dei sensori riportati di seguito: ';
testoTL2 = Paragraph(text);
testoTL2.HAlign = 'justify';
add(Site,testoTL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - MEMS a ',num2str(abs(GI_Prof_TL(1,index(a)))),' m da P.C.'];
testoTL2 = Paragraph(text);
add(Site,testoTL2);
end
add(Site,ChartTL);
add(Site,ChartTL_cap);
add(Site,br);
end
close(figure(24));
% -- ENG --
if activeEN == 1
sezGrafTL_ENG = Heading2('Correlation between Tilt Link V sensors');
sezGrafTL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTL = Paragraph(['The following graph aims to highlight the presence '...
'of correlations between the most relevant displacements recorded by '...
'3D MEMS sensors for each single Array installed on site.']);
testoTL.HAlign = 'justify';
figure(34)
ylabel('Displacement [mm]');
set(gca,'YColor','k')
title('Correlation between maximum displacements recorded by each Array');
xlabel('Date [dd/mm/yyyy]');
[~,colTL] = size(GI_Disp_TL);
num = 1;
index = [];
for t = 1:colTL
if GI_Date_TL(1,t) ~= 0
ind_TL = find(GI_Date_TL(:,t));
index = [index; t];
hold on
grid on
GI_TiltLink = plot(GI_Date_TL(1:ind_TL(end),t),GI_Disp_TL(1:ind_TL(end),t));
h = gca;
h.XAxis.MinorTick = 'on';
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_TL(1,t)) ' m']);
num = num+1;
end
end
Max = max(GI_Disp_TL(1:ind_TL(end),:));
MAX = max(Max);
if MAX < 10 % mm
ylim([0 10]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-TL_ENG.png'));
if num >= 3
add(Site_ENG,sezGrafTL_ENG);
add(Site_ENG,testoTL);
saveas(GI_TiltLink,TempName);
ChartTL_ENG = Image(TempName);
ChartTL_ENG.Style = {ScaleToFit};
ChartTL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between maximum '...
'displacement data recorded by each Array during the reference time period']);
FIG_ENG = FIG_ENG+1;
ChartTL_ENG_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Displacement data refers to the 3D MEMS sensors listed below: ';
testoTL2 = Paragraph(text);
testoTL2.HAlign = 'justify';
add(Site_ENG,testoTL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - MEMS located ',num2str(abs(GI_Prof_TL(1,index(a)))),' m b.g.l.'];
testoTL2 = Paragraph(text);
add(Site_ENG,testoTL2);
end
add(Site_ENG,ChartTL_ENG);
add(Site_ENG,ChartTL_ENG_cap);
add(Site_ENG,br);
end
close(figure(34));
end
end
end
end
% ---> In Place Link
if sum(rIPL) > 0 && exist('GI_Disp_IPL','var')
if isempty(GI_Disp_IPL) == 0
if escludiIPL == 0
sezGrafIPL = Heading2('Correlazioni tra sensori In Place Link');
sezGrafIPL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoIPL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti registrati per ogni Array dai sensori MEMS 3D '...
'presenti in sito.']);
testoIPL.HAlign = 'justify';
figure(24)
ylabel('Spostamento [mm]');
set(gca,'YColor','k')
title('Correlazione fra gli spostamenti massimi di ogni Array');
xlabel('Data [gg/mm/aaaa]');
[~,colIPL] = size(GI_Disp_IPL);
num = 1;
index = [];
for t = 1:colIPL
if GI_Date_IPL(1,t) ~= 0
ind_IPL = find(GI_Date_IPL(:,t));
index = [index; t];
hold on
grid on
GI_InPlaceLink = plot(GI_Date_IPL(1:ind_IPL(end),t),GI_Disp_IPL(1:ind_IPL(end),t));
h = gca;
h.XAxis.MinorTick = 'on';
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_IPL(1,t)) ' m']);
num = num+1;
end
end
Max = max(GI_Disp_IPL(1:ind_IPL(end),:));
MAX = max(Max);
if MAX < 10 % mm
ylim([0 10]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-IPL.png'));
if num >= 3
if titleCha == 0
sezSITE = Heading1('Correlazioni fra i diversi sensori presenti in sito');
sezSITE.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site.Title = sezSITE;
spazio = Paragraph('');
add(Site,spazio);
if activeEN == 1
sezSITE_ENG = Heading1('Correlations between different sensors installed on site');
sezSITE_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site_ENG.Title = sezSITE_ENG;
spazio = Paragraph('');
add(Site_ENG,spazio);
end
titleCha = 1;
end
add(Site,sezGrafIPL);
add(Site,testoIPL);
saveas(GI_InPlaceLink,TempName);
ChartIPL = Image(TempName);
ChartIPL.Style = {ScaleToFit};
ChartIPL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati massimi di spostamento registrati da ogni '...
'singolo Array nel periodo temporale di riferimento']);
FIG = FIG+1;
ChartIPL_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Gli spostamenti sono riferiti alle misure dei sensori riportati di seguito: ';
testoIPL2 = Paragraph(text);
testoIPL2.HAlign = 'justify';
add(Site,testoIPL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - MEMS a ',num2str(abs(GI_Prof_IPL(1,index(a)))),' m da P.C.'];
testoIPL2 = Paragraph(text);
add(Site,testoIPL2);
end
add(Site,ChartIPL);
add(Site,ChartIPL_cap);
add(Site,br);
end
close(figure(24));
% --- ENG ---
if activeEN == 1
sezGrafIPL_ENG = Heading2('Correlation between Tilt Link V sensors');
sezGrafIPL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoIPL = Paragraph(['The following graph aims to highlight the presence '...
'of correlations between the most relevant displacements recorded by '...
'3D MEMS sensors for each single Array installed on site.']);
testoIPL.HAlign = 'justify';
figure(34)
ylabel('Displacement [mm]');
set(gca,'YColor','k')
title('Correlation between maximum displacements recorded by each Array');
xlabel('Date [dd/mm/yyyy]');
[~,colIPL] = size(GI_Disp_IPL);
num = 1;
index = [];
for t = 1:colIPL
if GI_Date_IPL(1,t) ~= 0
ind_IPL = find(GI_Date_IPL(:,t));
index = [index; t];
hold on
grid on
GI_InPlaceLink = plot(GI_Date_IPL(1:ind_IPL(end),t),GI_Disp_IPL(1:ind_IPL(end),t));
h = gca;
h.XAxis.MinorTick = 'on';
str(1,num) = cellstr([char(chainID(t,4)) ' ' num2str(GI_Prof_IPL(1,t)) ' m']);
num = num+1;
end
end
Max = max(GI_Disp_IPL(1:ind_IPL(end),:));
MAX = max(Max);
if MAX < 10 % mm
ylim([0 10]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
xtickangle(20);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-', char(toolrif),'-IPL_ENG.png'));
if num >= 3
add(Site_ENG,sezGrafIPL_ENG);
add(Site_ENG,testoIPL);
saveas(GI_InPlaceLink,TempName);
ChartIPL_ENG = Image(TempName);
ChartIPL_ENG.Style = {ScaleToFit};
ChartIPL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between maximum '...
'displacement data recorded by each Array during the reference time period']);
FIG_ENG = FIG_ENG+1;
ChartIPL_ENG_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Displacement data refers to the 3D MEMS sensors listed below: ';
testoIPL2 = Paragraph(text);
testoIPL2.HAlign = 'justify';
add(Site_ENG,testoIPL2);
I = size(index);
for a = 1:I(1)
text = ['- Array ',char(chainID(index(a),4)),' - MEMS located ',num2str(abs(GI_Prof_IPL(1,index(a)))),' m b.g.l.'];
testoIPL2 = Paragraph(text);
add(Site_ENG,testoIPL2);
end
add(Site_ENG,ChartIPL_ENG);
add(Site_ENG,ChartIPL_ENG_cap);
add(Site_ENG,br);
end
close(figure(34));
end
end
end
end
%---> Quadranti Tunnel Link
if sum(rTuL) > 0 && exist('GI_Q1_TuL','var')
if isempty(GI_Q1_TuL) == 0 && isempty(GI_Q2_TuL) == 0 && isempty(GI_Q3_TuL) == 0 ...
&& isempty(GI_Q4_TuL) == 0
if titleCha == 0
sezSITE = Heading1('Correlazioni fra i diversi sensori presenti in sito');
sezSITE.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site.Title = sezSITE;
spazio = Paragraph('');
add(Site,spazio);
if activeEN == 1
sezSITE_ENG = Heading1('Correlations between different sensors installed on site');
sezSITE_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
Site_ENG.Title = sezSITE_ENG;
spazio = Paragraph('');
add(Site_ENG,spazio);
end
titleCha = 1;
end
sezGrafTuL = Heading2('Correlazioni tra sensori Tunnel Link');
sezGrafTuL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTuL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra '...
'i maggiori spostamenti 2D registrati nel piano della sezione '...
'dai sensori MEMS 3D installati in sito, per ogni quadrante '...
'delle sezioni monitorate. Si ricorda che '...
'i quadranti sono definiti suddividendo la sezione in quattro '...
'zone, considerando le linee di mezzeria e mezza altezza. '...
'L''ordine dei quadranti segue il principio della circonferenza '...
'goniometrica, per cui il primo quadrante ' char(232) ' quello presente in alto '...
'a destra e gli altri sono numerati in senso antiorario. '...
'A titolo di esempio, la figura successiva identifica i 4 quadranti '...
'per una sezione tipo.']);
testoTuL.HAlign = 'justify';
img = Image(('Quadranti.png'));
img.Style = {Height('6cm'),HAlign('center')};
imgcaption = Paragraph(['Fig. ' num2str(FIG) ' - Esempio di sezione tipo con relativi quadranti']);
FIG = FIG+1;
imgcaption.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
% Quadrante 1
figure(25)
set(gca,'YColor','k')
[~,colTuL] = size(GI_Q1_TuL);
num = 1;
for t = 1:colTuL
if GI_Date_TuL(1,t) ~= 0
y1(num) = GI_Q1_TuL(1,t);
y2(num) = GI_Q2_TuL(1,t);
y3(num) = GI_Q3_TuL(1,t);
y4(num) = GI_Q4_TuL(1,t);
y5(num) = 0;
str(1,num) = chainID(t,4);
num = num+1;
end
end
y = [y1;y2;y3;y4;y5];
x = [1;2;3;4;5];
Quadranti = barh(x,y);
grid on
title('Correlazione fra gli spostamenti dei singoli quadranti');
xlabel('Spostamento [mm]');
ylabel('Quadrante [-]');
ylim([0 5]); % Con 5, metto la legenda in alto a sx (il valore 5 <20> pieno di 0)
% Stimo limiti asse X
ini1 = min(GI_Q1_TuL);
ini2 = min(GI_Q2_TuL);
ini3 = min(GI_Q3_TuL);
ini4 = min(GI_Q4_TuL);
Min = [ini1; ini2; ini3; ini4];
C = min(Min);
end1 = max(GI_Q1_TuL);
end2 = max(GI_Q2_TuL);
end3 = max(GI_Q3_TuL);
end4 = max(GI_Q4_TuL);
Max = [end1; end2; end3; end4];
B = max(Max);
A = [abs(C),abs(B)];
LIM = max(A);
POS = find(A == LIM);
if -LIM > -2.5 % mm
ini = -2.5;
else
ini = -LIM;
end
if LIM < 2.5
End = 2.5;
else
End = LIM;
end
xlim([ini End]);
if num-1 == 1 % 1 solo array
ylim([0 5]);
else
ylim([0 6]);
end
yticks(1:4);
if POS == 1 % Legenda a DX
legend(str,'Location','northeast');
else % SX
legend(str,'Location','northwest');
end
add(Site,sezGrafTuL);
add(Site,testoTuL);
add(Site,img);
add(Site,imgcaption);
TempName1 = char(strcat('Report',siteID,'-', char(toolrif),'-Quadranti.png'));
saveas(Quadranti(1),TempName1);
ChartTuL = Image(TempName1);
ChartTuL.Style = {ScaleToFit};
close(figure(25))
Quadranti_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati massimi di spostamento 2D, registrati per ogni singolo '...
'quadrante della sezione nel periodo temporale di riferimento, '...
'dai sensori dei Cir Array presenti in sito']);
FIG = FIG+1;
Quadranti_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Gli spostamenti sono riferiti alle misure dei sensori riportati di seguito: ';
testoTuL2 = Paragraph(text);
testoTuL2.HAlign = 'justify';
add(Site,testoTuL2);
text = 'Quadrante 1';
testoTuL1 = Paragraph(text);
testoTuL1.Style = {HAlign('justify'),FontSize(Font_caption),Bold(1),Color('midnightblue')};
add(Site,testoTuL1);
for a = 1:colTuL
if GI_Date_TuL(1,a) ~= 0
text1 = ['- Array ',char(chainID(a,4)),' - nodo numero ',num2str(abs(GI_Q1_Num_TuL(1,a))),''];
testoTuL2 = Paragraph(text1);
add(Site,testoTuL2);
end
end
text = 'Quadrante 2';
testoTuL3 = Paragraph(text);
testoTuL3.Style = {HAlign('justify'),FontSize(Font_caption),Bold(1),Color('midnightblue')};
add(Site,testoTuL3);
for a = 1:colTuL
if GI_Date_TuL(1,a) ~= 0
text2 = ['- Array ',char(chainID(a,4)),' - nodo numero ',num2str(abs(GI_Q2_Num_TuL(1,a))),''];
testoTuL4 = Paragraph(text2);
add(Site,testoTuL4);
end
end
text = 'Quadrante 3';
testoTuL5 = Paragraph(text);
testoTuL5.Style = {HAlign('justify'),FontSize(Font_caption),Bold(1),Color('midnightblue')};
add(Site,testoTuL5);
for a = 1:colTuL
if GI_Date_TuL(1,a) ~= 0
text3 = ['- Array ',char(chainID(a,4)),' - nodo numero ',num2str(abs(GI_Q3_Num_TuL(1,a))),''];
testoTuL6 = Paragraph(text3);
add(Site,testoTuL6);
end
end
text = 'Quadrante 4';
testoTuL7 = Paragraph(text);
testoTuL7.Style = {HAlign('justify'),FontSize(Font_caption),Bold(1),Color('midnightblue')};
add(Site,testoTuL7);
for a = 1:colTuL
if GI_Date_TuL(1,a) ~= 0
text4 = ['- Array ',char(chainID(a,4)),' - nodo numero ',num2str(abs(GI_Q4_Num_TuL(1,a))),''];
testoTuL8 = Paragraph(text4);
add(Site,testoTuL8);
end
end
add(Site,ChartTuL);
add(Site,Quadranti_cap);
% --- ENG ---
if activeEN == 1
sezGrafTuL_ENG = Heading2('Correlation between Tunnel Link sensors');
sezGrafTuL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTuL = Paragraph(['The following graph aims to highlight any correlation between '...
'highest 2D displacement values recorded by 3D MEMS for each single Cir Array installed on-site. '...
'Displacements are compared according to the corresponding sector, defined by dividing the monitored '...
'section in four separated areas that are numbered as explained in the following figure. ']);
testoTuL.HAlign = 'justify';
img = Image(('Quadranti.png'));
img.Style = {Height('6cm'),HAlign('center')};
imgcaption = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Sectors numbering in a tunnel section']);
FIG_ENG = FIG_ENG+1;
imgcaption.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
% Quadrante 1
figure(35)
set(gca,'YColor','k')
[~,colTuL] = size(GI_Q1_TuL);
num = 1;
for t = 1:colTuL
if GI_Date_TuL(1,t) ~= 0
y1(num) = GI_Q1_TuL(1,t);
y2(num) = GI_Q2_TuL(1,t);
y3(num) = GI_Q3_TuL(1,t);
y4(num) = GI_Q4_TuL(1,t);
y5(num) = 0;
str(1,num) = chainID(t,4);
num = num+1;
end
end
y = [y1;y2;y3;y4;y5];
x = [1;2;3;4;5];
Quadranti = barh(x,y);
grid on
title('Correlation between displacements recorded in different sectors');
xlabel('Displacement [mm]');
ylabel('Sector [-]');
ylim([0 5]); % Con 5, metto la legenda in alto a sx (il valore 5 <20> pieno di 0)
% Stimo limiti asse X
ini1 = min(GI_Q1_TuL);
ini2 = min(GI_Q2_TuL);
ini3 = min(GI_Q3_TuL);
ini4 = min(GI_Q4_TuL);
Min = [ini1; ini2; ini3; ini4];
C = min(Min);
end1 = max(GI_Q1_TuL);
end2 = max(GI_Q2_TuL);
end3 = max(GI_Q3_TuL);
end4 = max(GI_Q4_TuL);
Max = [end1; end2; end3; end4];
B = max(Max);
A = [abs(C),abs(B)];
LIM = max(A);
POS = find(A == LIM);
if -LIM > -2.5 % mm
ini = -2.5;
else
ini = -LIM;
end
if LIM < 2.5
End = 2.5;
else
End = LIM;
end
xlim([ini End]);
if num-1 == 1 % 1 solo array
ylim([0 5]);
else
ylim([0 6]);
end
yticks(1:4);
if POS == 1 % Legenda a DX
legend(str,'Location','northeast');
else % SX
legend(str,'Location','northwest');
end
add(Site_ENG,sezGrafTuL_ENG);
add(Site_ENG,testoTuL);
add(Site_ENG,img);
add(Site_ENG,imgcaption);
TempName1 = char(strcat('Report',siteID,'-', char(toolrif),'-Quadranti_ENG.png'));
saveas(Quadranti(1),TempName1);
ChartTuL_ENG = Image(TempName1);
ChartTuL_ENG.Style = {ScaleToFit};
close(figure(35))
Quadranti_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison '...
'between highest 2D displacement values '...
'recorded by each single Array in the corresponding '...
'sector of the monitored tunnel section '...
'during the reference time period']);
FIG_ENG = FIG_ENG+1;
Quadranti_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
text = 'Displacement data refer to the sensors listed below: ';
testoTuL2 = Paragraph(text);
testoTuL2.HAlign = 'justify';
add(Site_ENG,testoTuL2);
text = 'Sector 1';
testoTuL1 = Paragraph(text);
testoTuL1.Style = {HAlign('justify'),FontSize(Font_caption),Bold(1),Color('midnightblue')};
add(Site_ENG,testoTuL1);
for a = 1:colTuL
if GI_Date_TuL(1,a) ~= 0
text1 = ['- Array ',char(chainID(a,4)),' - node ',num2str(abs(GI_Q1_Num_TuL(1,a))),''];
testoTuL2 = Paragraph(text1);
add(Site_ENG,testoTuL2);
end
end
text = 'Sector 2';
testoTuL3 = Paragraph(text);
testoTuL3.Style = {HAlign('justify'),FontSize(Font_caption),Bold(1),Color('midnightblue')};
add(Site_ENG,testoTuL3);
for a = 1:colTuL
if GI_Date_TuL(1,a) ~= 0
text2 = ['- Array ',char(chainID(a,4)),' - node ',num2str(abs(GI_Q2_Num_TuL(1,a))),''];
testoTuL4 = Paragraph(text2);
add(Site_ENG,testoTuL4);
end
end
text = 'Sector 3';
testoTuL5 = Paragraph(text);
testoTuL5.Style = {HAlign('justify'),FontSize(Font_caption),Bold(1),Color('midnightblue')};
add(Site_ENG,testoTuL5);
for a = 1:colTuL
if GI_Date_TuL(1,a) ~= 0
text3 = ['- Array ',char(chainID(a,4)),' - node ',num2str(abs(GI_Q3_Num_TuL(1,a))),''];
testoTuL6 = Paragraph(text3);
add(Site_ENG,testoTuL6);
end
end
text = 'Sector 4';
testoTuL7 = Paragraph(text);
testoTuL7.Style = {HAlign('justify'),FontSize(Font_caption),Bold(1),Color('midnightblue')};
add(Site_ENG,testoTuL7);
for a = 1:colTuL
if GI_Date_TuL(1,a) ~= 0
text4 = ['- Array ',char(chainID(a,4)),' - node ',num2str(abs(GI_Q4_Num_TuL(1,a))),''];
testoTuL8 = Paragraph(text4);
add(Site_ENG,testoTuL8);
end
end
add(Site_ENG,ChartTuL_ENG);
add(Site_ENG,Quadranti_ENG_cap);
end
end
end
% ---> Confronti variazioni segmenti Stella
if sum(rTuL) > 0 && exist('GI_Seg_TuL','var')
if isempty(GI_Seg_TuL) == 0
testoStar = Paragraph(['Il grafico seguente confronta nella medesima '...
'rappresentazione le variazioni di lunghezza dei segmenti di convergenza '...
'delle sezioni monitorate da ciascun Cir Array. Nel rispettivo capitolo '...
'di ogni catena ' char(232) ' riportata la stella di convergenza per ogni '...
'sezione.']);
testoStar.HAlign = 'justify';
figure(26)
set(gca,'YColor','k')
s = 1;
num = 1;
[~,colTuL] = size(GI_Date_TuL);
for t = 1:colTuL
if GI_Date_TuL(1,t) ~= 0 % Esistono dati per quell'array
% Segmento 1
s1(num) = GI_Seg_TuL(1,s);
s = s+1;
% Segmento 2
if GI_NumSeg_TuL(t,1) > 1
s2(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s2(num) = 0;
end
% Segmento 3
if GI_NumSeg_TuL(t,1) > 2
s3(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s3(num) = 0;
end
% Segmento 4
if GI_NumSeg_TuL(t,1) > 3
s4(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s4(num) = 0;
end
% Segmento 5
if GI_NumSeg_TuL(t,1) > 4
s5(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s5(num) = 0;
end
% Segmento 6
if GI_NumSeg_TuL(t,1) > 5
s6(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s6(num) = 0;
end
% Segmento 7
if GI_NumSeg_TuL(t,1) > 6
s7(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s7(num) = 0;
end
str(1,num) = chainID(t,4);
num = num+1;
end
end
y = [s1;s2;s3;s4;s5;s6;s7];
x = [1;2;3;4;5;6;7];
yticklabels({'S1','S2','S3','S4','S5','S6','S7'})
Stella = barh(x,y);
grid on
title('Correlazione fra le variazioni di lunghezza dei segmenti di convergenza');
xlabel('Spostamento [mm]');
ylabel('Segmento [-]');
% Stimo limiti asse X
ini = min(y);
ini = min(ini);
End = max(y);
End = max(End);
A = [abs(ini),End];
RIF = max(A);
ind = find(A == RIF);
if ind == 1
legend(str,'Location','northeast');
else
legend(str,'Location','northwest');
end
if -RIF > -2.5 % mm
ini = -2.5;
else
ini = -RIF;
end
if RIF < 2.5
End = 2.5;
else
End = RIF;
end
xlim([ini End]);
yticks(1:7);
if num-1 == 1 % Numero Array
ylim([0 7]);
else
ylim([0 8]);
end
add(Site,testoStar);
TempName1 = char(strcat('Report',siteID,'-', char(toolrif),'-Stella.png'));
saveas(Stella(1),TempName1);
ChartStella = Image(TempName1);
ChartStella.Style = {ScaleToFit};
add(Site,ChartStella);
close(figure(26))
Quadranti_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra le variazioni di lunghezza dei segmenti di convergenza, registrati '...
'per le sezioni monitorate nel periodo temporale di riferimento, '...
'dai sensori degli Array presenti in sito']);
FIG = FIG+1;
Quadranti_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
add(Site,Quadranti_cap);
add(Site,br);
% --- ENG ---
if activeEN == 1
testoStar = Paragraph(['The following graph aims to compare the length variation of '...
'each convergence segment referred to tunnel sections monitored with a Cir Array. '...
'Please refer to the corresponding Array section of this Report for additional'...
'information regarding each specific convergence star.']);
testoStar.HAlign = 'justify';
figure(36)
set(gca,'YColor','k')
s = 1;
num = 1;
[~,colTuL] = size(GI_Date_TuL);
for t = 1:colTuL
if GI_Date_TuL(1,t) ~= 0 % Esistono dati per quell'array
% Segmento 1
s1(num) = GI_Seg_TuL(1,s);
s = s+1;
% Segmento 2
if GI_NumSeg_TuL(t,1) > 1
s2(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s2(num) = 0;
end
% Segmento 3
if GI_NumSeg_TuL(t,1) > 2
s3(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s3(num) = 0;
end
% Segmento 4
if GI_NumSeg_TuL(t,1) > 3
s4(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s4(num) = 0;
end
% Segmento 5
if GI_NumSeg_TuL(t,1) > 4
s5(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s5(num) = 0;
end
% Segmento 6
if GI_NumSeg_TuL(t,1) > 5
s6(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s6(num) = 0;
end
% Segmento 7
if GI_NumSeg_TuL(t,1) > 6
s7(num) = GI_Seg_TuL(1,s);
s = s+1;
else
s7(num) = 0;
end
str(1,num) = chainID(t,4);
num = num+1;
end
end
y = [s1;s2;s3;s4;s5;s6;s7];
x = [1;2;3;4;5;6;7];
yticklabels({'S1','S2','S3','S4','S5','S6','S7'})
Stella = barh(x,y);
grid on
title('Correlation between convergence segments length variation');
xlabel('Displacement [mm]');
ylabel('Segment number [-]');
% Stimo limiti asse X
ini = min(y);
ini = min(ini);
End = max(y);
End = max(End);
A = [abs(ini),End];
RIF = max(A);
ind = find(A == RIF);
if ind == 1
legend(str,'Location','northeast');
else
legend(str,'Location','northwest');
end
if -RIF > -2.5 % mm
ini = -2.5;
else
ini = -RIF;
end
if RIF < 2.5
End = 2.5;
else
End = RIF;
end
xlim([ini End]);
yticks(1:7);
if num-1 == 1 % Numero Array
ylim([0 7]);
else
ylim([0 8]);
end
add(Site_ENG,testoStar);
TempName1 = char(strcat('Report',siteID,'-', char(toolrif),'-Stella_ENG.png'));
saveas(Stella(1),TempName1);
ChartStella_ENG = Image(TempName1);
ChartStella_ENG.Style = {ScaleToFit};
add(Site_ENG,ChartStella_ENG);
close(figure(36))
Quadranti_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison '...
'between length variations of each convergence segment, '...
'recorded in the corresponding tunnel section by each single Array '...
'during the reference time period']);
FIG_ENG = FIG_ENG+1;
Quadranti_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
add(Site_ENG,Quadranti_ENG_cap);
add(Site_ENG,br);
end
end
end
% ---> Grafici spostamento in calotta PreConv vs Cir
if sum(rTuL) > 0 && exist('GI_Z_TuL','var') && sum(rPCL) > 0 && exist('GI_Z_PCL','var')
if isempty(GI_Z_TuL) == 0 && isempty(GI_Z_PCL) == 0
sezGrafTuLvsPCL = Heading2('Correlazioni tra PreConv Array e Cir Array');
sezGrafTuLvsPCL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTuLvsPCL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra gli spostamenti '...
'locali registrati in calotta dal PreConv Array e dai corrispondenti '...
'Cir Array, con riferimento ai sensori installati nei medesimi punti '...
'(o in quelli pi' char(249) ' prossimi tra di loro).']);
testoTuLvsPCL.HAlign = 'justify';
% Cerco eventuali correlazioni con Cir Array
NomeFile = strcat('Report',siteID,'-PCLvsTuL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
num = 1;
sen = 1;
SensoriTuL = zeros(1,1);
SensoriPCL = zeros(1,1);
CatenaTuL = cell(1,1);
CatenaPCL = cell(1,1);
colCIR = 0;
while AAA < rF % A un PreConv possono competere pi<70> Cir
PCL = 0;
Cir = 0;
check1 = Filetesto(AAA,1);
if check1 == 99999 % Non ci sono PreConv Array o non ci sono Cir
break
else
check2 = Filetesto(AAA+1,1);
for nn = 1:rAR
chain = char(chainID(nn,4));
if check1 == str2num(chain(end-2:end))
PCL = nn;
NodoPCL = Filetesto(AAA+2,1);
SensoriPCL(sen,1) = NodoPCL;
CatenaPCL(sen,1) = chainID(nn,4);
end
if check2 == str2num(chain(end-2:end))
Cir = nn;
NodoTuL = Filetesto(AAA+3,1);
SensoriTuL(sen,1) = NodoTuL;
CatenaTuL(sen,1) = chainID(nn,4);
colCIR = colCIR+1;
end
if PCL > 0 && Cir > 0
figure(27)
ylabel('Spostamento [mm]');
xlabel('Data [gg/mm/aaaa]');
set(gca,'YColor','k')
title('Correlazione fra gli spostamenti corrispondenti');
grid on
hold on
dim1 = find(GI_Z_PCL(:,PCL));
dim2 = find(GI_Z_TuL(:,colCIR));
if isempty(dim1) == 0 && isempty(dim2) == 0
plot(GI_Date_PCL(1:dim1(end),PCL),GI_Z_PCL(1:dim1(end),PCL));
GI_TuLvsPCL = plot(GI_Date_TuL(1:dim2(end),Cir),GI_Z_TuL(1:dim2(end),colCIR));
MIN1 = min(GI_Z_PCL(:,PCL));
MIN2 = min(GI_Z_TuL(:,colCIR));
MIN = min(MIN1,MIN2);
MAX1 = max(GI_Z_PCL(:,PCL));
MAX2 = max(GI_Z_TuL(:,colCIR));
MAX = max(MAX1,MAX2);
if MAX < 5 && MIN > -5 % mm
ylim([-5 5]);
elseif MAX < 5
ylim([MIN-1 5]);
elseif MIN > -5
ylim([-5 MAX+1]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
h = gca;
h.XAxis.MinorTick = 'on';
xtickangle(20);
str(1,1) = cellstr([char(CatenaPCL(sen,1)) ' Nodo ' num2str(NodoPCL) '']);
str(1,2) = cellstr([char(CatenaTuL(sen,1)) ' Nodo ' num2str(NodoTuL) '']);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-PCLvsTuL',num2str(num),'.png'));
saveas(GI_TuLvsPCL,TempName);
num = num+1;
end
close(figure(27));
sen = sen+1;
AAA = AAA+4;
break
end
end
end
end
num = num-1;
if num ~= 0 % Non ci sono legami
add(Site,sezGrafTuLvsPCL);
add(Site,testoTuLvsPCL);
if num == 1
TempName = char(strcat('Report',siteID,'-PCLvsTuL',num2str(num),'.png'));
Chart1 = Image(TempName);
Chart1.Style = {ScaleToFit};
add(Site,Chart1);
else
n = 1;
while n <= num
TempName = char(strcat('Report',siteID,'-PCLvsTuL',num2str(n),'.png'));
Chart1 = Image(TempName);
Chart1.Style = {Height('7cm')};
if n+1 <= num
TempName = char(strcat('Report',siteID,'-PCLvsTuL',num2str(n+1),'.png'));
Chart2 = Image(TempName);
Chart2.Style = {Height('7cm')};
lot = Table({Chart1, Chart2});
lot.Style = {ResizeToFitContents(false), Width('100%')};
n = n+2;
add(Site,lot);
else
n = n+1;
add(Site,Chart1);
end
end
end
ChartPCLvsTuL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'tra i dati di spostamento locale registrati dal nodo '...
'del Cir Array installato in calotta ed il corrispondente '...
'sensore PreConv Link pi' char(249) ' in prossimit' char(224) ', nel '...
'periodo temporale di riferimento']);
FIG = FIG+1;
ChartPCLvsTuL_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
add(Site,ChartPCLvsTuL_cap);
text = 'Gli spostamenti sono riferiti alle misure dei sensori riportati di seguito: ';
testoPCLvsTuL2 = Paragraph(text);
testoPCLvsTuL2.HAlign = 'justify';
add(Site,testoPCLvsTuL2);
I = size(SensoriPCL);
for a = 1:I(1)
textPC = ['- PreConv Array ' char(CatenaPCL(a,1)) ' - Nodo numero ' num2str(SensoriPCL(a,1)) ';'];
textCA = ['- Cir Array ' char(CatenaTuL(a,1)),' - Nodo numero ' num2str(SensoriTuL(a,1)) '.'];
spazio = Paragraph('');
testoPCLvsTuL2 = Paragraph(textPC);
testoPCLvsTuL3 = Paragraph(textCA);
add(Site,testoPCLvsTuL2);
add(Site,testoPCLvsTuL3);
add(Site,spazio);
end
add(Site,br);
end
% --- ENG ---
if activeEN == 1
sezGrafTuLvsPCL_ENG = Heading2('Correlation between PreConv Array and Cir Array');
sezGrafTuLvsPCL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTuLvsPCL = Paragraph(['The following graph aims to highlight any correlation '...
'between local displacements recorded by PreConv Array and Cir Array sensors. The comparison '...
'takes into account two nodes, one for each Array, installed approximately '...
'in the same place of the upper part of the monitored section.']);
testoTuLvsPCL.HAlign = 'justify';
% Cerco eventuali correlazioni con Cir Array
NomeFile = strcat('Report',siteID,'-PCLvsTuL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
num = 1;
sen = 1;
SensoriTuL = zeros(1,1);
SensoriPCL = zeros(1,1);
CatenaTuL = cell(1,1);
CatenaPCL = cell(1,1);
colCIR = 0;
while AAA < rF % A un PreConv possono competere pi<70> Cir
PCL = 0;
Cir = 0;
check1 = Filetesto(AAA,1);
if check1 == 99999 % Non ci sono PreConv Array o non ci sono Cir
break
else
check2 = Filetesto(AAA+1,1);
for nn = 1:rAR
chain = char(chainID(nn,4));
if check1 == str2num(chain(end-2:end))
PCL = nn;
NodoPCL = Filetesto(AAA+2,1);
SensoriPCL(sen,1) = NodoPCL;
CatenaPCL(sen,1) = chainID(nn,4);
end
if check2 == str2num(chain(end-2:end))
Cir = nn;
NodoTuL = Filetesto(AAA+3,1);
SensoriTuL(sen,1) = NodoTuL;
CatenaTuL(sen,1) = chainID(nn,4);
colCIR = colCIR+1;
end
if PCL > 0 && Cir > 0
figure(37)
ylabel('Displacement [mm]');
xlabel('Date [dd/mm/yyyy]');
set(gca,'YColor','k')
title('Correlation between corresponding sensors');
grid on
hold on
dim1 = find(GI_Z_PCL(:,PCL));
dim2 = find(GI_Z_TuL(:,colCIR));
if isempty(dim1) == 0 && isempty(dim2) == 0
plot(GI_Date_PCL(1:dim1(end),PCL),GI_Z_PCL(1:dim1(end),PCL));
GI_TuLvsPCL = plot(GI_Date_TuL(1:dim2(end),Cir),GI_Z_TuL(1:dim2(end),colCIR));
MIN1 = min(GI_Z_PCL(:,PCL));
MIN2 = min(GI_Z_TuL(:,colCIR));
MIN = min(MIN1,MIN2);
MAX1 = max(GI_Z_PCL(:,PCL));
MAX2 = max(GI_Z_TuL(:,colCIR));
MAX = max(MAX1,MAX2);
if MAX < 5 && MIN > -5 % mm
ylim([-5 5]);
elseif MAX < 5
ylim([MIN-1 5]);
elseif MIN > -5
ylim([-5 MAX+1]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
h = gca;
h.XAxis.MinorTick = 'on';
xtickangle(20);
str(1,1) = cellstr([char(CatenaPCL(sen,1)) ' Node ' num2str(NodoPCL) '']);
str(1,2) = cellstr([char(CatenaTuL(sen,1)) ' Node ' num2str(NodoTuL) '']);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-PCLvsTuL',num2str(num),'_ENG.png'));
saveas(GI_TuLvsPCL,TempName);
num = num+1;
end
close(figure(37));
sen = sen+1;
AAA = AAA+4;
break
end
end
end
end
num = num-1;
if num ~= 0 % Non ci sono legami
add(Site_ENG,sezGrafTuLvsPCL_ENG);
add(Site_ENG,testoTuLvsPCL);
if num == 1
TempName = char(strcat('Report',siteID,'-PCLvsTuL',num2str(num),'_ENG.png'));
Chart1_ENG = Image(TempName);
Chart1_ENG.Style = {ScaleToFit};
add(Site_ENG,Chart1_ENG);
else
n = 1;
while n <= num
TempName = char(strcat('Report',siteID,'-PCLvsTuL',num2str(n),'_ENG.png'));
Chart1_ENG = Image(TempName);
Chart1_ENG.Style = {Height('7cm')};
if n+1 <= num
TempName = char(strcat('Report',siteID,'-PCLvsTuL',num2str(n+1),'_ENG.png'));
Chart2_ENG = Image(TempName);
Chart2_ENG.Style = {Height('7cm')};
lot = Table({Chart1_ENG, Chart2_ENG});
lot.Style = {ResizeToFitContents(false), Width('100%')};
n = n+2;
add(Site_ENG,lot);
else
n = n+1;
add(Site_ENG,Chart1_ENG);
end
end
end
ChartPCLvsTuL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison between '...
'local displacements recorded during the reference time period by the '...
'Cir Array sensor installed on the upper part of '...
'the tunnel section, and the corresponding PreConv Array sensor']);
FIG_ENG = FIG_ENG+1;
ChartPCLvsTuL_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
add(Site_ENG,ChartPCLvsTuL_ENG_cap);
text = 'Dsiplacement data refer to the sensors listed below: ';
testoPCLvsTuL2 = Paragraph(text);
testoPCLvsTuL2.HAlign = 'justify';
add(Site,testoPCLvsTuL2);
I = size(SensoriPCL);
for a = 1:I(1)
textPC = ['- PreConv Array ' char(CatenaPCL(a,1)) ' - Node ' num2str(SensoriPCL(a,1)) ';'];
textCA = ['- Cir Array ' char(CatenaTuL(a,1)),' - Node ' num2str(SensoriTuL(a,1)) '.'];
spazio = Paragraph('');
testoPCLvsTuL2 = Paragraph(textPC);
testoPCLvsTuL3 = Paragraph(textCA);
add(Site_ENG,testoPCLvsTuL2);
add(Site_ENG,testoPCLvsTuL3);
add(Site_ENG,spazio);
end
add(Site_ENG,br);
end
end
end
end
% ---> Grafici spostamento Cir vs Rad
if sum(rRaL) > 0 && exist('GI_dS_RL_TuL','var') && sum(rRaL) > 0 && exist('GI_dS_TuL_RL','var')
if isempty(GI_dS_RL_TuL) == 0 && isempty(GI_dS_TuL_RL) == 0
sezGrafTuLvsRL = Heading2('Correlazioni tra Cir Array e Rad Array');
sezGrafTuLvsRL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTuLvsRL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra l''andamento nel tempo '...
'della risultante degli spostamenti 2D differenziali locali registrati '...
'dal sensore Radial Link prossimo alla sezione monitorata e dal '...
'corrispondente sensore Tunnel Link.']);
testoTuLvsRL.HAlign = 'justify';
% Cerco eventuali correlazioni con Cir Array
NomeFile = strcat('Report',siteID,'-TuLvsRL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
num = 1;
sen = 1;
SensoriTuL = zeros(1,1);
SensoriRL = zeros(1,1);
CatenaTuL = cell(1,1);
CatenaRL = cell(1,1);
colCIR = 0;
while AAA < rF
Rad = 0;
Cir = 0;
check1 = Filetesto(AAA,1);
if check1 == 99999 % Non ci sono Rad Array o non ci sono Cir
break
else
check2 = Filetesto(AAA+1,1);
for nn = 1:rAR
chain = char(chainID(nn,4));
if check1 == str2num(chain(end-2:end)) % Il primo deve sempre essere il Cir
Cir = nn;
NodoTuL = Filetesto(AAA+2,1);
SensoriTuL(sen,1) = NodoTuL;
CatenaTuL(sen,1) = chainID(nn,4);
colCIR = colCIR+1;
end
if check2 == str2num(chain(end-2:end))
Rad = nn;
NodoRL = Filetesto(AAA+3,1);
SensoriRL(sen,1) = NodoRL;
CatenaRL(sen,1) = chainID(nn,4);
end
if Rad > 0 && Cir > 0
figure(28)
ylabel('Spostamento [mm]');
xlabel('Data [gg/mm/aaaa]');
set(gca,'YColor','k')
title('Correlazione fra gli spostamenti corrispondenti');
grid on
hold on
dim1 = find(GI_dS_RL_TuL(:,Rad));
dim2 = find(GI_dS_TuL_RL(:,colCIR));
if isempty(dim1) == 0 && isempty(dim2) == 0
plot(GI_Date_Rad(1:dim1(end),Rad),GI_dS_RL_TuL(1:dim1(end),Rad));
GI_TuLvsRL = plot(GI_Date_TuL(1:dim2(end),Cir),GI_dS_TuL_RL(1:dim2(end),colCIR));
MAX1 = max(GI_dS_RL_TuL(:,Rad));
MAX2 = max(GI_dS_TuL_RL(:,colCIR));
MAX = max(MAX1,MAX2);
if MAX < 5 % mm
ylim([0 5]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
h = gca;
h.XAxis.MinorTick = 'on';
xtickangle(20);
str(1,1) = cellstr([char(CatenaTuL(sen,1)) ' Nodo ' num2str(NodoTuL) '']);
str(1,2) = cellstr([char(CatenaRL(sen,1)) ' Nodo ' num2str(NodoRL) '']);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-TuLvsRL',num2str(num),'.png'));
saveas(GI_TuLvsRL,TempName);
num = num+1;
end
close(figure(28));
sen = sen+1;
AAA = AAA+4;
break
end
end
end
end
num = num-1;
if num ~= 0 % Non ci sono legami
add(Site,sezGrafTuLvsRL);
add(Site,testoTuLvsRL);
if num == 1
TempName = char(strcat('Report',siteID,'-TuLvsRL',num2str(num),'.png'));
Chart1 = Image(TempName);
Chart1.Style = {ScaleToFit};
add(Site,Chart1);
else
n = 1;
while n <= num
TempName = char(strcat('Report',siteID,'-TuLvsRL',num2str(n),'.png'));
Chart1 = Image(TempName);
Chart1.Style = {Height('7cm')};
if n+1 <= num
TempName = char(strcat('Report',siteID,'-TuLvsRL',num2str(n+1),'.png'));
Chart2 = Image(TempName);
Chart2.Style = {Height('7cm')};
lot = Table({Chart1, Chart2});
lot.Style = {ResizeToFitContents(false), Width('100%')};
n = n+2;
add(Site,lot);
else
n = n+1;
add(Site,Chart1);
end
end
end
ChartTuLvsRL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'relativo al periodo temporale di riferimento, tra i dati di '...
'spostamento locale 2D registrati dal nodo '...
'del Cir Array installato nella sezione ed il corrispondente '...
'sensore Radial Link pi' char(249) ' in prossimit' char(224) '']);
FIG = FIG+1;
ChartTuLvsRL_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
add(Site,ChartTuLvsRL_cap);
text = 'Gli spostamenti sono riferiti alle misure dei sensori riportati di seguito: ';
testoTuL2vsRL = Paragraph(text);
testoTuL2vsRL.HAlign = 'justify';
add(Site,testoTuL2vsRL);
I = size(SensoriRL);
for a = 1:I(1)
text = ['- Rad Array ' char(CatenaRL(a,1)) ' - Nodo numero ' num2str(SensoriRL(a,1)) ...
', Cir Array ' char(CatenaTuL(a,1)),' - Nodo numero ' num2str(SensoriTuL(a,1)) ''];
testoTuL2vsRL = Paragraph(text);
add(Site,testoTuL2vsRL);
end
add(Site,br);
end
% --- ENG ---
if activeEN == 1
sezGrafTuLvsRL_ENG = Heading2('Correlation between Cir Array and Rad Array');
sezGrafTuLvsRL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoTuLvsRL = Paragraph(['The following graph aims to highlight the presence of '...
'correlations between 2D local differential displacements recorded by the Radial Link '...
'located closer to the monitored section, and the corresponding Tunnel Link sensor.']);
testoTuLvsRL.HAlign = 'justify';
% Cerco eventuali correlazioni con Cir Array
NomeFile = strcat('Report',siteID,'-TuLvsRL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
num = 1;
sen = 1;
SensoriTuL = zeros(1,1);
SensoriRL = zeros(1,1);
CatenaTuL = cell(1,1);
CatenaRL = cell(1,1);
colCIR = 0;
while AAA < rF
Rad = 0;
Cir = 0;
check1 = Filetesto(AAA,1);
if check1 == 99999 % Non ci sono Rad Array o non ci sono Cir
break
else
check2 = Filetesto(AAA+1,1);
for nn = 1:rAR
chain = char(chainID(nn,4));
if check1 == str2num(chain(end-2:end)) % Il primo deve sempre essere il Cir
Cir = nn;
NodoTuL = Filetesto(AAA+2,1);
SensoriTuL(sen,1) = NodoTuL;
CatenaTuL(sen,1) = chainID(nn,4);
colCIR = colCIR+1;
end
if check2 == str2num(chain(end-2:end))
Rad = nn;
NodoRL = Filetesto(AAA+3,1);
SensoriRL(sen,1) = NodoRL;
CatenaRL(sen,1) = chainID(nn,4);
end
if Rad > 0 && Cir > 0
figure(38)
ylabel('Displacement [mm]');
xlabel('Date [dd/mm/yyyy]');
set(gca,'YColor','k')
title('Correlation between corresponding sensors');
grid on
hold on
dim1 = find(GI_dS_RL_TuL(:,Rad));
dim2 = find(GI_dS_TuL_RL(:,colCIR));
if isempty(dim1) == 0 && isempty(dim2) == 0
plot(GI_Date_Rad(1:dim1(end),Rad),GI_dS_RL_TuL(1:dim1(end),Rad));
GI_TuLvsRL = plot(GI_Date_TuL(1:dim2(end),Cir),GI_dS_TuL_RL(1:dim2(end),colCIR));
MAX1 = max(GI_dS_RL_TuL(:,Rad));
MAX2 = max(GI_dS_TuL_RL(:,colCIR));
MAX = max(MAX1,MAX2);
if MAX < 5 % mm
ylim([0 5]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
h = gca;
h.XAxis.MinorTick = 'on';
xtickangle(20);
str(1,1) = cellstr([char(CatenaTuL(sen,1)) ' Node ' num2str(NodoTuL) '']);
str(1,2) = cellstr([char(CatenaRL(sen,1)) ' Node ' num2str(NodoRL) '']);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-TuLvsRL',num2str(num),'_ENG.png'));
saveas(GI_TuLvsRL,TempName);
num = num+1;
end
close(figure(38));
sen = sen+1;
AAA = AAA+4;
break
end
end
end
end
num = num-1;
if num ~= 0 % Non ci sono legami
add(Site_ENG,sezGrafTuLvsRL_ENG);
add(Site_ENG,testoTuLvsRL);
if num == 1
TempName = char(strcat('Report',siteID,'-TuLvsRL',num2str(num),'_ENG.png'));
Chart1_ENG = Image(TempName);
Chart1_ENG.Style = {ScaleToFit};
add(Site_ENG,Chart1_ENG);
else
n = 1;
while n <= num
TempName = char(strcat('Report',siteID,'-TuLvsRL',num2str(n),'_ENG.png'));
Chart1_ENG = Image(TempName);
Chart1_ENG.Style = {Height('7cm')};
if n+1 <= num
TempName = char(strcat('Report',siteID,'-TuLvsRL',num2str(n+1),'_ENG.png'));
Chart2_ENG = Image(TempName);
Chart2_ENG.Style = {Height('7cm')};
lot = Table({Chart1_ENG, Chart2_ENG});
lot.Style = {ResizeToFitContents(false), Width('100%')};
n = n+2;
add(Site_ENG,lot);
else
n = n+1;
add(Site_ENG,Chart1_ENG);
end
end
end
ChartTuLvsRL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison '...
'between 2D local displacement data recorded by the Radial Link sensor closer to '...
'the monitored section, and the corresponding Tunnel Link sensor']);
FIG_ENG = FIG_ENG+1;
ChartTuLvsRL_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
add(Site_ENG,ChartTuLvsRL_ENG_cap);
text = 'Displacement data refer to the sensors listed below: ';
testoTuL2vsRL = Paragraph(text);
testoTuL2vsRL.HAlign = 'justify';
add(Site_ENG,testoTuL2vsRL);
I = size(SensoriRL);
for a = 1:I(1)
text = ['- Rad Array ' char(CatenaRL(a,1)) ' - Node ' num2str(SensoriRL(a,1)) ...
', Cir Array ' char(CatenaTuL(a,1)),' - Node ' num2str(SensoriTuL(a,1)) ''];
testoTuL2vsRL = Paragraph(text);
add(Site_ENG,testoTuL2vsRL);
end
add(Site_ENG,br);
end
end
end
end
% ---> Grafici spostamento Rad vs MPB
if sum(rRaL) > 0 && exist('GI_dS_RL_MPB','var') && sum(rMPBEL) > 0 && exist('GI_dS_MPB_RL','var')
if isempty(GI_dS_RL_MPB) == 0 && isempty(GI_dS_MPB_RL) == 0
sezGrafMPBvsRL = Heading2('Correlazioni tra Rad Array ed estensimetro multibase');
sezGrafMPBvsRL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoMPBvsRL = Paragraph(['Il grafico seguente ha l''obiettivo di '...
'evidenziare eventuali correlazioni presenti tra l''andamento nel tempo '...
'della risultante degli spostamenti 3D differenziali locali registrati '...
'dal sensore Radial Link e la relativa deformazione radiale misurata '...
'dalla base pi' char(250) ' lunga dell''estensimetro multibase.']);
testoMPBvsRL.HAlign = 'justify';
% Cerco eventuali correlazioni con Estensimetro multibase
NomeFile = strcat('Report',siteID,'-RLvsMPBEL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
num = 1;
sen = 1;
SensoriRL = zeros(1,1);
SensoriMPB = zeros(1,1);
CatenaRL = cell(1,1);
CatenaMPB = cell(1,1);
colMPB = 0;
while AAA < rF
Rad = 0;
MPB = 0;
check1 = Filetesto(AAA,1);
if check1 == 99999 % Non ci sono Rad Array o estensimetri multibase
break
else
check2 = Filetesto(AAA+1,1);
for nn = 1:rAR
chain = char(chainID(nn,4));
if check1 == str2num(chain(end-2:end)) % Il primo deve sempre essere il Rad
Rad = nn;
NodoRL = Filetesto(AAA+2,1);
SensoriRL(sen,1) = NodoRL;
CatenaRL(sen,1) = chainID(nn,4);
end
if check2 == str2num(chain(end-2:end))
MPB = nn;
NodoMPB = Filetesto(AAA+3,1);
SensoriMPB(sen,1) = NodoMPB;
CatenaMPB(sen,1) = chainID(nn,4);
colMPB = colMPB+1;
end
if Rad > 0 && MPB > 0
figure(29)
ylabel('Spostamento [mm]');
xlabel('Data [gg/mm/aaaa]');
set(gca,'YColor','k')
title('Correlazione fra gli spostamenti corrispondenti');
grid on
hold on
dim1 = find(GI_dS_RL_MPB(:,Rad));
dim2 = find(GI_dS_MPB_RL(:,colMPB));
if isempty(dim1) == 0 && isempty(dim2) == 0
plot(GI_Date_Rad(1:dim1(end),Rad),GI_dS_RL_MPB(1:dim1(end),Rad));
GI_MPBvsRL = plot(GI_Date_MPB(1:dim2(end),MPB),GI_dS_MPB_RL(1:dim2(end),colMPB));
MAX1 = max(GI_dS_RL_MPB(:,Rad));
MAX2 = max(GI_dS_MPB_RL(:,colMPB));
MAX = max(MAX1,MAX2);
if MAX < 5 % mm
ylim([-5 5]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
h = gca;
h.XAxis.MinorTick = 'on';
xtickangle(20);
str(1,1) = cellstr([char(CatenaRL(sen,1)) ' Nodo ' num2str(NodoRL) '']);
str(1,2) = cellstr([char(CatenaMPB(sen,1)) ' Estensimetro ' num2str(NodoMPB) '']);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-RLvsMPB',num2str(num),'.png'));
saveas(GI_MPBvsRL,TempName);
num = num+1;
end
close(figure(29))
sen = sen+1;
AAA = AAA+4;
break
end
end
end
end
num = num-1;
if num ~= 0 % Non ci sono legami
add(Site,sezGrafMPBvsRL);
add(Site,testoMPBvsRL);
if num == 1
TempName = char(strcat('Report',siteID,'-RLvsMPB',num2str(num),'.png'));
Chart1 = Image(TempName);
Chart1.Style = {ScaleToFit};
add(Site,Chart1);
else
n = 1;
while n <= num
TempName = char(strcat('Report',siteID,'-RLvsMPB',num2str(n),'.png'));
Chart1 = Image(TempName);
Chart1.Style = {Height('7cm')};
if n+1 <= num
TempName = char(strcat('Report',siteID,'-RLvsMPB',num2str(n+1),'.png'));
Chart2 = Image(TempName);
Chart2.Style = {Height('7cm')};
lot = Table({Chart1, Chart2});
lot.Style = {ResizeToFitContents(false), Width('100%')};
n = n+2;
add(Site,lot);
else
n = n+1;
add(Site,Chart1);
end
end
end
ChartMPBvsRL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Confronto '...
'relativo al periodo temporale di riferimento, tra i dati di '...
'spostamento locale 3D registrati dal nodo Radial Link pi' char(249) ...
' in prossimit' char(224) ' della sezione e la base pi' char(249) ...
' lunga dell''estensimetro multibase']);
FIG = FIG+1;
ChartMPBvsRL_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
add(Site,ChartMPBvsRL_cap);
text = 'Gli spostamenti sono riferiti alle misure dei sensori riportati di seguito: ';
testoMPB2vsRL = Paragraph(text);
testoMPB2vsRL.HAlign = 'justify';
add(Site,testoMPB2vsRL);
I = size(SensoriRL);
for a = 1:I(1)
text = ['- Rad Array ' char(CatenaRL(a,1)) ' - Nodo numero ' num2str(SensoriRL(a,1)) ...
', Analog Array ' char(CatenaMPB(a,1)),' - Estensimetro Multibase numero ' num2str(SensoriMPB(a,1)) ''];
testoMPB2vsRL = Paragraph(text);
add(Site,testoMPB2vsRL);
end
add(Site,br);
end
%--- ENG ---
if activeEN == 1
sezGrafMPBvsRL_ENG = Heading2('Correlation between Rad Array and Multipoint Borehole Extensometer (MPBE)');
sezGrafMPBvsRL_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
testoMPBvsRL = Paragraph(['The following graph aims to highlight the presence of correlations '...
'between 3D local differential displacements recorded by the Radial Link sensor, and the '...
'corresponding radial deformation measured by the longest rod of the MPBE.']);
testoMPBvsRL.HAlign = 'justify';
% Cerco eventuali correlazioni con Estensimetro multibase
NomeFile = strcat('Report',siteID,'-RLvsMPBEL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
num = 1;
sen = 1;
SensoriRL = zeros(1,1);
SensoriMPB = zeros(1,1);
CatenaRL = cell(1,1);
CatenaMPB = cell(1,1);
colMPB = 0;
while AAA < rF
Rad = 0;
MPB = 0;
check1 = Filetesto(AAA,1);
if check1 == 99999 % Non ci sono Rad Array o estensimetri multibase
break
else
check2 = Filetesto(AAA+1,1);
for nn = 1:rAR
chain = char(chainID(nn,4));
if check1 == str2num(chain(end-2:end)) % Il primo deve sempre essere il Rad
Rad = nn;
NodoRL = Filetesto(AAA+2,1);
SensoriRL(sen,1) = NodoRL;
CatenaRL(sen,1) = chainID(nn,4);
end
if check2 == str2num(chain(end-2:end))
MPB = nn;
NodoMPB = Filetesto(AAA+3,1);
SensoriMPB(sen,1) = NodoMPB;
CatenaMPB(sen,1) = chainID(nn,4);
colMPB = colMPB+1;
end
if Rad > 0 && MPB > 0
figure(39)
ylabel('Displacement [mm]');
xlabel('Date [d/mm/yyyy]');
set(gca,'YColor','k')
title('Correlation between corresponding sensors');
grid on
hold on
dim1 = find(GI_dS_RL_MPB(:,Rad));
dim2 = find(GI_dS_MPB_RL(:,colMPB));
if isempty(dim1) == 0 && isempty(dim2) == 0
plot(GI_Date_Rad(1:dim1(end),Rad),GI_dS_RL_MPB(1:dim1(end),Rad));
GI_MPBvsRL = plot(GI_Date_MPB(1:dim2(end),MPB),GI_dS_MPB_RL(1:dim2(end),colMPB));
MAX1 = max(GI_dS_RL_MPB(:,Rad));
MAX2 = max(GI_dS_MPB_RL(:,colMPB));
MAX = max(MAX1,MAX2);
if MAX < 5 % mm
ylim([-5 5]);
end
datetick('x','dd/mm/yyyy','keepticks','keeplimits');
h = gca;
h.XAxis.MinorTick = 'on';
xtickangle(20);
str(1,1) = cellstr([char(CatenaRL(sen,1)) ' Node ' num2str(NodoRL) '']);
str(1,2) = cellstr([char(CatenaMPB(sen,1)) ' Extensometer ' num2str(NodoMPB) '']);
legend(str,'Location','northwest');
TempName = char(strcat('Report',siteID,'-RLvsMPB',num2str(num),'_ENG.png'));
saveas(GI_MPBvsRL,TempName);
num = num+1;
end
close(figure(39))
sen = sen+1;
AAA = AAA+4;
break
end
end
end
end
num = num-1;
if num ~= 0 % Non ci sono legami
add(Site_ENG,sezGrafMPBvsRL_ENG);
add(Site_ENG,testoMPBvsRL);
if num == 1
TempName = char(strcat('Report',siteID,'-RLvsMPB',num2str(num),'_ENG.png'));
Chart1_ENG = Image(TempName);
Chart1_ENG.Style = {ScaleToFit};
add(Site_ENG,Chart1_ENG);
else
n = 1;
while n <= num
TempName = char(strcat('Report',siteID,'-RLvsMPB',num2str(n),'_ENG.png'));
Chart1_ENG = Image(TempName);
Chart1_ENG.Style = {Height('7cm')};
if n+1 <= num
TempName = char(strcat('Report',siteID,'-RLvsMPB',num2str(n+1),'_ENG.png'));
Chart2_ENG = Image(TempName);
Chart2_ENG.Style = {Height('7cm')};
lot = Table({Chart1_ENG, Chart2_ENG});
lot.Style = {ResizeToFitContents(false), Width('100%')};
n = n+2;
add(Site_ENG,lot);
else
n = n+1;
add(Site_ENG,Chart1_ENG);
end
end
end
ChartMPBvsRL_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Comparison '...
'between 3D local differential displacements recorded by the Radial Link sensor, and the '...
'corresponding radial deformation measured by the longest rod of the MPBE.']);
FIG_ENG = FIG_ENG+1;
ChartMPBvsRL_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
add(Site_ENG,ChartMPBvsRL_ENG_cap);
text = 'Displacement data refer to the sensors listed below: ';
testoMPB2vsRL = Paragraph(text);
testoMPB2vsRL.HAlign = 'justify';
add(Site_ENG,testoMPB2vsRL);
I = size(SensoriRL);
for a = 1:I(1)
text = ['- Rad Array ' char(CatenaRL(a,1)) ' - Node ' num2str(SensoriRL(a,1)) ...
', Analog Array ' char(CatenaMPB(a,1)),' - MPBE ' num2str(SensoriMPB(a,1)) ''];
testoMPB2vsRL = Paragraph(text);
add(Site_ENG,testoMPB2vsRL);
end
add(Site_ENG,br);
end
end
end
end
end
text = 'report_CrossGraphs function executed correctly. report_CrossGraphs function closed';
fprintf(fileID,fmt,text);
fclose(fileID);
end