Marjaniemi CIC
Last modified by Pasi Aalto on 2025/09/25 12:49







corr_prelim = 1;
timr = 'block';% block or 1s or 10s
path_save='./pics/';
time_zone='Etc/GMT-2';
location={'Marjaniemi','Hyytiala','Sarkisuo','Pappilansuo','Anttila','Ruukki-Luke','Ruukki-FMI','Jokioinen','Tampere','Sodankyla','Notused','Lapinlahti','Rottasniitynsuo','Kauhajoki','Virrat','Heinavesi','Kolovesi','Enonkoski','Lettosuo1','Lettosuo2','Kalevansuo','Kenttarova'};
header_lines={280,277,280,280,280,280,280,280,280,286,286,286,286,286,286,286,286,286,286,286,286,286};
path_raw ={'/data/vakka/backup/cic/cic-2-7/','/data/vakka/backup/nais/hyytiala/CIC-2-1/','/data/vakka/backup/cic/cic-2-2/','/data/vakka/backup/cic/cic-2-3/','/data/vakka/backup/cic/cic-2-4/','/data/vakka/backup/cic/cic-2-5/','/data/vakka/backup/cic/cic-2-6/','/data/vakka/backup/cic/cic-2-8/','/data/vakka/backup/cic/cic-2-9/','/data/vakka/backup/cic/cic-2-11/','/data/vakka/backup/cic/cic-2-12/','/data/vakka/backup/cic/cic-2-13/','/data/vakka/backup/cic/cic-2-15/','/data/va
kka/backup/cic/cic-2-31/','/data/vakka/backup/cic/cic-2-32/','/data/vakka/backup/cic/cic-2-28/','/data/vakka/backup/cic/cic-2-29/','/data/vakka/backup/cic/cic-2-30/','/data/vakka/backup/cic/cic-2-17/','/data/vakka/backup/cic/cic-2-16/','/data/vakka/backup/cic/cic-2-14/','/data/vakka/backup/cic/cic-2-18/'};
time_format={'yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSSZZZZ','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSS
SSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS','yyyy-MM-dd HH:mm:ss.SSSSSS'};
disp(length(location))
disp(length(header_lines))
disp(length(path_raw))
disp(length(time_format))
%pause
start_time = datenum(fix(now)-10);
end_time = datenum(fix(now));
for iil=1:length(location)
tt={};
t={};
for i_date = start_time:end_time
disp('*****************************************');
disp([datestr(i_date,'yyyy-mm-dd') ' started ...']);
date = datestr(i_date, 'yyyymmdd');
file = [path_raw{iil} '/' datestr(i_date,'yyyy') '/' datestr(i_date,'yyyymmdd') '-block.records'];
if exist(file)
%% load CIC data
t =readtable(file,Delimiter='\t',HeaderLines=header_lines{iil},FileType='delimitedtext',MissingRule='fill');
%t =readtable(file,Delimiter='\t',HeaderLines=header_lines{iil},FileType='delimitedtext');
t=t(:,1:end-1);
if i_date==start_time
tt=t;
else
try
tt=[tt;t];
catch
disp('Something wrong with data')
end
end
%records = [records; time_start time_end measmode records_line];
end
end
disp(location{iil})
[mm nn]=size(tt);
if mm==0
continue
end
time_start = datetime(tt.begin_time,'TimeZone',time_zone,'InputFormat',time_format{iil});
time_end = datetime(tt.end_time,'TimeZone',time_zone,'InputFormat',time_format{iil});
xtickd=[start_time:end_time]';
xtick=datetime(xtickd,'ConvertFrom','datenum','TimeZone',time_zone);
close all
figure(1)
subplot(3,1,1)
plot(time_start,tt.internal_temperature_mean,'ok',time_start,tt.red_temperature_mean,'or',time_start,tt.blue_temperature_mean,'ob')
set(gca,'fontsize',16,'xtick',xtick)
grid
datetick('x','keepticks')
ylabel('T')
title([location{iil} ' ' datestr(start_time,'yyyy')])
subplot(3,1,2)
plot(time_start,tt.internal_humidity_mean,'ok',time_start,tt.red_humidity_mean,'or',time_start,tt.blue_humidity_mean,'ob')
set(gca,'fontsize',16,'xtick',xtick)
grid
datetick('x','keepticks')
ylabel('RH')
subplot(3,1,3)
plot(time_start,tt.internal_pressure_mean,'ok',time_start,tt.red_pressure_mean,'or',time_start,tt.blue_pressure_mean,'ob')
set(gca,'fontsize',16,'LineWidth',2)
grid
datetick
ylabel('P')
eval(['print -dpng -r100 ' path_save location{iil} '_env1.png'])
figure(2)
semilogy(time_start,tt.pos_conc_1,'or')
set(gca,'fontsize',16,'LineWidth',2,'xtick',xtick)
grid
legend('pos1')
title([location{iil} ' ' datestr(start_time,'yyyy')])
datetick('x','keeplimits','keepticks')
eval(['print -dpng -r100 ' path_save location{iil} '_pos1.png'])
figure(3)
semilogy(time_start,tt.neg_conc_1,'ob')
set(gca,'fontsize',16,'LineWidth',2,'xtick',xtick)
grid
legend('neg1')
title([location{iil} ' ' datestr(start_time,'yyyy')])
datetick('x','keeplimits','keepticks')
eval(['print -dpng -r100 ' path_save location{iil} '_neg1.png'])
rr=[datenum(time_start) tt.pos_conc_2-tt.pos_conc_3 ,tt.neg_conc_2-tt.pos_conc_3];
rtime=[start_time:1/24:end_time+1]';
rrm=tstatm(rtime,[7 7], [-1e99 -1e99],[1e99 1e99],[0.1 0.1],rr);
figure(4)
semilogy(rrm(:,1),rrm(:,2),'or')
set(gca,'fontsize',16,'LineWidth',2,'xtick',xtickd)
grid
legend('pos2-pos3')
title([location{iil} ' ' datestr(start_time,'yyyy')])
datetick('x','keeplimits','keepticks')
eval(['print -dpng -r100 ' path_save location{iil} '_pos_20_23.png'])
figure(4)
semilogy(rrm(:,1),rrm(:,3),'ob')
set(gca,'fontsize',16,'LineWidth',2,'xtick',xtickd)
grid
legend('neg2-neg3')
title([location{iil} ' ' datestr(start_time,'yyyy')])
datetick('x','keeplimits','keepticks')
eval(['print -dpng -r100 ' path_save location{iil} '_neg_20_23.png'])
figure(5)
semilogy(time_start,tt.blue_flow_rate_mean,'ob',time_start,tt.red_flow_rate_mean,'or')
set(gca,'fontsize',16,'LineWidth',2,'xtick',xtick)
grid
legend('Flow neg','Flow pos')
title([location{iil} ' ' datestr(start_time,'yyyy')])
datetick('x','keeplimits','keepticks')
eval(['print -dpng -r100 ' path_save location{iil} '_env2.png'])
Q=2;
alfa = 1.6e-6;
CSn =1.2*(Q./tt.neg_conc_1 - alfa.*tt.neg_conc_1);
CSp =1.2*(Q./tt.pos_conc_1 - alfa.*tt.pos_conc_1);
figure(6)
semilogy(time_start,CSn,'ob',time_start,CSp,'or')
set(gca,'fontsize',16,'LineWidth',2,'xtick',xtick)
grid
legend('CS neg','CS pos')
title([location{iil} ' ' datestr(start_time,'yyyy')])
datetick('x','keeplimits','keepticks')
eval(['print -dpng -r100 ' path_save location{iil} '_cs.png'])
end
exit