Blame view

tr_sort.m 3.05 KB
e82385a1   Paul Nicot   Ajout des fichier...
1
2
3
4
5
6
7
8
9
10
11
function tr_sort(num_spot,mission,debut,h1,fin,h2)
% Compilation de données des bouées dérivantes par mission et date
%
%   Attention, heure UTC!! Enregistrements des positions à partir du 20
%   février 2015, certaines positions de spots sont manquantes... (début
%   OHA)
%
%   -» num_spot  = numéro du/des spots à traiter (ex: [1] ou [45 46])
%   -» mission   = diminutif de la mission (3 caractères en capitale)
%   -» debut     = année, mois, jour de début de dérive (ex: 20150315)
%   -» h1        = heure,min de début de dérive (hhmm)
8686e5ff   Paul Nicot   ajout de # de spo...
12
13
14
%   -» fin*      = année, mois, jour de fin de dérive 
%   -» h2*       = heure,min de fin de dérive (hhmm) 
%   (*facultatif, si non précisé -» données compilées jusqu'à maintenant)
e82385a1   Paul Nicot   Ajout des fichier...
15
16
17
%
%   exemple : sort_spot([23 24],'BDC',20150612,1255,20150623,1835)
%
8686e5ff   Paul Nicot   ajout de # de spo...
18
19
% Le fichier brute de données est situé sur Mingan:
%   /share/archives/partage_lasso/spot/spots_pos_flag_clean.csv
e82385a1   Paul Nicot   Ajout des fichier...
20
%
8686e5ff   Paul Nicot   ajout de # de spo...
21
22
% Enregistrements sous forme de structure sur Mingan:
%   /share/archives/partage_lasso/spot/drifter
e82385a1   Paul Nicot   Ajout des fichier...
23

f6e4d1a4   Dany Dumont   mise a jour de tr...
24
rootdir = '/share/archives/partage_lasso/spot';
e82385a1   Paul Nicot   Ajout des fichier...
25

f6e4d1a4   Dany Dumont   mise a jour de tr...
26
27
28
fid1 = fopen([ rootdir '/spots_pos_flag_clean.csv']);
header = textscan(fid1,'%s;%s;%s;%s;%s;%s',1);
spot_clean = textscan(fid1,'%f %f %f %f %s %s','Delimiter',';');
e82385a1   Paul Nicot   Ajout des fichier...
29
30
fclose(fid1);

8686e5ff   Paul Nicot   ajout de # de spo...
31
32
% temps matlab
nM = spot_clean{1,4}/86400 + datenum(1970,1,1);
e82385a1   Paul Nicot   Ajout des fichier...
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

% date de début de dérive (en heure UTC)
dat1 = num2str(debut); H1 = num2str(h1,'%04i');
y1 = str2double(dat1(1:4)); m1 = str2double(dat1(5:6)); d1 = str2double(dat1(7:8));
h1 = str2double(H1(1:2)); mm1 = str2double(H1(3:4));
yr = dat1(3:4);

dat1 = datenum(y1,m1,d1,h1,mm1,00);

% date de fin de dérive (en heure UCT)
% si non spécifié, prise de données jusqu'à maintenant
if(~exist('fin','var'))
    % reference à l'heure UTC
    t = utc; dat2 = datenum(t(1),t(2),t(3),t(4),t(5),t(6));
else
    dat2 = num2str(fin); H2 = num2str(h2,'%04i');
    y2 = str2double(dat2(1:4)); m2 = str2double(dat2(5:6)); d2 = str2double(dat2(7:8));
    h2 = str2double(H2(1:2)); mm2 = str2double(H2(3:4));
    
    dat2 = datenum(y2,m2,d2,h2,mm2,00);
end

for i = 1:length(num_spot);
    
        filename = ['s' num2str(num_spot(i),'%03i') '_'  mission yr ]; 
        
8686e5ff   Paul Nicot   ajout de # de spo...
59
60
61
62
63
64
65
66
67
68
69
70
        K = find(spot_clean{1,1} == num_spot(i) & nM> dat1 & nM < dat2);

        data = struct('spot',{''},'lon',{''},'lat',{''},'timeU',{0},...
                       'timeM',{0},'flag',{''});              
        data.timeM   = nM(K);
        data.lon     = spot_clean{1,2}(K);
        data.lat     = spot_clean{1,3}(K);
        data.timeU   = spot_clean{1,4}(K);
        data.flag    = spot_clean{1,6}(K);
        data.spot    = spot_clean{1,1}(K); 
      
        if(~exist([ rootdir '/drifter/' mission ]));
e82385a1   Paul Nicot   Ajout des fichier...
71
72
73
74
75
76
77
78
            mkdir([ rootdir '/drifter/' mission '/csv' ]);
            mkdir([ rootdir '/drifter/' mission '/mat' ]);
        end
        
        pathname = [ rootdir '/drifter/' mission '/mat/'  filename '.mat'];
        save(pathname,'data');
        
        csvname = [ rootdir '/drifter/' mission '/csv/'  filename '.csv'];
8686e5ff   Paul Nicot   ajout de # de spo...
79
80
81
        CSV = struct2table(data);
  
        writetable(CSV,csvname);
e82385a1   Paul Nicot   Ajout des fichier...
82
end