Marjaniemi CIC

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

https://www.atm.helsinki.fi/pics/cic/Marjaniemi_neg1.png

https://www.atm.helsinki.fi/pics/cic/Marjaniemi_pos1.png

https://www.atm.helsinki.fi/pics/cic/Marjaniemi_neg_20_23.png

https://www.atm.helsinki.fi/pics/cic/Marjaniemi_pos_20_23.png

https://www.atm.helsinki.fi/pics/cic/Marjaniemi_cs.png

https://www.atm.helsinki.fi/pics/cic/Marjaniemi_env1.png

https://www.atm.helsinki.fi/pics/cic/Marjaniemi_env2.png

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