-
jacques.grelet_ird.fr authored
add missing_value field to tsg_ncvar.csv for <var>_QC variables add autonan mode with FillValue_ attribut correct bug on last selected display QC, tsg structure wasn't saved before display QC add option/preference mode for autoloading data and use .mat file in prefdir to save user preferences add tag to handle axes but don't use it
jacques.grelet_ird.fr authoredadd missing_value field to tsg_ncvar.csv for <var>_QC variables add autonan mode with FillValue_ attribut correct bug on last selected display QC, tsg structure wasn't saved before display QC add option/preference mode for autoloading data and use .mat file in prefdir to save user preferences add tag to handle axes but don't use it
tsg_initialisation.m 5.43 KiB
function tsg = tsg_initialisation()
%function tsg_initialisation(hTsgGUI)
%
% Input
% -----
% none
%
% Output
% ------
% tsg ............ tsg structure that contain data
%
% $Id$
%
% -------------------------------------------------------------------------
%% Constants for NetCDF DATA FORMAT TSG
% -------------------------------------------------------------------------
% netcdf file version
% -------------------
NETCDF_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);
% set default font size
% ---------------------
tsg.fontSize = 11;
% -------------------------------------------------------------------------
%% Levitus field for climatology
% -------------------------------------------------------------------------
tsg.levitus.data = [];
tsg.levitus.type = 'none';
tsg.levitus.time = 1;
% -------------------------------------------------------------------------
%% file field
% -------------------------------------------------------------------------
tsg.file.name = [];
tsg.file.type = [];
% -------------------------------------------------------------------------
%% Smooth TSG time serie field
% -------------------------------------------------------------------------
tsg.ssps.smooth.val = [];
tsg.ssps.smooth.nval = [];
% -------------------------------------------------------------------------
%% Constants for the quality control procedure
% -------------------------------------------------------------------------
% 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
% Quality definition, we use a hashtable with a definition file
% located in @tsg_nc/tsg_quality.csv,
% use this file if you want add or modify quality context menu
% -------------------------------------------------------------
tsg.qc.hash = tsg_nc('tsg_quality.csv');
% set default code at startup
% ---------------------------
tsg.qc.active.Code = get(tsg.qc.hash, 'NO_CONTROL', 'code');
tsg.qc.active.Color = get(tsg.qc.hash, 'NO_CONTROL', 'color');
% set empty queue (use for undo/redo)
% -----------------------------------
tsg.queue = queue;
% -------------------------------------------------------------------------
%% Constants for the Correction procedure
% -------------------------------------------------------------------------
% Smoothing of tsg time series over 1 hour interval
% 1 hour interval expressed in MATLAB serial Number
% -------------------------------------------------
tsg.cst.TSG_DT_SMOOTH = datenum(0, 0, 0, 1, 0 , 0);
% Smoothing of tsg time series :
% Salinity, in 1 hour interval, should not depart the average for more
% than SAL_STD_MAX standard deviation
% --------------------------------------------------------------------
tsg.cst.TSG_STDMAX = 0.1;
% Correction is estimated by computing the median value of X tsg-sample
% differences
% Time window in days used to compute the correction
% ---------------------------------------------------------------------
tsg.cst.COR_TIME_WINDOWS = 10;
% Maximum time difference between tsg data and water sample used to
% compute the difference : 5 minutes.
% -----------------------------------------------------------------
tsg.cst.TSG_WS_TIMEDIFF = datenum(0, 0, 0, 0, 5, 0);
% 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
% --------------------------------------------
% assign empty matrix to all variables
% ------------------------------------
for i=1:numel(ncv_keys)
variable = ncv_keys{i};
tsg.(variable) = [];
end
% assign empty string to all globals attributes
% ---------------------------------------------
for i=1:numel(nca_keys)
global_att = nca_keys{i};
tsg.(global_att) = '';
end
% set some fields
% ---------------
tsg.FORMAT_VERSION = NETCDF_FORMAT_VERSION;
tsg.DATE_CREATION = [date(1:8) date(10:15)];
tsg.DATE_UPDATE = tsg.DATE_CREATION;
tsg.REFERENCE_DATE_TIME = REFERENCE_DATE_TIME;