%concaten_ficroscarbinorgdissous_p3l1.m

%programme réalisé en novembre 2004
%objectif: prog de concatenation des fichiers "p3lg1THERMOall_sansentete.txt" 
                                 %avec "PxLy_carbinorgdissous_jourjulien_170703" (fichier carbone inorganique dissous avec jour julien) 
%les fichiers "carbone inorganique dissous" sont issus de la mise à jour au mois d'octobre 2004 des données pomme du site web. 
%Rq: le fichier de référence est "pxlgyTHERMOall_sansentete.txt" car il s'agit cette fois-ci de données de continu de surface
    %(il ne s'agit pas du "ficrosdficcoordpxly_modif" habituellement utilisé pour le fichiers rosette : profils verticaux)


%FICHIERS LUS:
%fichiers "pxlgyTHERMOall_sansentete"  : 
                      %données (12 colonnes)
                      %fichier sans entete (ont été supprimées)
%fichiers "PxLy_carbinorgdissous_jourjulien_170703.xls": 
                  %legende + données (attention 20 colonnes pour p3l1 au lieu des 21 col de p1l1 et p2l1)
                  %fichier excel, suppression légende et enregistrement en .txt

%concatene les deux fichiers par mise en correspondance du jour julien
               %jour julien = col n°1 pour fichier thermoall
               %jour julien = col n°20 pour fichier carbinorgdiss pour p3l1 uniquement (attention: col n°21 pour p1l1 et p2l1)          
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
%trame
cd D:\pomme\ctdraw\etaloxlp\refdesc\pommeres_def\ficsurfok\ficsurfok_sans_entete
load p3lg1THERMOall_sansentete.txt
%choix du n° de la colonne (pour le fichier dosage uniquement)
%col=1;  %n° de la colonne 'jour julien' du fichier dosage
%col=2;  % n° de la colonne 'jour' du fichier dosage
%col=3; % n° de la colonne 'mois' dbars du fichier dosage
%col=4; % n° de la colonne 'année'  du fichier dosage
%col=5; % n° de la colonne 'heure' du fichier dosage
%col=6; % n° de la colonne 'minute' du fichier dosage
%col=7;  % n° de la colonne 'lat' du fichier dosage
%col=8;  % n° de la colonne 'long' du fichier dosage
%col=9;  % n° de la colonne 'TQP' du fichier dosage
%col=10; % n° de la colonne 'SAL' du fichier dosage
%col=11; % n° de la colonne ' FLAG'  du fichier dosage
%col=12; % n° de la colonne 'TSIS' du fichier dosage
%choix du parametre au sein de la liste du fichier dosage
%liste fichier rosette=listros
listros={'JOURJUL','JOUR','MOIS','ANNEE','HEURE','MINUTE','LAT','LONG','TQP','SAL','TSIS'};

%fichier donnees pomme web
cd D:\pomme\ctdraw\donpomweb_mise_a_jour_oct2004\carbinorgdissous_170703\calcul_jour_julien
load P3L1_carbinorgdissous_jourjulien_170703.txt
%choix du n° de la colonne (pour le fichier dosage uniquement)
dosligcol=1;  %n° de la colonne 'n° de ligne' du fichier dosage
doscampcol=2;  % n° de la colonne 'campagne' du fichier dosage
dosdatecol=3;  % n° de la colonne 'date' du fichier dosage
dosjourcol=4;  % n° de la colonne 'jour' du fichier dosage
dosmoiscol=5; % n° de la colonne 'mois' dbars du fichier dosage
dosanneecol=6; % n° de la colonne 'année'  du fichier dosage
dostimecol=7; % n° de la colonne 'time' du fichier dosage
dosheurecol=8; % n° de la colonne 'heure' du fichier dosage
dosminutecol=9; % n° de la colonne 'minute' du fichier dosage
dossecondecol=10;  %n° de la colonne 'seconde' du fichier dosage
doslatcol=11;  % n° de la colonne 'lat' du fichier dosage
doslongcol=12;  % n° de la colonne 'long' du fichier dosage
dospressatmcol=13;  % n° de la colonne 'press atm' du fichier dosage
dostwscol=14; % n° de la colonne 'Tws' du fichier dosage
dossalthermocol=15; % n° de la colonne ' sal thermo'  du fichier dosage
doswindspeedcol=16; % n° de la colonne 'wind speed' du fichier dosage
dospco2swuatmcol=17; % n° de la colonne 'pCO2 sw uatm' du fichier dosage
dosfco2swuatmcol=18;  % n° de la colonne 'fCO2sw uatm' du fichier dosage 
dospco2atminterpolatedcol=19; % n° de la colonne 'pCO2 atmospheric interpolated'  du fichier dosage
dosjourjulcol=20; % n° de la colonne 'jour julien' du fichier dosage
%choix du parametre au sein de la liste du fichier dosage
%liste fichier dosage=listdos
listdos={'LIG','CAMP','DATE','JOUR','MOIS','ANNEE','TIME','HEURE','MINUTE','SECONDE','LAT','LONG','PRESSATM','TSW','SALTHERMO','WINDSPEED','PCO2SWUATM','FCO2SWUATM','PCO2ATMINTERP','JUL'};
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
cd D:\pomme\ctdraw\etaloxlp\refdesc\pommeres_def\ficsurfok\ficsurfok_sans_entete
load p3lg1THERMOall_sansentete.txt
rostm=p3lg1THERMOall_sansentete; %pour commodité
textbtl='JOURJUL,JOUR,MOIS,ANNEE,HEURE,MINUTE,LAT,LONG,TQP,SAL,TSIS';
%  affichage des variables par colonne pour controle
njulros=rostm(:,1);  %njulros= n° col julien  
nlatros=rostm(:,7); %lat 
nlongros=rostm(:,8); %long 
ntros=length(rostm); %ntros= nbre de lignes trame rosette

%lecture du fichier dosage
cd D:\pomme\ctdraw\donpomweb_mise_a_jour_oct2004\carbinorgdissous_170703\calcul_jour_julien
load P3L1_carbinorgdissous_jourjulien_170703.txt
ydos=P3L1_carbinorgdissous_jourjulien_170703; %pour commodité
njuldos=ydos(:,20);  %njuldos=n° col jour julien (col n°20 pour p3l1 au lieu de n°21 pour p1l1 et p2l1)
nlatdos=ydos(:,11); %latitude
nlongdos=ydos(:,12); %longitude
ntdos= length(ydos); %ntdos= nbre de lignes dosage
%j'ajoute donc 20 colonnes au fichier rostm de départ, mais je les copie d'abord
roscomb=rostm; %roscomb pour rosette combiné
bidon11= ones(ntros,20)*NaN  ; %je dois donc remplir bidon avec les lignes de ydos. %20 col au total pour p3l1  %21 col au total pour p1l1 et p2l1
%bidon11= ones(ntros,21)*NaN  ; %je dois donc remplir bidon avec les lignes de ydos.
%RQ: le fait de rajouter 21 colonnes alors qu'il n'y a que 20 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 (reference)     nombre de ligne fic dosage (carbinorgdis) ')
%ntros=nbre lignes thermoall,    ntdos=nbre lignes carbone inorg dissous
disp (   [ntros , ntdos])
nbid=0;

%rajout du 6/12/2004 : effectuer l'arrondi à la minute de njulros
%njulros=col jour julien du fichier thermoall
nminros=round(njulros*1440);

for ntr=1:ntros;
%indntd=find((nstados==nstaros(ntr))&(nbtldos==nbtlros(ntr)));
%indntd=find((njuldos)==(njulros(ntr)));
%particularite pour p3l1 : on a plus d'une ligne avec le meme jour julien donc :
 %indntd=find(abs(njulros(ntr)-njuldos)<1/1440);
%indntd=find((abs(njulros(ntr)-njuldos)<0.5/1440)|((njulros(ntr)-njuldos)==0.5/1440)); %précision à la demi-minute

%Rajout du 6/12/2004 :
%indntd=find(((abs(nminros(ntr))-(njuldos*1440)<=0.5))|(((nminros(ntr))-(njuldos*1440))==0.5)); %précision à la demi-minute
indntd=find(abs(nminros(ntr)-(njuldos*1440))<0.5|(nminros(ntr)-(njuldos*1440))==0.5); %précision à la demi-minute
%indntd=find(abs(nminros(ntr)-(njuldos*1440))<=0.5);%précision à la demi-minute
length(indntd)
        if length(indntd)>0;
        bidon11(ntr,:)=ydos(indntd(1),:);
      end
end
nomb=find(isnan(bidon11));

%indntd=find(min(abs(njulros(ntr)-njuldos))<5/1440);
% indntd=find(min(abs(njulros(ntr)-njuldos))); %voir si minimum suffit
   %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 avec meme jour julien');
       % disp('ligne fichier dosage  jour julien'); disp(njuldos(indntd(1,1)));disp(indntd);   
        % end
    %if size (indntd,1)>1; find(abs(min(njulros(ntr)-njuldos));
    % si indntd est vide je laisse les Nan dans bidon1
    %nlatdos(ntr)=nlatros(indntd)
    %nlongdos(ntr)=nlongros(indntd)
    %end
    %end
 
% if 1==0
 %nbid
%bidon11= fichier de mise en correspondance (des fichiers rosette et dosage)
rosdos=bidon11 ;
textdos='LIG,CAMP,DATE,JOUR,MOIS,ANNEE,TIME,HEURE,MINUTE,SECONDE,LAT,LONG,PRESSATM,TSW,SALTHERMO,WINDSPEED,PCO2SWUATM,FCO2SWUATM,PCO2ATMINTERP,JUL';

%A EXECUTER SI CORRECT POUR SAUVEGARDE:
cd D:\pomme\ctdraw\etaloxlp\refdesc\oxygdefexpl\fichiers_rosette_complets\ficrosdcoord_donpomweb\mise_a_jour_oct2004
%creation d'un dossier "mise_a_jour_oct2004" au sein duquel on insere les fichiers resultats
textrosimp='JOURJUL,JOUR,MOIS,ANNEE,HEURE,MINUTE,LAT,LONG,TQP,SAL,TSIS (trame), LIG,CAMP,DATE,JOUR,MOIS,ANNEE,TIME,HEURE,MINUTE,SECONDE,LAT,LONG,PRESSATM,TSW,SALTHERMO,WINDSPEED,PCO2SWUATM,FCO2SWUATM,PCO2ATMINTERP,JUL';

save  ficros_carbinorgdiss_jourjul_p3l1    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_carbinorgdiss_jourjul_p3l1.txt rosimp  -ascii
end