%concaten_ficros_assimiazote_p1l2.m

%objectif: prog de concatenation des fichiers "ficrosdficcoordpxly_modif" (fichier trame)
                                 %avec "assimi_azote_fluxNweb_PxLy.xls" 
%FICHIERS LUS:
%fichiers "ficrosdficcoordpxly_modif"  : 
                      %legende + données (8 colonnes)
                      %fichier excel, suppression de la legende et enregistrement en .txt
%fichiers "assimi_azote_fluxNweb_PxLy.xls": 
                  %legende + données (9 colonnes)
                  %fichier excel, suppression légende et enregistrement en .txt
                  %fichiers uniquement pour les leg2: p1l2, p2l2, p3l2

%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°5 pour fichier assimiazote
               %n° de btl = col n°3 pour fichier ficros
               %n° de btl = pas de col n° de btl pour fichier assimiazote
%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\assimilation_azote
load assimi_azote_fluxNweb_P1L2.txt
%Detail des colonnes:
%col 1=nligne
%col 2=ncampagne
%col 3=nsite
%col 4=date
%col 5=CTD
%col 6=Z en mètres
%col 7=absorption NH4
%col 8=absorption UREE
%col 9=absorption NO3
%choix du n° de la colonne (pour le fichier dosage uniquement) 
%dosstacol=1;  %DOSstacol= n° de la colonne 'station' du fichier dosage
%dosjuldebcol=2;  
%doslatcentcol=3;  
%doslongcentcol=4;  
%choix du parametre au sein de la liste du fichier dosage
%liste fichier dosage=listdos
listdos={'lig','camp','site','date','CTD','Z','absNH4','absUREE','absNO3'};

%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
%essai de concatenation en fonction nstation et prof car fichier assimi azote ne possede pas de n btl
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  
nprofros=rostm(:,4);%nprofros= prof 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\assimilation_azote
load assimi_azote_fluxNweb_P1L2.txt
ydos=assimi_azote_fluxNweb_P1L2; %pour commodité
nstados= ydos(:,5); %nstados=n° station dosage 
nprofdos=ydos(:,6); %nprofdos=prof dosage
%nbtldos=ydos(:,3); %nbtldos=n° btl dosage
ntdos= length(ydos); %ntdos= nbre de lignes dosage
%j'ajoute donc 9 colonnes au fichier rostm de départ, mais je les copie d'abord
roscomb=rostm; %roscomb pour rosette combiné
bidon11= ones(ntros,9)*NaN; %je dois donc remplir bidon avec les lignes de ydos.

%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 ];
tabfinal=[];




for ntr=1:ntros;          % on va parcourir tout le tableau
    prof1=nprofros(ntr);  % lecture de la profondeur
    meilleurdiff=999999;  % initialisation ecart entre 2 prof
    idx=0;                % initialisation ligne de meilleur "profondeur"

    indexstation=find(rostm(ntr,2)==ydos(:,5));  % On cherche pour la ligne considérée si le fichier à concat contient la station => matrice avec les nu° de ligne contenant les stations
    if isempty(indexstation)==0                  % s'il trouve qq chose (isempty=0) => traitement, une station equivalente existe
        ntdosv=size(indexstation,1);             % calcul du nombre de station équivalente existante  
        for lig=1:ntdosv;                        % nouvelle boucle sur ces stations
              ntr2=indexstation(lig);            % on choisit une ligne dans le tabl à concaténer
              prof2=nprofdos(ntr2);              % recup de la profondeur
%              if fix(prof1)==fix(prof2);   % profondeur exacte au metre
%              pres

% prof à 10 m près
                dec1= fix(round(prof1/10))*10;    % on arrondit à +/- 5m
                dec2= fix(round(prof2/10))*10;    % idem
                if dec1==dec2                     % si les prof appartiennent au mme groupe
%                
               
                    diff=abs(prof1-prof2);        % calcul de la diff entre profondeurs
                    if diff<meilleurdiff ;        % si la diff est la plus petite de tout le traitement...
                            meilleurdiff=diff;     % mis à jour du score à battre
                            idx=ntr2;              % enregistrement de la position de la meilleure ligne
                    end
               end
        end
       
        if not(idx==0) ;  % s'il trouve qqq chose idx est différent de 0
           tabfinal(ntr,:)=[rostm(ntr,1:8) ydos(idx,1:9) 1]; % traitement
       else
            tabfinal(ntr,:)=[rostm(ntr,1:8) bl 0]; % sinon nan
        end
        
    else
      tabfinal(ntr,:)=[rostm(ntr,1:8) bl 0]; % si pas de station à concaténer : nan 
    
    end
    
end


%if 1==0    
%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 
  %end   
  %if 1==0

 %for ntr=1:ntros;
%indntd=find(nstados==nstaros(ntr));
%indntd=find((nstados==nstaros(ntr))&(nprofdos==nprofros(ntr)));
%indntd=find((nstados==nstaros(ntr))&(nbtldos==nbtlros(ntr)));
    %if size(indntd,1)==1;
      %  bidon11(ntr,:)=ydos(indntd,:);
      %  nbid =nbid+1; %mise en place d'un compteur (pour verification)
      %end
   % if size (indntd,1)>1; disp('plus qu une ligne avec 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='rosdos: lig,camp,site,date,CTD,Z,absNH4,absUREE,absNO3';

%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,camp,site,date,CTD,Z,absNH4,absUREE,absNO3';
texttabfinal='nligne,nstation,posbtl,prof,station,juldeb,latcent,longcent (trame), lig,camp,site,date,CTD,Z,absNH4,absUREE,absNO3';

%save  ficros_assimiazote_p1l2    rostm rosdos textdos textbtl textrosimp
save  ficros_assimiazote_p1l2    tabfinal rostm rosdos textdos textbtl texttabfinal
%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];
tabfinal=[rostm, rosdos];
%save ficros_assimiazote_p1l2.txt rosimp  -ascii
save ficros_assimiazote_p1l2.txt tabfinal  -ascii
end