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