%concaten_ficros_rendcroiss_p1l2.m

%objectif: prog de concatenation des fichiers "ficrosdficcoordpxly_modif" (fichier trame)
                                 %avec "rend_croiss_PxLy" (fichier rendement de croissance) 
%FICHIERS LUS:
%fichiers "ficrosdficcoordpxly_modif"  : 
                      %legende + données (8 colonnes)
                      %fichier excel, suppression de la legende et enregistrement en .txt
%fichiers "rend_croiss_PxLy": 
                  %legende + données (18 colonnes)
                  %fichier excel, suppression légende et enregistrement en .txt

%concatene les deux fichiers par mise en correspondance du n° de station et du n° de btl
               %n° de station = col n°2 pour fichier ficros
               %n° de station = col n°4 pour fichier rendcroiss
               %n° de btl = col n°3 pour fichier ficros
               %n° de btl = col n°5 pour fichier rendcroiss
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
%trame
cd D:\pomme\ctdraw\etaloxlp\refdesc\oxygdefexpl\fichiers_rosette_complets\ficros_coord\concaten_ficrosdcoord
load ficrosdficcoordp1l2_modif.txt
%Detail des colonnes:
%col 1=n ligne
%col 2=n station
%col 3=n position btl
%col 4=prof dbars
%col 5=station
%col 6=juldeb
%col 7=latcent
%col 8=longcent
%choix du parametre au sein de la liste du fichier trame rosette
%liste fichier rosette (=trame rosette)=listros
listros={'nligne','nstation','posbtl','prof','station','juldeb','latcent','longcent'};

%fichier donnees pomme web
cd D:\pomme\ctdraw\donnees_pomme_web_NOV_2003\prod_bacterienne_rendements_croissance
load rend_croiss_P1L2.txt
%detail des colonnes:
dosligcol=1; %n° de la col 'n°de ligne' 
doscampcol=1; %n° de la col "n°de campagne"
dossitecol=3; %n° de la col "n°site"
dosstacol=4;  %RENDCROISSstacol= n° de la colonne 'n° de station' du fichier dosage
dosbellecol=5;  %RENDCROISSbellecol= n° de la colonne 'n° de belle' du fichier dosage
dosprofcol=6;  %RENDCROISSprofcol= n° de la colonne 'prof' (en m) du fichier dosage
doscodecol=7;  %RENDCROISScodecol= n° de la colonne 'code' du fichier dosage
dosdtmbiodcol=8; %RENDCROISSdtmbiodcol = n° de la colonne 'duree totale manipe biodegradation' (jours) du fichier dosage
dosdoconsoo2col=9; %RENDCROISSdoconsoo2col= n° de la colonne 'durée observation consommation  O2' (jours) du fichier dosage
dosconcmaxo2col=10; %RENDCROISSconcmaxo2col=n° de la colonne 'concentration maxi O2' (µM O2) du fichier dosage
dosconcmino2col=11; %RENDCROISSconcmino2col=n° de la colonne 'concentration mini O2' (µM O2) du fichier dosage
dospconso2col=12; %RENDCROISSpconso2col=n° de la colonne 'regression lineaire pente consommation O2' (µmol O2/l/j) du fichier dosage
dosmmaxbpcol=13; %RENDCROISSmmaxbpcol=n° de la colonne 'moment maximum BP' (jours) du fichier dosage
dostps0bpcol=14; %RENDCROISStps0bpcol=n° de la colonne 'temps zero BP' (ngC/l/h) du fichier dosage
dosmaxbpcol=15; %RENDCROISSmaxbpcol=n° de la colonne 'maximum BP' (ngC/l/h) du fichier dosage
dosdrbgecol=16; %RENDCROISSdrbgecol=n° de la colonne 'date reelle prise pour calcul BGE' (jour) du fichier dosage
dosbpcumcol=17; %RENDCROISSbpcumcol=n° de la colonne 'BP cumule sur cette periode rapporte a un flux journalier' (µmol C/l/j) du fichier dosage
dosrendcroisscol=18; %RENDCROISSrendcroisscol=n° de la colonne 'rendement de croissance BGE' (%) du fichier dosage

%choix du parametre au sein de la liste du fichier dosage
%liste fichier dosage=listdos
listdos={'LIG','CAMP','SITE','NSTAT','NBTEL','PROF','CODE','DTMB','DOCO2','CMO2','CMINO2','RLPCO2','MMBP','TPSZBP','MAXBP','DRCALCBGE','BPCFJ','RCBGE'};
%LIG=n°ligne
%CAMP=n° de campagne (1 pour pomme 1, etc.)
%SITE=n°site (site 1, site 2, etc.)
%NSTA=N° station 
%NBTEL=N° bouteille 
%PROF=profondeur 
%CODE=code 
%DTMB=duree totale manipe biodegradation 
%DOCO2=durée observation consommation  O2 
%CMO2=concentration maxi O2 
%CMINO2=concentration mini O2 
%RLPCO2=regression lineaire pente consommation O2 
%MMBP=moment maximum BP 
%TPSZBP=temps zero BP 
%MAXBP=maximum BP 
%DRCALCBGE=date reelle prise pour calcul BGE 
%BPCFJ=BP cumule sur cette periode rapporte a un flux journalier 
%RCBGE=rendement de croissance BGE 
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
cd D:\pomme\ctdraw\etaloxlp\refdesc\oxygdefexpl\fichiers_rosette_complets\ficros_coord\concaten_ficrosdcoord
load ficrosdficcoordp1l2_modif.txt
rostm=ficrosdficcoordp1l2_modif (:,1:8)

