Skip to content
Snippets Groups Projects
tsg_initialisation.m 8.4 KiB
Newer Older
function tsg_initialisation(hTsgGUI, hQcCmenu)
%
% Input
% -----
% hTsgGUI ............ Handel to the main user interface
% hQcCmenu ........... Handel to the QC code context menu
%
% -------------------------------------------------------------------------
%              Constants for NetCDF DATA FORMAT TSG
% -------------------------------------------------------------------------
% netcdf file version
FORMAT_VERSION      = '1.4';

% date of reference for julian days, is 1st january 1950
% ------------------------------------------------------
REFERENCE_DATE_TIME = '19500101000000';

% get actual date
% ---------------
date = datestr(now,30);

% -------------------------------------------------------------------------
%              Levitus field for climatology
% -------------------------------------------------------------------------
tsg.levitus.data = [];
tsg.levitus.type = [];
% -------------------------------------------------------------------------
%              file field 
% -------------------------------------------------------------------------
tsg.file.name = [];
tsg.file.type = [];

% -------------------------------------------------------------------------
%              Constants for the quality control procedure
% -------------------------------------------------------------------------
tsg.qc.Color.NO_CONTROL    = 'k';
tsg.qc.Color.GOOD          = 'b';
tsg.qc.Color.PROBABLY_GOOD = 'g';
tsg.qc.Color.PROBABLY_BAD  = 'm';
tsg.qc.Color.BAD           = 'r';
% Quality flags reference table, see GOSUD, DATA FORMAT TSG V1.4, table 4
% -----------------------------------------------------------------------
%  Code      Meaning                        
%
%  0         No QC was performed
%  1         Good data                     
%  2         Probably good data             
%  3         Bad data that are potentially correctable          
%  4         Bad data                  
%  5         Value changed                   
%  6         Data acquired in harbour                             
%  7         Not used                        
%  8         Interpolated value                              
%  9         Missing value                              

tsg.qc.Code.NO_CONTROL     = 0;
tsg.qc.Code.GOOD           = 1;
tsg.qc.Code.PROBABLY_GOOD  = 2;
tsg.qc.Code.PROBABLY_BAD   = 3;
tsg.qc.Code.BAD            = 4;
tsg.qc.Code.HARBOUR        = 6;

tsg.qc.Code.ACTIVE         = tsg.qc.Code.NO_CONTROL;
tsg.qc.Color.ACTIVE        = tsg.qc.Color.NO_CONTROL;
% -------------------------------------------------------------------------
%              Constants for the Correction procedure
% -------------------------------------------------------------------------
% Smoothing of tsg time series over 1 hour interval
% 1 hour interval expressed in MATLAB serial Number
% -------------------------------------------------
cst.TSG_DT_SMOOTH = datenum(0, 0, 0, 1, 0 , 0);

% Smoothing of tsg time series :
% Salinity, in one 1 hour interval, should not depart the average for more
% than SAL_STD_MAX standard deviation
% -----------------------------------------------------------------------

% Correction is estimated by computing the median value of X tsg-sample
% differences
% Amount of days used to compute the correction
% ---------------------------------------------------------------------

% store the 'const' structure as an application data
% --------------------------------------------------
% Get variables list codes from class tsg_nc with file 'tsg_ncvar.csv'
% --------------------------------------------------------------------
ncv             = tsg_nc('tsg_ncvar.csv');
ncv_keys        = keys(ncv);

% Get global attributes list from class tsg_nc with file 'tsg_ncattr.csv'
% -----------------------------------------------------------------------
nca             = tsg_nc('tsg_ncattr.csv');
nca_keys        = keys(nca);

% store tsg NetCDF data structure
% -------------------------------

% dimensions
% ----------
tsg.DAYD                  = [];
tsg.DAYD_WS               = [];
tsg.DAYD_EXT              = [];

% initialise tsg structure from tsg_nc objects
% --------------------------------------------

% variables
% ---------
for i=1:numel(ncv_keys)
  variable  = ncv_keys{i};
  tsg.(variable)  = [];
end

% globals attributes
% ------------------
for i=1:numel(nca_keys)
  global_att = nca_keys{i};
  tsg.(global_att) = '';
end

