Make meta hs6.m
Revision as of 15:56, 2 August 2010 by 128.111.101.185 (talk) (Created page with '<pre> function make_meta_hs6(cruise) %Function to automatyically construct the metafile.txt %needed for HS-6 data processing %Shpuld work on PC and UNIX %Author: Tihomir Kostadi…')
function make_meta_hs6(cruise) %Function to automatyically construct the metafile.txt %needed for HS-6 data processing %Shpuld work on PC and UNIX %Author: Tihomir Kostadinov %Date: November 20, 2003 %modified: %if isunix % eval(strcat(['cd /home/data65/pb/HYDROSCAT/', cruise])); % ctd_path = strcat(['/home/data65/pb/CTD/', cruise,'/hdr/']); % % else %PC % eval(strcat([cd ,'k:\links\PB\HYDROSCAT\', cruise])); % ctd_path = strcat(['k:\links\PB\CTD', cruise,'\hdr\']); % end %Open metafile for wrting and print header; %ctd_path = strcat(['/home/eriks/',cruise,'/CTD/',cruise,'/hdr/']) % temp ctd_path for pb215 ctd_path = strcat(['/home/eriks/pb218/215_test/',cruise,'/CTD/',cruise,'/hdr/']); fid = fopen('metafile.txt', 'w'); fprintf(fid,'%s', 'File Cruise_ID Date Station Latitude Longitude'); %print header; fprintf(fid, '\n'); %Extract current directory info. %k = dir ----------------------------------------original %altered above if isunix look at original when ready to insert pattern = fullfile(pwd,'*.dat') k = dir(pattern) filenames = {}; for i = 1:size(k,1) filenames(i) = cellstr(k(i).name) end %Filter for .asc files only; asc_files = {}; for i = 1:length(filenames) if ~isempty(findstr(char(filenames(i)),'dat')) asc_files = [asc_files, filenames(i)]; end end %Loop thropugh each h*.asc file to create a line for it in the metafile %Extract LAT/LON from the CTD .asc files (NMEA) %cd ../.. pwd for i = 1:length(asc_files) line = ''; file = char(asc_files(i)); cdate = file(2:7); line = strcat([line,file(1:end-4),' ',cruise,' ',cdate, ' PnB', num2str(pb_let2num(file(8)))]); %used to have 's' before file %Extract lat/lon and append to line ctd_file = strcat(['X',cdate,upper(file(8)),'.hdr']); ctd_fullfile = strcat(ctd_path, ctd_file); disp(['Reading NMEA lat/lon from CTD file ', ctd_fullfile]) ctdfid = fopen(ctd_fullfile,'r') ctdline = ''; while isempty(findstr(ctdline,'NMEA Latitude')) ctdline = fgetl(ctdfid); end %Note that the line '* NMEA Latitude = 34 04.95 N' ansd the follwoing %line have to have equal sign '=' brigh tbeore lat/lon in degrees, %space, decimal minutes format. equal_sign = findstr(ctdline, '='); lat_raw = ctdline(equal_sign+1:end); filter = isletter(lat_raw) lat = ''; for i = 1:length(lat_raw) if filter(i)==0 lat = [lat, lat_raw(i)]; end end lat = str2num(lat); latitude = lat(1) + lat(2)/60; %Longitude processing ctdline = fgetl(ctdfid); equal_sign = findstr(ctdline, '='); lon_raw = ctdline(equal_sign+1:end); filter = isletter(lon_raw); lon = ''; for i = 1:length(lon_raw) if filter(i)==0 lon = [lon, lon_raw(i)]; end end lon = str2num(lon); longitude = lon(1) + lon(2)/60; fclose(ctdfid); line = strcat([line, ' ',num2str(latitude),' ',num2str(longitude)]); fprintf(fid,'%s',char(line)); fprintf(fid,'\n'); atend = pwd end fclose(fid); %end