textbtl='nligne,nstation,posbtl,prof,station,juldeb,latcent,longcent';
%  affichage des variables par colonne pour controle
nstaros=rostm(:,2);%nstaros= n° station trame rosette  
nbtlros=rostm(:,3);%nbtlros= n° btl trame rosette  
ntros=length(rostm); %ntros= nbre de lignes trame rosette

%lecture du fichier dosage
cd D:\pomme\ctdraw\donnees_pomme_web_NOV_2003\prod_bacterienne_rendements_croissance
load rend_croiss_P1L2.txt
ydos=rend_croiss_P1L2; %pour commodité
nstados= ydos(:,4); %nstados=n° station dosage 
nbtldos=ydos(:,5); %nbtldos=n° btl dosage
ntdos= length(ydos); %ntdos= nbre de lignes dosage
%j'ajoute donc 18 colonnes au fichier rostm de départ, mais je les copie d'abord
roscomb=rostm; %roscomb pour rosette combiné
bidon11= ones(ntros,18)*NaN  ; %je dois donc remplir bidon avec les lignes de ydos.
%bidon11= ones(ntros,19)*NaN  ; %je dois donc remplir bidon avec les lignes de ydos.
%RQ: le fait de rajouter 18 colonnes alors qu'il n'y a que 19 colonnes de données à insérer permet de créer une col présence/absence de données (cf aussi ligne 116 du prog:  bidon11(ntr,:)=[ydos(indntd,:) 1];  )
%cette col supplémentaire sera supprimée par la suite au sein du fichier résultat excel
%autre solution: on passe deux fois le prog: une fois avec, une fois sans

%Mise en correspondance des fichiers rosette (trame rosette) et dosage. Les deux fichiers doivent avoir le meme nbre de lignes. 
%Postulat: le nbre de lignes du fichier rosette est sup à celui du fichier dosage, par consequent on met en correspondance le fichier dosage 
%Reperage des n° de col du n° de station de ydos et reperage des n° de belle de ydos. Puis les indiquer dans le programme.
disp (' nombre de lignes rosette     nombre de ligne fic dosage ')
disp (   [ntros , ntdos])
nbid=0;

%bl=[ NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ];
%tabfinal=[];

for ntr=1:ntros;
    %jul1=nstaros(ntr);
    %meilleurdiff=999999;
    %idx=0;
    %for ntr2=2:ntdos;
      %  jul2=nstados(ntr2);
       % if fix(jul1)==fix(jul2);
       %    diff=abs(jul1-jul2);
       %    if diff<meilleurdiff ;
      %          meilleurdiff=diff;
      %          idx=ntr2;
      %      end
      %   end
      %  end
  %  if not(idx==0) ;
  %     tabfinal(ntr,:)=[rostm(ntr,1:12) ydos(idx,1:12)];
  %  else
  %      tabfinal(ntr,:)=[rostm(ntr,1:12) bl];
  %   end
  %end
    
   
%if 1==0    
    
  % indntd=find((nstados)==(nstaros(ntr)));
indntd=find((nstados==nstaros(ntr))&(nbtldos==nbtlros(ntr)));
    if size(indntd,1)==1;
        bidon11(ntr,:)=ydos(indntd,:) ;
        %bidon11(ntr,:)=[ydos(indntd,:) 1]; %cf lignes 76 à 78
        nbid =nbid+1; %mise en place d'un compteur (pour verification)
    end
    if size (indntd,1)>1; disp('plus qu une ligne avc meme btl et meme station');
        disp('ligne fichier dosage  station'); disp(nstados(indntd(1,1)));disp(indntd);   
    end
    % si indntd est vide je laisse les Nan dans bidon1
 end
 
% if 1==0
 nbid
%bidon11= fichier de mise en correspondance (des fichiers rosette et dosage)
rosdos=bidon11 ;
textdos='LIG,CAMP,SITE,NSTAT,NBTEL,PROF,CODE,DTMB,DOCO2,CMO2,CMINO2,RLPCO2,MMBP,TPSZBP,MAXBP,DRCALCBGE,BPCFJ,RCBGE';

%A EXECUTER SI CORRECT POUR SAUVEGARDE:
cd D:\pomme\ctdraw\etaloxlp\refdesc\oxygdefexpl\fichiers_rosette_complets\ficrosdcoord_donpomweb
textrosimp='nligne,nstation,posbtl,prof,station,juldeb,latcent,longcent (trame), LIG (dos),CAMP,SITE,NSTAT,NBTEL,PROF,CODE,DTMB,DOCO2,CMO2,CMINO2,RLPCO2,MMBP,TPSZBP,MAXBP,DRCALCBGE,BPCFJ,RCBGE';

save  ficros_prodbact_p1l2    rostm rosdos textdos textbtl textrosimp
%rosimp=[rostm(:,1), rostm(:,2), rostm(:,3), rostm(:,4), rosdos(:,1), rosdos(:,2), rosdos(:,3), rosdos(:,4), rosdos(:,5), rosdos(:,6), rosdos(:,7), rosdos(:,8), rosdos(:,9), rosdos(:,10), rosdos(:,11), rosdos(:,12)];
rosimp=[rostm, rosdos];
save ficros_prodbact_p1l2.txt rosimp  -ascii
end