Skip to content
Snippets Groups Projects
Commit ac25c017 authored by jacques.grelet_ird.fr's avatar jacques.grelet_ird.fr
Browse files

ecriture de la routine de lecture au format GOSUD TSG 1.4

parent c140d0d9
No related branches found
No related tags found
No related merge requests found
function [error] = tsg_readTsgDataNetCDF( hTsgGUI, filename) function [error] = tsg_readTsgDataNetCDF( hTsgGUI, filename)
% Function to read the TSG data. Should be a NetCDF file % Function to read the TSG data. Should be a NetCDF file
% GOSUD data format TSG V1.4
% %
% Input % Input
% ----- % -----
...@@ -12,59 +13,133 @@ function [error] = tsg_readTsgDataNetCDF( hTsgGUI, filename) ...@@ -12,59 +13,133 @@ function [error] = tsg_readTsgDataNetCDF( hTsgGUI, filename)
% %
% The data are store using setappdata - Variable name : 'tsg_data' % The data are store using setappdata - Variable name : 'tsg_data'
% %
% Function not yet implemented
% Caution : replace the fill-value with NaN
% $Id$ % $Id$
% Open the file % Open netCDF file
% ------------- % -------------
fid = fopen( filename, 'r' ); nc1 = netcdf(filename,'read');
msg_error = 'ok';
error = -1; if isempty(nc1)
if fid ~= -1 msg_error = ['TSG_GOSUD file_lecture : Open file error : ' filename];
disp('Read NetCDF file, not yet implemeted ...'); end
%
% % Read the file % Read global attributes: meta data
% % ------------- % ----------------------------------
% tsgData = fscanf(fid, '%d/%d/%d %d:%d:%d %f %f %f %f %d %f %f', ...
% [13 Inf])'; tsg.PLATFORM_NAME = nc1.PLATFORM_NAME(:);
% tsg.PLATFORM_WMO_NUMBER = nc1.PLATFORM_WMO_NUMBER(:);
% % Every variable are put in a structure tsg.PLATFORM_MMSI_NUMBER = nc1.PLATFORM_MMSI_NUMBER(:);
% % ------------------------------------- tsg.TSG_TYPE = nc1.TSG_TYPE(:);
% tsg.TIME = datenum(tsgData(:,3), tsgData(:,2),tsgData(:,1), ... tsg.TSG_NUMBER = nc1.TSG_NUMBER(:);
% tsgData(:,4),tsgData(:,5),tsgData(:,6)); tsg.TINT_TYPE = nc1.TINT_TYPE(:);
% tsg.LATITUDE = tsgData(:,7); tsg.TINT_NUMBER = nc1.TINT_NUMBER(:);
% tsg.LONGITUDE = tsgData(:,8); tsg.DATA_TYPE = nc1.DATA_TYPE(:);
% tsg.TEMP_TSG = tsgData(:,9); tsg.DATA_MODE = nc1.DATA_MODE(:);
% tsg.PSAL = tsgData(:,10); tsg.SAMPLING_PERIOD = nc1.SAMPLING_PERIOD(:);
% tsg.PSAL_QC = tsgData(:,11); tsg.PROCESSING_STATUS = nc1.PROCESSING_STATUS(:);
% tsg.PSAL_ADJ = tsgData(:,12); tsg.DATE_START = nc1.DATE_START(:);
% tsg.PSAL_ERR = tsgData(:,13); tsg.DATE_END = nc1.DATE_END(:);
% tsg.SOUTH_LATITUDE = nc1.SOUTH_LATITUDE;
% % Bucket tsg.NORTH_LATITUDE = nc1.NORTH_LATITUDE;
% % ------ tsg.WEST_LONGITUDE = nc1.WEST_LONGITUDE;
% bucketNETCDF.LATITUDE_WS = tsgData(:,7); tsg.EAST_LONGITUDE = nc1.EAST_LONGITUDE;
% bucketNETCDF.LONGITUDE_WS = tsgData(:,8); tsg.FORMAT_VERSION = nc1.FORMAT_VERSION(:);
% bucketNETCDF.TEMP_TSG_WS = tsgData(:,9); tsg.DATE_CREATION = nc1.DATE_CREATION(:);
% bucketNETCDF.PSAL_WS = tsgData(:,10); tsg.DATE_UPDATE = nc1.DATE_UPDATE(:);
% bucketNETCDF.PSAL_QC_WS = tsgData(:,11); tsg.DATA_RESTRICTIONS = nc1.DATA_RESTRICTIONS(:);
% bucketNETCDF.PSAL_ADJ_WS = tsgData(:,12); tsg.CITATION = nc1.CITATION(:);
% bucketNETCDF.PSAL_ERR_WS = tsgData(:,13); tsg.COMMENT = nc1.COMMENT(:);
% tsg.PROJECT_NAME = nc1.PROJECT_NAME(:);
% % Save the data in the application GUI tsg.PI_NAME = nc1.PI_NAME(:);
% % ------------------------------------ tsg.DATA_CENTRE = nc1.DATA_CENTRE(:);
% setappdata( hTsgGUI, 'tsg_data', tsg );
% setappdata( hTsgGUI, 'bucketNETCDF', bucketNETCDF ); % read variables describing TSG installation
% % ------------------------------------------
% Clear the Workspace
% ------------------- tsg.DEPTH_TSG = nc1{'DEPTH_TSG'}(:);
% clear tsgdata tsg.DEPTH_TSG_MIN = nc1{'DEPTH_TSG_MIN'}(:);
tsg.DEPTH_TSG_MAX = nc1{'DEPTH_TSG_MAX'}(:);
% Close the file tsg.CNDC_TSG_CALCOEF = nc1{'CNDC_TSG_CALCOEF'}(:);
% -------------- tsg.CNDC_TSG_LINCOEF = nc1{'CNDC_TSG_LINCOEF'}(:);
fclose( fid ); tsg.TEMP_TSG_CALCOEF = nc1{'TEMP_TSG_CALCOEF'}(:);
tsg.TEMP_TSG_LINCOEF = nc1{'TEMP_TSG_LINCOEF'}(:);
% Everything not OK
% ------------- % read variables describing Temperature sensor at intake (TINT) installation
error = -1; % --------------------------------------------------------------------------
tsg.DEPTH_TINT = nc1{'DEPTH_TINT'}(:);
tsg.DEPTH_TINT_MIN = nc1{'DEPTH_TINT_MIN'}(:);
tsg.DEPTH_TINT_MAX = nc1{'DEPTH_TINT_MAX'}(:);
tsg.TEMP_TINT_CALCOEF = nc1{'TEMP_TINT_CALCOEF'}(:);
tsg.TEMP_TINT_LINCOEF = nc1{'TEMP_TINT_LINCOEF'}(:);
% Coordinates
%------------
tsg.DATE_TSG = nc1{'DATE_TSG'}(:,:);
tsg.TIME_TSG = nc1{'TIME_TSG'}(:);
tsg.LATITUDE_TSG = nc1{'LATITUDE_TSG'}(:);
tsg.LONGITUDE_TSG = nc1{'LONGITUDE_TSG'}(:);
tsg.POSITION_TSG_QC = nc1{'POSITION_TSG_QC'}(:);
tsg.VELOCITY_TSG = nc1{'VELOCITY_TSG'}(:);
% Variables holding data from the main TSG
% data series 1
%-----------------------------------------
% measured variables
%-----------------------------------------
if ~isempty('PRES')
tsg.PRES_TSG = nc1{'PRES_TSG'}(:);
end
if ~isempty('TEMP')
tsg.TEMP_TSG = nc1{'TEMP_TSG'}(:);
tsg.TEMP_TSG_STD = nc1{'TEMP_TSG_STD'}(:);
tsg.TEMP_STD_CAL = nc1{'TEMP_STD_CAL'}(:);
end
if ~isempty('CNDC')
tsg.CNDC_TSG = nc1{'CNDC_TSG'}(:);
tsg.CNDC_TSG_STD = nc1{'CNDC_TSG_STD'}(:);
tsg.CNDC_TSG_CAL = nc1{'CNDC_TSG_CAL'}(:);
end
% intake temperature variable
%-----------------------------------------
tsg.TEMP = nc1{'TEMP'}(:);
tsg.TEMP_QC = nc1{'TEMP_QC'}(:);
tsg.TEMP_CAL = nc1{'TEMP_CAL'}(:);
tsg.TEMP_ADJUSTED = nc1{'TEMP_ADJUSTED'}(:);
tsg.TEMP_ADJUSTED_ERROR = nc1{'TEMP_ADJUSTED_ERROR'}(:);
tsg.TEMP_ADJUSTED_QC = nc1{'TEMP_ADJUSTED_QC'}(:);
tsg.TEMP_ADJUSTED_HIST = nc1{'HIST_TEMP_ADJUSTED'}(:);
% derived variables
%-----------------------------------------
tsg.PSAL = nc1{'PSAL'}(:);
tsg.PSAL_QC = nc1{'PSAL_QC'}(:);
tsg.PSAL_CAL = nc1{'PSAL_CAL'}(:);
tsg.PSAL_ADJUSTED = nc1{'PSAL_ADJUSTED'}(:);
tsg.PSAL_ADJUSTED_ERROR = nc1{'PSAL_ADJUSTED_ERROR'}(:);
tsg.PSAL_ADJUSTED_QC = nc1{'PSAL_ADJUSTED_QC'}(:);
tsg.PSAL_ADJUSTED_HIST = nc1{'HIST_PSAL_ADJUSTED'}(:);
% data series 2
%-----------------------------------------
% water samples
%-----------------------------------------
tsg.DATE_WS = nc1{'DATE_WS'}(:,:);
tsg.TIME_WS = nc1{'TIME_WS'}(:);
tsg.LATITUDE_WS = nc1{'LATITUDE_WS'}(:);
tsg.LONGITUDE_WS = nc1{'LONGITUDE_WS'}(:);
tsg.PSAL_WS = nc1{'PSAL_WS'}(:);
tsg.PSAL_WS_QC = nc1{'PSAL_WS_QC'}(:);
tsg.PSAL_WS_ANALDATE = nc1{'PSAL_WS_ANALDATE'}(:,:);
tsg.PSAL_WS_BOTTLE = nc1{'PSAL_WS_BOTTLE'}(:,:);
%endef(nc)
close(nc)
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment