Files
matlab-python/ATD/report_RaL.m

1036 lines
61 KiB
Matlab
Executable File

function [GI_Rad_XYZ,GI_Rad_Num,GI_Rad_MPBEL,GI_Rad_Cir,GI_Rad_Date,ATTIVA,FIG,FIG_ENG] = report_RaL(...
DTcatena,rRaL,m,NodoRadialLink,toolrif,unitrif,datarif,firstdata_num,Font_caption,...
Font_tools,siteID,DT,DT_ENG,FIG,FIG_ENG,br,colonna2,colonna2bis,status,ATTIVA,activeEN,...
conn,FileName)
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'report_RaL function started';
fprintf(fileID,fmt,text);
import mlreportgen.dom.*
import mlreportgen.report.*
% Make sure DOM is compilable
makeDOMCompilable()
GI_Rad_XYZ = [];
GI_Rad_Num = [];
GI_Rad_MPBEL = [];
GI_Rad_Cir = [];
GI_Rad_Date = [];
check = 0;
while check == 0
if status(m,1) == 1
if ATTIVA == 1
ATTIVA = 0;
testo = Paragraph('Catena non ancora installata o inattiva.');
add(DT,testo);
if activeEN == 1
testo = Paragraph('Array not installed or inactive.');
add(DT_ENG,testo);
end
end
check = 1;
elseif status(m,1) == 3
if ATTIVA == 1
ATTIVA = 0;
testo = Paragraph(['Monitoraggio completato. Invitiamo a visitare la '...
'piattaforma web per la visione dei dati storici.']);
add(DT,testo);
if activeEN == 1
testo = Paragraph(['Monitoring completed. Please log into the web-based platform '...
'to access the complete dataset.']);
add(DT_ENG,testo);
end
end
check = 1;
else
NODATA(m,1) = 0;
date = datestr(datenum(colonna2{m+1,1},'dd-mm-yyyy'),'yyyy-mm-dd'); % data riferimento definita sul sito
% posizione di progetto dei nodi
comando = ['select EventDate, EventTime, X, Y, Z from ElabDataView where EventDate = ''' ...
date ''' and ToolNameID = ''' char(toolrif) ''' and UnitName = ''' char(unitrif) ...
''' '];
curs = exec(conn,comando);
curs = fetch(curs);
SezioneXYZ = curs.Data;
Datasez = SezioneXYZ(1,1);
Orasez = SezioneXYZ(1,2);
[rz,~] = size(SezioneXYZ);
scrivi = 1;
for rr = 1:rz
if strcmp(SezioneXYZ(rr,1),Datasez)==1 && strcmp(SezioneXYZ(rr,2),Orasez) ==1
CoordX(scrivi,1) = cell2mat(SezioneXYZ(rr,3));
CoordY(scrivi,1) = cell2mat(SezioneXYZ(rr,4));
CoordZ(scrivi,1) = cell2mat(SezioneXYZ(rr,5));
scrivi = scrivi+1;
end
end
diffX = zeros(1,rRaL(m,1));
diffY = zeros(1,rRaL(m,1));
diffZ = zeros(1,rRaL(m,1));
RIS_XYZ_Mese = zeros(1,rRaL(m,1));
RIS_XYZ_Tot = zeros(1,rRaL(m,1));
Num = zeros(rRaL(m,1),1);
for n = 1:rRaL(m,1)
NodeNum = num2str(NodoRadialLink(n,m));
% dati del mese
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z '...
'from ElabDataView where EventDate >= ''' datarif ''' and ToolNameID = ''' ...
char(toolrif) ''' and UnitName = ''' char(unitrif) ''' and NodeNum = ''' NodeNum ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
Dati = curs.Data;
Num(n,1) = NodoRadialLink(n,m);
[rD,rC] = size(Dati);
if rC ~= 1
T = [cell2mat(Dati(:,1)) repmat(' ', [rD,1]) cell2mat(Dati(:,2))];
Date = datenum(T); % Data
if n == 1 % Il primo lo scrivo e creo la variabile di controllo
else
[rS,~] = size(asseX);
if rD ~= rS
NODATA(m,1) = 1;
check = 0;
break
else
check = 1;
end
end
% spostamenti dei nodi dall'inizio
asseX(:,n) = cell2mat(Dati(:,3));
asseY(:,n) = cell2mat(Dati(:,4));
asseZ(:,n) = cell2mat(Dati(:,5));
X_RL_Tot(:,n) = cell2mat(Dati(:,6));
Y_RL_Tot(:,n) = cell2mat(Dati(:,7));
Z_RL_Tot(:,n) = cell2mat(Dati(:,8));
X_RL_Mese(:,n) = X_RL_Tot(:,n)-X_RL_Tot(1,n)+CoordX(n,1)';
Y_RL_Mese(:,n) = Y_RL_Tot(:,n)-Y_RL_Tot(1,n)+CoordY(n,1)';
Z_RL_Mese(:,n) = Z_RL_Tot(:,n)-Z_RL_Tot(1,n)+CoordZ(n,1)';
diffX(1,n) = asseX(end,n)-asseX(1,n);
diffY(1,n) = asseY(end,n)-asseY(1,n);
diffZ(1,n) = asseZ(end,n)-asseZ(1,n);
dX(:,n) = asseX(:,n)-asseX(:,1);
dY(:,n) = asseY(:,n)-asseY(:,1);
dZ(:,n) = asseZ(:,n)-asseZ(:,1);
RIS_XYZ_Mese(1,n) = (sqrt(diffX(1,n)^2 + diffY(1,n)^2+diffZ(1,n)^2))*1000;
cX_Mese(1,n) = 100*abs(1000*diffX(1,n))/RIS_XYZ_Mese(1,n);
cY_Mese(1,n) = 100*abs(1000*diffY(1,n))/RIS_XYZ_Mese(1,n);
cZ_Mese(1,n) = 100*abs(1000*diffZ(1,n))/RIS_XYZ_Mese(1,n);
RIS_XYZ_Tot(1,n) = (sqrt(asseX(end,n)^2 + asseY(end,n)^2+asseZ(end,n)^2))*1000;
cX_Tot(1,n) = 100*abs(1000*asseX(1,n))/RIS_XYZ_Tot(1,n);
sigX_Tot(1,n) = sign(asseX(1,n));
cY_Tot(1,n) = 100*abs(1000*asseY(1,n))/RIS_XYZ_Tot(1,n);
sigY_Tot(1,n) = sign(asseY(1,n));
cZ_Tot(1,n) = 100*abs(1000*asseZ(1,n))/RIS_XYZ_Tot(1,n);
sigZ_Tot(1,n) = sign(asseZ(1,n));
else
NODATA(m,1) = 1;
check = 1;
end
end
if NODATA(m,1) == 0
if strcmp(colonna2bis(m+1,1),colonna2(m+1,1)) == 0 % data zero diversa data riferimento
clear RIS_XYZ_Tot
datarifNEW = datestr(firstdata_num{m+1,1},'yyyy-mm-dd'); % data riferimento definita sul sito
for nw = 1:rRaL(m,1)
NodeNum = num2str(NodoRadialLink(nw,m));
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, '...
'from ElabDataView where EventDate = ''' datarifNEW ''' and ToolNameID = ''' char(toolrif) ...
''' and UnitName = ''' char(unitrif) ''' and NodeNum = ''' NodeNum ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DatiNEW = curs.Data; % dati registrati alla data di riferimento
Num(nw,1) = NodoRadialLink(nw,m);
[~,rC] = size(DatiNEW);
if rC ~= 1
% dalla data di riferimento
asseX(:,nw) = asseX(:,nw)-cell2mat(DatiNEW(1,3));
asseY(:,nw) = asseY(:,nw)-cell2mat(DatiNEW(1,4));
asseZ(:,nw) = asseZ(:,nw)-cell2mat(DatiNEW(1,5));
X_RL_Tot(:,nw) = X_RL_Tot-cell2mat(DatiNEW(:,6))+CoordX(nw,1)';
Y_RL_Tot(:,nw) = Y_RL_Tot-cell2mat(DatiNEW(:,7))+CoordY(nw,1)';
Z_RL_Tot(:,nw) = Z_RL_Tot-cell2mat(DatiNEW(:,8))+CoordZ(nw,1)';
RIS_XYZ_Tot(1,n) = (sqrt(asseX(end,n)^2 + asseY(end,n)^2+asseZ(end,n)^2))*1000;
cX_Tot(1,n) = 100*abs(1000*diffX(1,n))/RIS_XYZ_Tot(1,n);
cY_Tot(1,n) = 100*abs(1000*diffY(1,n))/RIS_XYZ_Tot(1,n);
cZ_Tot(1,n) = 100*abs(1000*diffZ(1,n))/RIS_XYZ_Tot(1,n);
else
NODATA(m,1) = 1;
end
end
end
GI_Rad_XYZ = max(RIS_XYZ_Mese);
ind = find(GI_Rad_XYZ==max(RIS_XYZ_Mese(1,:)));
GI_Rad_Num = Num(ind(1));
GI_Rad_Date = Date;
% Cerco eventuali correlazioni con Multibase
NomeFile = strcat('Report',siteID,'-RLvsMPBEL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
Var = 0;
while AAA < rF
check1 = Filetesto(AAA,1);
if check1 == 99999
AAA = 2;
else
check2 = Filetesto(AAA+1,1);
if check1 == str2num(DTcatena(end-2:end))
Nodo = Filetesto(AAA+2,1);
Var = 1;
elseif check2 == str2num(DTcatena(end-2:end))
Nodo = Filetesto(AAA+3,1);
Var = 1;
end
AAA = AAA+4;
end
end
if Var == 1
% Riabilitare le variabili sotto se vogliamo usare i
% cumulati anzichè i locali
% sX = dX';
% sTX = cumsum(sX);
% sX = sTX';
% sY = dY';
% sTY = cumsum(sY);
% sY = sTY';
% sZ = dZ';
% sTZ = cumsum(sZ);
% sZ = sTZ';
GI_Rad_MPBEL = (sqrt(dX(:,Nodo).^2 + dY(:,Nodo).^2 + dZ(:,Nodo).^2))*1000; % ad ogni rad è associato al massimo un solo multibase
end
% Cerco eventuali correlazioni con Cir
NomeFile = strcat('Report',siteID,'-TuLvsRL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
Var = 0;
while AAA < rF % Cerco coppie Cir - Rad
check1 = Filetesto(AAA,1);
if check1 == 99999 % Non ci sono Rad o non ci sono Cir
AAA = 2;
else
check2 = Filetesto(AAA+1,1);
if check1 == str2num(DTcatena(end-2:end)) % Il Cir è da prendere in considerazione ed è riportato nella prima riga del file
Nodo = Filetesto(AAA+2,1);
Var = 1;
elseif check2 == str2num(DTcatena(end-2:end)) % Il Cir è da prendere in considerazione ed è riportato nella seconda riga del file
Nodo = Filetesto(AAA+3,1);
Var = 1;
end
AAA = AAA+4;
end
end
if Var == 1
GI_Rad_Cir = (sqrt(dX(:,Nodo).^2 + dZ(:,Nodo).^2))*1000; %Più rad possono associarsi allo stesso cir
end
% Istogramma spostamenti 3D
figure(1)
[~,nn] = size(RIS_XYZ_Mese(end,:));
for w = 1:nn
nodi_grafico(1,w) = w;
end
RIS_XYZ = [RIS_XYZ_Mese(end,:)' RIS_XYZ_Tot(end,:)'];
Rad_3D = barh(nodi_grafico,RIS_XYZ);
title('Risultante 3D degli spostamenti locali');
xlabel('Spostamento [mm]');
ylabel('Nodo [-]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'off';
Max(1) = max(RIS_XYZ_Mese);
Max(2) = max(RIS_XYZ_Tot);
MAX = max(Max);
in = find(Max == MAX);
if in == 1
POS = find(RIS_XYZ_Mese == Max(1));
else
POS = find(RIS_XYZ_Tot == Max(2));
end
if MAX < 10 % mm
xlim([0 10]);
end
yticks(0:1:nn);
grid on
if POS > rRaL(m)/2 % Legenda in basso a dx
legend('Periodo di riferimento','Intero periodo','Location','southeast');
else % legenda in alto a dx
legend('Periodo di riferimento','Intero periodo','Location','northeast');
end
TempName = char(strcat('Report',siteID,'-', char(toolrif),'Rad3D.png'));
saveas(Rad_3D(1),TempName);
ChartRad = Image(TempName);
ChartRad.Style = {HAlign('justify'),ScaleToFit};
ChartRad_cap = Paragraph(['Fig. ' num2str(FIG) ' - Risultante 3D degli '...
'spostamenti differenziali locali nello spazio, registrati durante '...
'il periodo temporale di riferimento e l''intero monitoraggio']);
FIG = FIG+1;
ChartRad_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
%--ENG--
if activeEN == 1
figure(11)
[~,nn] = size(RIS_XYZ_Mese(end,:));
for w = 1:nn
nodi_grafico(1,w) = w;
end
RIS_XYZ = [RIS_XYZ_Mese(end,:)' RIS_XYZ_Tot(end,:)'];
Rad_3D = barh(nodi_grafico,RIS_XYZ);
title('3D Local displacements');
xlabel('Displacement [mm]');
ylabel('Node [-]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'off';
Max(1) = max(RIS_XYZ_Mese);
Max(2) = max(RIS_XYZ_Tot);
MAX = max(Max);
in = find(Max == MAX);
if in == 1
POS = find(RIS_XYZ_Mese == Max(1));
else
POS = find(RIS_XYZ_Tot == Max(2));
end
if MAX < 10 % mm
xlim([0 10]);
end
yticks(0:1:nn);
grid on
if POS > rRaL(m)/2 % Legenda in basso a dx
legend('Reference time period','Complete period','Location','southeast');
else % legenda in alto a dx
legend('Reference time period','Complete period','Location','northeast');
end
TempName = char(strcat('Report',siteID,'-', char(toolrif),'Rad3D_ENG.png'));
saveas(Rad_3D(1),TempName);
ChartRad_ENG = Image(TempName);
ChartRad_ENG.Style = {HAlign('justify'),ScaleToFit};
ChartRad_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - 3D local differential '...
'displacements, measured during the reference and '...
'the complete monitoring period']);
FIG_ENG = FIG_ENG+1;
ChartRad_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
end
% --- Sezione - MESE ---
contaS_Mese = 1;
conta0_Mese = 1;
for ris = 1:nn
if RIS_XYZ_Mese(end,ris)> 0.5
nodiSX(contaS_Mese,1) = CoordX(ris,1);
nodiSZ(contaS_Mese,1) = CoordZ(ris,1);
contaS_Mese = contaS_Mese+1;
else
nodi0X(conta0_Mese,1) = CoordX(ris,1);
nodi0Z(conta0_Mese,1) = CoordZ(ris,1);
conta0_Mese = conta0_Mese+1;
end
end
% Aggiungo ancora
% --- Geometria Strumento - Mese ---
figure(2)
plot([0; CoordX(:,1)],[0;CoordZ(:,1)],'-','Color','black');
hold on
if contaS_Mese > 1
sezC = plot(nodiSX(:,1),nodiSZ(:,1),'o','Color','red');
set(sezC, 'markerfacecolor', get(sezC, 'color'));
end
hold on
if conta0_Mese > 1
sez0 = plot(nodi0X(:,1),nodi0Z(:,1),'o','Color','black');
set(sez0, 'markerfacecolor', get(sez0, 'color'));
end
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
set(ancora, 'markerfacecolor', get(ancora, 'color'));
if sign(CoordX(ris,1)) == -1
Location = 'southeast';
else
Location = 'southwest';
end
if contaS_Mese > 1 && conta0_Mese > 1
legend('Geometria della strumentazione','Nodi con spostamenti','Nodi stabili','Location',Location);
elseif contaS_Mese > 1 && conta0_Mese == 1
legend('Geometria della strumentazione','Nodi con spostamenti','Location',Location);
elseif contaS_Mese == 1 && conta0_Mese > 1
legend('Geometria della strumentazione','Nodi stabili','Location',Location);
end
title('Spostamenti locali - periodo di riferimento');
xlabel('X [m]');
ylabel('Z [m]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'on';
grid off
TempName = char(strcat('Report',siteID,'-', char(toolrif),'SezRAD-Mese.png'));
saveas(ancora,TempName);
ChartSEZ_Mese = Image(TempName);
ChartSEZ_Mese.Style = {HAlign('center'),Height('6.5cm')};
%--ENG--
if activeEN == 1
figure(22)
plot([0; CoordX(:,1)],[0;CoordZ(:,1)],'-','Color','black');
hold on
if contaS_Mese > 1
sezC = plot(nodiSX(:,1),nodiSZ(:,1),'o','Color','red');
set(sezC, 'markerfacecolor', get(sezC, 'color'));
end
hold on
if conta0_Mese > 1
sez0 = plot(nodi0X(:,1),nodi0Z(:,1),'o','Color','black');
set(sez0, 'markerfacecolor', get(sez0, 'color'));
end
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
set(ancora, 'markerfacecolor', get(ancora, 'color'));
if sign(CoordX(ris,1)) == -1
Location = 'southeast';
else
Location = 'southwest';
end
if contaS_Mese > 1 && conta0_Mese > 1
legend('Array geometry','Nodes showing displacement','Stable nodes','Location',Location);
elseif contaS_Mese > 1 && conta0_Mese == 1
legend('Array geometry','Nodes showing displacement','Location',Location);
elseif contaS_Mese == 1 && conta0_Mese > 1
legend('Array geometry','Stable nodes','Location',Location);
end
title('Local Displacements - reference time period');
xlabel('X [m]');
ylabel('Z [m]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'on';
grid off
TempName = char(strcat('Report',siteID,'-', char(toolrif),'SezRAD-Mese_ENG.png'));
saveas(ancora,TempName);
ChartSEZ_Mese_ENG = Image(TempName);
ChartSEZ_Mese_ENG.Style = {HAlign('center'),Height('6.5cm')};
end
% --- Geometria Strumento - Intero periodo ---
% --- Sezione - TOT ---
contaS_Tot = 1;
conta0_Tot = 1;
contaSX = 1;
contaD = 1;
contaT = 1;
contaA = 1;
contaB = 1;
contaXZ = 1;
contaG = 1;
clear nodi0X
clear nodi0Z
clear nodiSX
clear nodiSZ
for ris = 1:nn % Ho aggiunto l'ancora
if RIS_XYZ_Tot(end,ris)> 0.5
if cX_Tot(1,ris) > 70 %
if sigX_Tot(1,ris) == 1 % Destra
nodiD_X(contaD,1) = CoordX(ris,1);
nodiD_Z(contaD,1) = CoordZ(ris,1);
contaD = contaD+1;
else % sinistra
nodiS_X(contaSX,1) = CoordX(ris,1);
nodiS_Z(contaSX,1) = CoordZ(ris,1);
contaSX = contaSX+1;
end
elseif cY_Tot(1,ris) > 70 % Trasversale
nodiT_X(contaT,1) = CoordX(ris,1);
nodiT_Z(contaT,1) = CoordZ(ris,1);
contaT = contaT+1;
elseif cZ_Tot(1,ris) > 70
if sigZ_Tot(1,ris) == 1 % Verso l'alto
nodiA_X(contaA,1) = CoordX(ris,1);
nodiA_Z(contaA,1) = CoordZ(ris,1);
contaA = contaA+1;
else % Verso il basso
nodiB_X(contaB,1) = CoordX(ris,1);
nodiB_Z(contaB,1) = CoordZ(ris,1);
contaB = contaB+1;
end
elseif cX_Tot(1,ris)+cZ_Tot(1,ris) > 70 % 45 gradi circa
nodiXZ_X(contaXZ,1) = CoordX(ris,1);
nodiXZ_Z(contaXZ,1) = CoordZ(ris,1);
contaXZ = contaXZ+1;
else % Moto Generico
nodi_X(contaG,1) = CoordX(ris,1);
nodi_Z(contaG,1) = CoordZ(ris,1);
contaG = contaG+1;
end
nodiSX(contaS_Tot,1) = CoordX(ris,1);
nodiSZ(contaS_Tot,1) = CoordZ(ris,1);
contaS_Tot = contaS_Tot+1;
else % Stabili
nodi0X(conta0_Tot,1) = CoordX(ris,1);
nodi0Z(conta0_Tot,1) = CoordZ(ris,1);
conta0_Tot = conta0_Tot+1;
end
end
figure(3)
plot([0;CoordX(:,1)],[0;CoordZ(:,1)],'-','Color','black');
hold on
% Spostamenti generici
if contaG > 1
sezG = plot(nodi_X(:,1),nodi_Z(:,1),'o','Color','red');
set(sezG, 'markerfacecolor', get(sezG, 'color'));
end
% Spostamenti Alto
if contaA > 1
sezA = plot(nodiA_X(:,1),nodiA_Z(:,1),'^','Color',[0.4660 0.6740 0.1880],'MarkerSize' ,7);
set(sezA, 'markerfacecolor', get(sezA, 'color'));
end
% Spostamenti Basso
if contaB > 1
sezB = plot(nodiB_X(:,1),nodiB_Z(:,1),'v','Color',[0.4660 0.6740 0.1880],'MarkerSize' ,7);
set(sezB, 'markerfacecolor', get(sezB, 'color'));
end
% Spostamenti Destra
if contaD > 1
sezD = plot(nodiD_X(:,1),nodiD_Z(:,1),'>','Color','blue','MarkerSize' ,7);
set(sezD, 'markerfacecolor', get(sezD, 'color'));
end
% Spostamenti Sinistra
if contaSX > 1
sezSX = plot(nodiS_X(:,1),nodiS_Z(:,1),'<','Color',[0.3010 0.7450 0.9330],'MarkerSize' ,7);
set(sezSX, 'markerfacecolor', get(sezSX, 'color'));
end
% Spostamenti 45°
if contaXZ > 1
sezXZ = plot(nodiXZ_X(:,1),nodiXZ_Z(:,1),'x','Color',[0.8500 0.3250 0.0980],'MarkerSize' ,13);
set(sezXZ, 'markerfacecolor', get(sezXZ, 'color'));
end
% Sensori Fermi
if conta0_Tot > 1
sez0 = plot(nodi0X(:,1),nodi0Z(:,1),'o','Color','black');
set(sez0, 'markerfacecolor', get(sez0, 'color'));
end
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
set(ancora, 'markerfacecolor', get(ancora, 'color'));
if sign(CoordX(ris,1)) == -1
Location = 'southeast';
else
Location = 'southwest';
end
if contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti verso destra',...
'Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto',...
'Spostamenti verso destra','Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D',...
'Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D',...
'Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso sinistra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D','Location',Location);
elseif contaG > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D','Nodi stabili',...
'Location',Location);
elseif contaG > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in basso',...
'Spostamenti verso sinistra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D','Location',Location);
elseif contaG > 1 && contaA > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto',...
'Spostamenti verso sinistra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto',...
'Spostamenti verso destra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto',...
'Spostamenti verso destra','Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D',...
'Nodi stabili','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D',...
'Nodi stabili','Location',Location);
elseif contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in alto',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D',...
'Nodi stabili','Location',Location);
elseif contaA > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso sinistra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Geometria della strumentazione','Spostamenti in alto','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D','Location',Location);
elseif contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in basso','Spostamenti verso sinistra',...
'Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Geometria della strumentazione','Spostamenti in basso',...
'Spostamenti verso destra','Spostamenti verso sinistra','Spostamenti a 2D','Location',Location);
elseif contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti verso destra','Spostamenti verso sinistra',...
'Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti verso sinistra',...
'Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti verso destra',...
'Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaG > 1 && contaB > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in basso','Nodi stabili','Location',Location);
elseif contaG > 1 && contaD > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti verso destra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti verso sinistra','Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Spostamenti in basso',...
'Nodi stabili','Location',Location);
elseif contaG > 1 && contaA > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti in alto','Nodi stabili','Location',Location);
elseif contaG > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti a 2D',...
'Nodi stabili','Location',Location);
elseif contaG > 1 && contaXZ > 1
legend('Geometria della strumentazione','Spostamenti 3D','Spostamenti a 2D','Location',Location);
elseif contaG > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti 3D','Nodi stabili','Location',Location);
elseif contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti verso destra',...
'Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti verso destra','Spostamenti verso sinistra',...
'Nodi stabili','Location',Location);
elseif contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Geometria della strumentazione','Spostamenti verso destra','Spostamenti verso sinistra',...
'Spostamenti a 2D','Location',Location);
elseif contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti verso sinistra',...
'Spostamenti a 2D','Nodi stabili','Location',Location);
elseif contaSX > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti verso sinistra',...
'Nodi stabili','Location',Location);
elseif contaSX > 1 && contaXZ > 1
legend('Geometria della strumentazione','Spostamenti verso sinistra',...
'Spostamenti a 2D','Location',Location);
elseif contaXZ > 1 && conta0_Tot > 1
legend('Geometria della strumentazione','Spostamenti a 2D','Nodi stabili','Location',Location);
elseif conta0_Tot > 1
legend('Geometria della strumentazione','Nodi stabili','Location',Location);
elseif contaG > 1
legend('Geometria della strumentazione','Spostamenti 3D','Location',Location);
elseif contaA > 1
legend('Geometria della strumentazione','Spostamenti in alto','Location',Location);
elseif contaB > 1
legend('Spostamenti in basso','Location',Location);
elseif contaD > 1
legend('Geometria della strumentazione','Spostamenti verso destra','Location',Location);
elseif contaSX > 1
legend('Geometria della strumentazione','Spostamenti verso sinistra','Location',Location);
elseif contaXZ > 1
legend('Geometria della strumentazione','Spostamenti a 2D','Location',Location);
end
title('Spostamenti locali - intero periodo');
xlabel('X [m]');
ylabel('Z [m]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'on';
grid off
TempName = char(strcat('Report',siteID,'-', char(toolrif),'SezRAD-Tot.png'));
saveas(ancora,TempName);
ChartSEZ = Image(TempName);
ChartSEZ.Style = {HAlign('center'),Height('6.5cm')};
ChartSEZ_cap = Paragraph(['Fig. ' num2str(FIG) ' - Riassunto grafico della '...
'situazione rilevata dai singoli nodi, con riferimento alla risultante '...
'del vettore di spostamento 3D differenziale locale, '...
'registrato durante il periodo temporale di riferimento e l''intero periodo di monitoraggio']);
FIG = FIG+1;
ChartSEZ_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
lot = Table({ChartSEZ_Mese, ChartSEZ});
lot.Style = {ResizeToFitContents(false), Width('100%')};
%--ENG--
if activeEN == 1
figure(33)
plot([0;CoordX(:,1)],[0;CoordZ(:,1)],'-','Color','black');
hold on
% Spostamenti generici
if contaG > 1
sezG = plot(nodi_X(:,1),nodi_Z(:,1),'o','Color','red');
set(sezG, 'markerfacecolor', get(sezG, 'color'));
end
% Spostamenti Alto
if contaA > 1
sezA = plot(nodiA_X(:,1),nodiA_Z(:,1),'^','Color',[0.4660 0.6740 0.1880],'MarkerSize' ,7);
set(sezA, 'markerfacecolor', get(sezA, 'color'));
end
% Spostamenti Basso
if contaB > 1
sezB = plot(nodiB_X(:,1),nodiB_Z(:,1),'v','Color',[0.4660 0.6740 0.1880],'MarkerSize' ,7);
set(sezB, 'markerfacecolor', get(sezB, 'color'));
end
% Spostamenti Destra
if contaD > 1
sezD = plot(nodiD_X(:,1),nodiD_Z(:,1),'>','Color','blue','MarkerSize' ,7);
set(sezD, 'markerfacecolor', get(sezD, 'color'));
end
% Spostamenti Sinistra
if contaSX > 1
sezSX = plot(nodiS_X(:,1),nodiS_Z(:,1),'<','Color',[0.3010 0.7450 0.9330],'MarkerSize' ,7);
set(sezSX, 'markerfacecolor', get(sezSX, 'color'));
end
% Spostamenti 45°
if contaXZ > 1
sezXZ = plot(nodiXZ_X(:,1),nodiXZ_Z(:,1),'x','Color',[0.8500 0.3250 0.0980],'MarkerSize' ,13);
set(sezXZ, 'markerfacecolor', get(sezXZ, 'color'));
end
% Sensori Fermi
if conta0_Tot > 1
sez0 = plot(nodi0X(:,1),nodi0Z(:,1),'o','Color','black');
set(sez0, 'markerfacecolor', get(sez0, 'color'));
end
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
set(ancora, 'markerfacecolor', get(ancora, 'color'));
if sign(CoordX(ris,1)) == -1
Location = 'southeast';
else
Location = 'southwest';
end
if contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Rightward displacements',...
'Leftward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements','Downwards displacements',...
'Rightward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements','Downwards displacements',...
'Leftward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements',...
'Rightward displacements','Leftward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements',...
'Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements',...
'Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements','Downwards displacements',...
'Leftward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements','Downwards displacements',...
'Rightward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','3D displacements','Upwards displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements','Location',Location);
elseif contaG > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements',...
'Rightward displacements','Leftward displacements','2D displacements','Stable nodes',...
'Location',Location);
elseif contaG > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downwards displacements',...
'Leftward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downwards displacements',...
'Rightward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','3D displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements','Location',Location);
elseif contaG > 1 && contaA > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements',...
'Leftward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements',...
'Rightward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements',...
'Rightward displacements','Leftward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','3D displacements','Upwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Upwards displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements',...
'Stable nodes','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Downwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements',...
'Stable nodes','Location',Location);
elseif contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Upwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements',...
'Stable nodes','Location',Location);
elseif contaA > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Upwards displacements','Downwards displacements',...
'Leftward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Upwards displacements','Downwards displacements',...
'Rightward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','Upwards displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','Stable nodes','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','Upwards displacements','Downwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements','Location',Location);
elseif contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Downwards displacements','Leftward displacements',...
'2D displacements','Stable nodes','Location',Location);
elseif contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Downwards displacements',...
'Rightward displacements','2D displacements','Stable nodes','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','Downwards displacements',...
'Rightward displacements','Leftward displacements','Stable nodes','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','Downwards displacements',...
'Rightward displacements','Leftward displacements','2D displacements','Location',Location);
elseif contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Rightward displacements','Leftward displacements',...
'2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Leftward displacements',...
'2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Rightward displacements',...
'2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downwards displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaD > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Rightward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Leftward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements','Downwards displacements',...
'Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upwards displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','2D displacements',...
'Stable nodes','Location',Location);
elseif contaG > 1 && contaXZ > 1
legend('Array geometry','3D displacements','2D displacements','Location',Location);
elseif contaG > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Stable nodes','Location',Location);
elseif contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Rightward displacements',...
'2D displacements','Stable nodes','Location',Location);
elseif contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','Rightward displacements','Leftward displacements',...
'Stable nodes','Location',Location);
elseif contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','Rightward displacements','Leftward displacements',...
'2D displacements','Location',Location);
elseif contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Leftward displacements',...
'2D displacements','Stable nodes','Location',Location);
elseif contaSX > 1 && conta0_Tot > 1
legend('Array geometry','Leftward displacements',...
'Stable nodes','Location',Location);
elseif contaSX > 1 && contaXZ > 1
legend('Array geometry','Leftward displacements',...
'2D displacements','Location',Location);
elseif contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','2D displacements','Stable nodes','Location',Location);
elseif conta0_Tot > 1
legend('Array geometry','Stable nodes','Location',Location);
elseif contaG > 1
legend('Array geometry','3D displacements','Location',Location);
elseif contaA > 1
legend('Array geometry','Upwards displacements','Location',Location);
elseif contaB > 1
legend('Downwards displacements','Location',Location);
elseif contaD > 1
legend('Array geometry','Rightward displacements','Location',Location);
elseif contaSX > 1
legend('Array geometry','Leftward displacements','Location',Location);
elseif contaXZ > 1
legend('Array geometry','2D displacements','Location',Location);
end
title('Local displacements - complete monitoring period');
xlabel('X [m]');
ylabel('Z [m]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'on';
grid off
TempName = char(strcat('Report',siteID,'-', char(toolrif),'SezRAD-Tot_ENG.png'));
saveas(ancora,TempName);
ChartSEZ_ENG = Image(TempName);
ChartSEZ_ENG.Style = {HAlign('center'),Height('6.5cm')};
ChartSEZ_ENG_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Graphical summary of '...
'single nodes behaviour, with reference to 3D local '...
'differential displacements recorded during the '...
'reference and the complete monitoring period']);
FIG_ENG = FIG_ENG+1;
ChartSEZ_ENG_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
lotEN = Table({ChartSEZ_Mese_ENG, ChartSEZ_ENG});
lotEN.Style = {ResizeToFitContents(false), Width('100%')};
end
sezRAD = Heading3('Radial Link');
sezRAD.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
RA = Section();
RA.Title = sezRAD;
% Testi relativi all'ultimo mese
testo1 = Paragraph(['Il grafico riportato di seguito mostra l''entit' char(224) ' '...
'dei vettori di spostamento differenziale locale 3D, misurati dai sensori Radial Link '...
'nel periodo temporale di riferimento e nell''intero periodo di monitoraggio. '...
'Il vettore ' char(232) ' ottenuto come risultante delle componenti nel piano X-Y-Z, '...
'ovvero larghezza, profondit' char(224) ' ed altezza della sezione. ']);
testo2 = Paragraph(['La figura seguente riassume la situazione registrata dall''Array, con i '...
'singoli sensori rappresentati sulla geometria di progetto della strumentazione. Nel periodo '...
'temporale di riferimento, l''analisi degli spostamenti ha evidenziato ' ...
num2str(contaS_Mese-1) ' nodi con spostamenti e ' num2str(conta0_Mese-1) ' nodi stabili. '...
'Si noti che in questa rappresentazione vengono considerati stabili i nodi caratterizzati '...
'da uno spostamento con modulo inferiore a 0.5 mm.']);
spazio = Paragraph('');
testo1.HAlign = 'justify';
testo2.HAlign = 'justify';
add(DT,sezRAD);
add(DT,testo1);
add(DT,ChartRad);
add(DT,ChartRad_cap);
add(DT,testo2);
add(DT,spazio);
add(DT,lot);
add(DT,ChartSEZ_cap);
add(DT,br);
close(figure(1));
close(figure(2));
close(figure(3));
if attivaEN == 1
sezRAD_ENG = Heading3('Radial Link');
sezRAD_ENG.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
RA_ENG = Section();
RA_ENG.Title = sezRAD;
% Testi relativi all'ultimo mese
testo1 = Paragraph(['The following graph reports the 3D local '...
'differential displacements measrued by Radial Link sensors '...
'during the reference and complete monitoring period. '...
'The 3D displacement vector derives from X-Y-Z displacement components, '...
'respectively representing length, depth, and height of the section. ']);
testo2 = Paragraph(['The following figure summarized the situation recorded by the Array, '...
'representing each sensor on the instrumentation non-deformed geometry. During the '...
'reference time period, the Rad Array presented ' ...
num2str(contaS_Mese-1) ' nodes showing displacements and ' num2str(conta0_Mese-1) ' stable nodes. '...
'In this specific representation, nodes featuring displacement values less than 0.5 mm '...
'are assumed to be stable.']);
spazio = Paragraph('');
testo1.HAlign = 'justify';
testo2.HAlign = 'justify';
add(DT_ENG,sezRAD_ENG);
add(DT_ENG,testo1);
add(DT_ENG,ChartRad_ENG);
add(DT_ENG,ChartRad_ENG_cap);
add(DT_ENG,testo2);
add(DT_ENG,spazio);
add(DT_ENG,lotEN);
add(DT_ENG,ChartSEZ_ENG_cap);
add(DT_ENG,br);
close(figure(11));
close(figure(22));
close(figure(33));
end
else
if ATTIVA == 1
testo = Paragraph('Non sono presenti dati relativi al periodo temporale considerato.');
ATTIVA = 0;
add(DT,testo);
check = 1;
if activeEN == 1
testo = Paragraph('No data available for the reference time period.');
add(DT,testo);
end
end
end
end
end
text = 'report_RaL function executed correctly';
fprintf(fileID,fmt,text);
fclose(fileID);
end