% get_cm_from_dm.m
% J Grelet US191 - IRD Brest - Dec 2010
%
% get_cm_from_dm: get cycle mesure from delayed mode listing file
% input: 
%    local file list with unix cmd: ls */* > dm_files_list.txt
% output:
%    dm_files_list_cm.txt:  cycle mesure listing file
%    dm_files_list_dm.txt:  delayed mode listing file
%
% Use these 2 output files for updating Excel processing file:
%    Delayed_Mode_Processing_TSG_GOSUD.xlsx
%
% Use Filezilla and Synchronized Browsing mode to get an updated directory structure
% ftp.legos.obs-mip.fr/pub/soa/salinite/sss_delayed_mode/dm_data_2003-ongoing/
%
% If you have an identical directory structure on the local machine and the server, 
% you can enable synchronized browsing. This means that any directory navigation
% on one machine is duplicated on the other.
%
% To enable synchronized browsing, create an entry in the Site Manager, and on 
% the Advanced tab, ensure that the Default local directory and the Default 
% remote directory have the same structure. 
% Then check "use synchronized browsing," save your settings, and connect.
%
% Directory Comparison
% To quickly see differences between files on the local machine and the server, 
% choose View > Directory Comparison, and choose either "compare file size" or
% "compare modification time." (You also hide identical files by checking that option.
% Then choose "Enable."
%
% You will now see color-coded differences between copies of the same file on the 
% different machines. See their meanings here. 


% set your local directory
dir = 'dm_data_2003-ongoing';

% initialize current plateforme name 
current_pf = '';

% create local file list with unix cmd: ls */* > dm_files_list.txt
fid = fopen(strcat(dir,'/dm_files_list.txt'), 'rt'); 

% open files descriptors
fid_cm = fopen(strcat(dir,'/dm_files_list_cm.txt'), 'wt'); 
fid_dm = fopen(strcat(dir,'/dm_files_list_dm.txt'), 'wt'); 

while ~feof(fid)
  
  % get fileName
  fileName = fgetl(fid);
  
  % create netcdf instance
  nc = us191.netcdf(strcat(dir, filesep, fileName));
  
  % get globals attributes
  cm = nc.ATTRIBUTES.CYCLE_MESURE;
  pf = nc.ATTRIBUTES.PLATFORM_NAME;
  
  % if plateforme name change, write it in file
  if ~strcmp(current_pf, pf)
     fprintf(fid_cm, '\n%s :\n\n', upper(pf)); 
     fprintf(fid_dm, '\n%s :\n\n', upper(pf)); 
     current_pf = pf;
  end
    
  % write result in two files
  fprintf(fid_cm, '%s\n', cm); 
  
  match = regexp( fileName, '.*?/(.*)', 'tokens');
  
  % build tsg struct
  % ----------------
  if ~isempty(match)
    fprintf(fid_dm, '%s\n', match{1}{1});
  end
  
  % close netcdf file
  nc.close;
  
end

fclose(fid_cm);
fclose(fid_dm);