% tsg.PLATFORM_NAME         =  '';
% tsg.SHIP_CALL_SIGN        =  '';
% tsg.SHIP_MMSI             =  '';
% tsg.TSG_TYPE              =  '';
% tsg.TSG_NUMBER            =  '';
% tsg.TINT_TYPE             =  '';
% tsg.TINT_NUMBER           =  '';
% tsg.DATA_TYPE             =  '';
% tsg.DATA_MODE             =  '';
% tsg.SAMPLING_PERIOD       =  '';
% tsg.PROCESSING_STATUS     =  '';
% tsg.DATE_START            =  '';
% tsg.DATE_END              =  '';
% tsg.SOUTH_LATX            =  '';
% tsg.NORTH_LATX            =  '';
% tsg.WEST_LONX             =  '';
% tsg.EAST_LONX             =  '';
tsg.FORMAT_VERSION        =  FORMAT_VERSION;
tsg.DATE_CREATION         =  [date(1:8) date(10:15)];
tsg.DATE_UPDATE           =  tsg.DATE_CREATION; 
tsg.REFERENCE_DATE_TIME   = REFERENCE_DATE_TIME;
% tsg.DATA_RESTRICTIONS     =  '';
% tsg.CITATION              =  '';
% tsg.COMMENT               =  '';
% tsg.PROJECT_NAME          =  '';
% tsg.PI_NAME               =  '';
% tsg.DATA_CENTRE           =  '';
% tsg.DATA_ACQUISITION      =  '';
% tsg.PROCESSING_CENTRE     =  '';
% tsg.PROCESSING_STATES     =  '';

% variables describing TSG installation (Salinity, SSPS et Jacket
% Temperature SSJT)
% tsg.SSPS_DEPH             = [];
% tsg.SSPS_DEPH_MIN         = [];
% tsg.SSPS_DEPH_MAX         = [];
% tsg.CNDC_CALCOEF          = [];
% tsg.CNDC_LINCOEF          = [];
% tsg.SSJT_CALCOEF          = [];
% tsg.SSJT_LINCOEF          = [];
% 
% % variables describing Temperature sensor at intake (SSJT) installation
% tsg.SSTP_DEPH             = [];
% tsg.SSTP_DEPH_MIN         = [];
% tsg.SSTP_DEPH_MAX         = [];
% tsg.SSTP_CALCOEF          = [];
% tsg.SSTP_LINCOEF          = [];
% 
% % Coordinates
% tsg.DATE                  = [];
% tsg.DAYD                  = [];
% tsg.LATX                  = [];
% tsg.LONX                  = [];
% tsg.POSITION_QC           = [];
% tsg.SPDC                  = [];
% tsg.REFERENCE_DATE_TIME   = REFERENCE_DATE_TIME;
% 
% % variables
% tsg.PRES                  = [];
% tsg.SSJT                  = [];
% tsg.SSJT_STD              = [];
% tsg.SSJT_CAL              = [];
% tsg.SSJT_ADJUSTED         = [];
% tsg.SSJT_ADJUSTED_ERROR   = [];
% tsg.SSJT_ADJUSTED_QC      = [];
% tsg.SSJT_ADJUSTED_HIST    = [];  
% tsg.CNDC                  = [];
% tsg.CNDC_STD              = [];
% tsg.CNDC_CAL              = [];
% 
% %% a verifier !!!!! 
% tsg.SSTP                  = [];
% tsg.SSTP_QC               = [];
% tsg.SSTP_CAL              = [];
% tsg.SSTP_ADJUSTED         = [];
% tsg.SSTP_ADJUSTED_ERROR   = [];
% tsg.SSTP_ADJUSTED_QC      = [];
% tsg.SSTP_ADJUSTED_HIST    = [];  
% 
% tsg.SSPS                  = [];
% tsg.SSPS_QC               = [];
% tsg.SSPS_CAL              = [];
% tsg.SSPS_ADJUSTED         = [];
% tsg.SSPS_ADJUSTED_ERROR   = [];
% tsg.SSPS_ADJUSTED_QC      = [];
% tsg.SSPS_ADJUSTED_HIST    = [];  
% 
% % Water Sample Coordinates
% tsg.DATE_WS               = [];
% tsg.DAYD_WS               = [];
% tsg.LATX_WS               = [];
% tsg.LONX_WS               = [];
% 
% % Water Sample variables
% tsg.SSPS_WS               = []; 
% tsg.SSPS_WS_QC            = []; 
% %tsg.SSPS_WS_DIF           = [];
% %tsg.SSPS_WS_SMOOTH        = [];  % a verifier
% tsg.SSPS_WS_ANALDATE      = []; 
% tsg.SSPS_WS_BOTTLE        = []; 
% 
% % External data coordinates
% tsg.DATE_EXT              = [];
% tsg.DAYD_EXT              = [];
% tsg.LATX_EXT              = [];
% tsg.LONX_EXT              = [];
% 
% % External data variables
% tsg.SSTP_EXT              = []; 
% tsg.SSTP_EXT_QC           = []; 
% tsg.SSTP_EXT_TYPE         = [];
% tsg.SSPS_EXT              = []; 
% tsg.SSPS_EXT_QC           = []; 
% tsg.SSPS_EXT_TYPE         = [];

% Save structure tsg
setappdata( hTsgGUI, 'tsg_data', tsg);