Sync from remote server: 2025-10-12 18:56:41

This commit is contained in:
2025-10-12 18:56:59 +02:00
commit 7e8ee264aa
553 changed files with 161447 additions and 0 deletions

155
Tilt/conv_grezziWL.m Executable file
View File

@@ -0,0 +1,155 @@
% Funzione che converte i dati grezzi dei Weir Link in dati di altezza d'acqua
function [lev_WL,TdefWL,ErrWeirLink] = conv_grezziWL(lev_WL,temp_WL,rWL,...
DCalWLTot,Tmax,Tmin,NodoWeirLink,ErrWeirLink,datainiWL,TimeWL,...
IDcentralina,DTcatena,FileName)
text = 'conv_grezziWL function started';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
[rT,cT] = size(temp_WL);
TdefWL = zeros(rT,cT);
if strcmp(NodoWeirLink(1,4),'Hz')
% Conversione Weir
A = DCalWLTot(:,1);
B = DCalWLTot(:,2);
C = DCalWLTot(:,3);
% Conversione Temperature
AT = 1.4051*10^(-3);
BT = 2.369*10^(-4);
CT = 1.019*10^(-7);
Therm = cell2mat(NodoWeirLink(:,6));
for ii = 1:rWL
digit = (lev_WL(:,ii).^2)/1000;
lev_WL(:,ii) = A(ii)*digit.^2+B(ii)*digit+C(ii);
if Therm(ii,1)==1 % è presente il termometro
R = temp_WL(:,ii);
[rN,~] = size(R);
for n = 1:rN
if R(n) <= 0
if n > 1
R(n) = R(n-1);
else
R(n) = 5000;
end
if ErrWeirLink(n,ii) == 0
ErrWeirLink(n,ii) = 0.5;
end
end
end
L = reallog(R);
TdefWL(:,ii) = (1./(AT + BT*L + CT*(L.^3))) -273.2; % conversione in gradi centigradi
end
end
end
FileTemperature = ['' IDcentralina '-' DTcatena '-WL-Therm.csv'];
if isfile(FileTemperature) == 1
DatiRaw = csvread(FileTemperature);
[rDR,cDR] = size(DatiRaw);
else
rDR = 1;
cDR = 1;
end
textT = 'There are not correction for Weir Link - Temperature filter!';
cont2 = 1;
for ii = 1:rWL
if Therm(ii,1) == 1
for T = 1:rT
if TdefWL(T,ii) > Tmax || TdefWL(T,ii) < Tmin
if T == 1
if isfile(FileTemperature) == 1
DatiRaw(:,1) = DatiRaw(:,1) + 730000;
RawDate = find(DatiRaw(:,1)<=datenum(datainiWL));
if isempty(RawDate) == 1
cc = 2;
while cc <= rT
if TdefWL(cc,ii) > Tmax || TdefWL(cc,ii) < Tmin
cc = cc+1;
else
break
end
end
TdefWL(T,ii) = TdefWL(cc,ii);
else
if isnan(DatiRaw(ii+1,RawDate(end))) == 0
TdefWL(T,ii) = cellstr(num2str(DatiRaw(RawDate(end),ii+1)));
if ErrWeirLink(ii,T) == 0
ErrWeirLink(ii,T) = 0.5;
end
wardat = 'Temperature data of Weir Link nodes corrected using Raw Data of reference Csv file.';
fprintf(fileID,fmt,wardat);
else
cc = 2;
while cc <= rT
if TdefWL(cc,ii) > Tmax || TdefWL(cc,ii) < Tmin
cc = cc+1;
else
break
end
end
TdefWL(T,ii) = TdefWL(cc,ii);
end
end
else
cc = 2;
while cc <= rT
if TdefWL(cc,ii) > Tmax || TdefWL(cc,ii) < Tmin
cc = cc+1;
else
break
end
end
TdefWL(T,ii) = TdefWL(cc,ii);
end
else
TdefWL(T,ii) = TdefWL(T-1,ii);
ErrWeirLink(ii,T) = 0.5;
end
textT = ['' num2str(cont2) ' correction executed for Weir Link - Temperature filter!'];
end
end
end
end
if rDR~=1 && cDR~=1 && isempty(DatiRaw) == 0
RawDate1 = find(DatiRaw(:,1)<=TimeWL(1));
if isempty(RawDate1) == 1
RawDate2 = 1;
elseif RawDate1(end) == rDR
RawDate2 = find(TimeWL(:,1)>DatiRaw(end,1));
else
RawDate2 = find(TimeWL(:,1)>DatiRaw(RawDate1(end)+1,1));
end
else
RawDate1 = [];
RawDate2 = 1;
end
if isempty(RawDate1) == 0 && isempty(RawDate2) == 0
Dati = [DatiRaw(1:RawDate1(end),:);TimeWL TdefWL(:,RawDate2(1):end)];
elseif isempty(RawDate1) == 1 && isempty(RawDate2) == 0
Dati = [TimeWL TdefWL];
else
Dati = DatiRaw;
end
% Elimino appoggio più vecchio di un mese
RawDate3 = find(Dati(:,1)<now-30);
if isempty(RawDate3) == 0
[rDati,~] = size(Dati);
if RawDate3(end) == rDati
else
Dati = Dati(RawDate3(end)+1:end,:);
end
end
if isfile(FileTemperature) == 1
delete(FileTemperature);
end
Dati(:,1) = Dati(:,1) - 730000;
csvwrite(FileTemperature,Dati);
fprintf(fileID,fmt,textT);
text = 'Raw Data of Weir Link converted into physical units correctly. conv_grezziWL function ended';
fprintf(fileID,fmt,text);
fclose(fileID);
end