diff --git a/tsg_util/tsg_readTsgDataTxt.m b/tsg_util/tsg_readTsgDataTxt.m index 127f843baba85471b9c117834af807e30d42607a..d73df09b679c41d4fccf28956f1fb59ddb1cdf79 100644 --- a/tsg_util/tsg_readTsgDataTxt.m +++ b/tsg_util/tsg_readTsgDataTxt.m @@ -3,7 +3,7 @@ function [error] = tsg_readTsgDataTxt( hTsgGUI, filename) % % Input % ----- -% hTsgGUI ............ Handel to the main user interface +% hTsgGUI ............ Handle to the main user interface % filename ........... Data filename % % Output @@ -12,47 +12,94 @@ function [error] = tsg_readTsgDataTxt( hTsgGUI, filename) % % The data are store using setappdata - Variable name : 'tsg_data' % -% +% % Caution : replace the fill-value with NaN % $Id$ +% Get the data from the application GUI +% ------------------------------------- +tsg = getappdata( hTsgGUI, 'tsg_data'); + +% Display read file info on console +% --------------------------------- +fprintf('\nREAD_ASCII_FILE\n'); tic; + % Open the file % ------------- fid = fopen( filename, 'r' ); -error = -1; -if fid ~= -1 - - % Read the file - % ------------- - tsgData = fscanf(fid, '%d/%d/%d %d:%d:%d %f %f %f %f %d %f %f', ... - [13 Inf])'; - - % Every variable are put in a structure - % ------------------------------------- - tsg.TIME = datenum(tsgData(:,3), tsgData(:,2),tsgData(:,1), ... - tsgData(:,4),tsgData(:,5),tsgData(:,6)); - tsg.LATITUDE = tsgData(:,7); - tsg.LONGITUDE = tsgData(:,8); - tsg.TEMP_TSG = tsgData(:,9); - tsg.PSAL = tsgData(:,10); - tsg.PSAL_QC = tsgData(:,11); - tsg.PSAL_ADJ = tsgData(:,12); - tsg.PSAL_ERR = tsgData(:,13); - - % Save the data in the application GUI - % ------------------------------------ - setappdata( hTsgGUI, 'tsg_data', tsg ); - - % Clear the Workspace - % ------------------- - clear tsgdata - - % Close the file - % -------------- - fclose( fid ); - - % Everything OK - % ------------- - error = 1; +% Check file +% ----------- +if fid == -1 + msg_error = ['TSG_GOSUD file_lecture : Open file error : ' filename]; + warndlg( msg_error, 'ASCII error dialog'); + sprintf('...cannot locate %s\n', filename); + error = -1; + return; end + +% Display more info about read file on console +% -------------------------------------------- +fprintf('...reading %s : ', filename); + +% Read the file +% ------------- +tsgData = fscanf(fid, '%d/%d/%d %d:%d:%d %f %f %f %f %d %f %f', ... + [13 Inf])'; + +% Every variable are put in a structure +% ------------------------------------- +tsg.DAYD = datenum(tsgData(:,3), tsgData(:,2),tsgData(:,1), ... + tsgData(:,4),tsgData(:,5),tsgData(:,6)); + +% save original date +% ------------------ +tsg.DATE = datestr( tsg.DAYD, 'yyyymmddHHMMSS' ); + +% convert with julian day with origin 1950 +% ----------------------------------------- +%% a supprimer !!!!!!! +% tsg.TIME_TSG = datenumToJulian(tsg.TIME_TSG); + +tsg.LATX = tsgData(:,7); +tsg.LONX = tsgData(:,8); +tsg.SSJT = tsgData(:,9); +tsg.SSPS = tsgData(:,10); +tsg.SSPS_QC = tsgData(:,11); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +tsg.SSPS_ADJ = tsgData(:,12); +tsg.SSPS_ERR = tsgData(:,13); + +% Compute ship velocity from positions if sog not available +% --------------------------------------------------------- +if isempty(tsg.SPDC) + range = m_lldist(tsg.LONX,tsg.LATX); + ind = size(tsg.DAYD); + tsg.SPDC = zeros(size(ind)); + for i=1:length(tsg.DAYD)-1 + tsg.SPDC(i) = range(i) / ((tsg.DAYD(i+1)-tsg.DAYD(i)) * 24 * 1.854); + end + tsg.SPDC = [tsg.SPDC';0]; +end + + +% Save the data in the application GUI +% ------------------------------------ +setappdata( hTsgGUI, 'tsg_data', tsg ); + +% Clear the Workspace +% ------------------- +clear tsgdata + +% Close the file +% -------------- +fclose( fid ); + +% Display time to read file on console +% ------------------------------------ +t = toc; fprintf('...done (%6.2f sec).\n\n',t); + +% Everything OK +% ------------- +error = 1;