From 8f56122e003441da11a3b0208f76062469da36e7 Mon Sep 17 00:00:00 2001
From: Jacques Grelet <jacques.grelet@ird.fr>
Date: Wed, 16 Jan 2008 16:57:51 +0000
Subject: [PATCH] =?UTF-8?q?creation=20dynamique=20de=20la=20structure=20ts?=
 =?UTF-8?q?g=20a=20partir=20des=20objets=20tsg=5Fnc=20Renumerotation=20des?=
 =?UTF-8?q?=20codes=20de=20qualit=C3=A9s=20suivant=20le=20document=20GOSUD?=
 =?UTF-8?q?=201.4=20Ajout=20d'un=20code=20(6),=20HARBOUR?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tsg_util/tsg_initialisation.m | 283 ++++++++++++++++++++--------------
 1 file changed, 166 insertions(+), 117 deletions(-)

diff --git a/tsg_util/tsg_initialisation.m b/tsg_util/tsg_initialisation.m
index a9ee58f..5247147 100644
--- a/tsg_util/tsg_initialisation.m
+++ b/tsg_util/tsg_initialisation.m
@@ -14,11 +14,17 @@ function tsg_initialisation(hTsgGUI, hQcCmenu)
 %              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
 % -------------------------------------------------------------------------
@@ -41,12 +47,29 @@ tsg.qc.Color.GOOD          = 'b';
 tsg.qc.Color.PROBABLY_GOOD = 'g';
 tsg.qc.Color.PROBABLY_BAD  = 'm';
 tsg.qc.Color.BAD           = 'r';
+tsg.qc.Color.HARBOUR       = 'c';
 
-tsg.qc.Code.NO_CONTROL     = 1;
-tsg.qc.Code.GOOD           = 2;
-tsg.qc.Code.PROBABLY_GOOD  = 3;
-tsg.qc.Code.PROBABLY_BAD   = 4;
-tsg.qc.Code.BAD            = 5;
+% 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;
@@ -75,130 +98,156 @@ cst.COR_TIME_WINDOWS = 10;
 % --------------------------------------------------
 setappdata( hTsgGUI, 'constante', cst);
 
+% 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
 % -------------------------------
-% get actual date
-date = datestr(now,30);
 
 % dimensions
-tsg.DAYD                  = 0;
-tsg.DAYD_WS               = 0;
-tsg.DAYD_EXT              = 0;
+% ----------
+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
-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             =  '';
+% ------------------
+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.DATA_RESTRICTIONS     =  '';
-tsg.CITATION              =  '';
-tsg.COMMENT               =  '';
-tsg.PROJECT_NAME          =  '';
-tsg.PI_NAME               =  '';
-tsg.DATA_CENTRE           =  '';
-tsg.DATA_ACQUISITION      =  '';
-tsg.PROCESSING_CENTRE     =  '';
-tsg.PROCESSING_STATES     =  '';
+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             = 0;
-tsg.SSPS_DEPH_MIN         = 0;
-tsg.SSPS_DEPH_MAX         = 0;
-tsg.CNDC_CALCOEF          = [99999 99999 99999 99999 99999];
-tsg.CNDC_LINCOEF          = [99999 99999];
-tsg.SSJT_CALCOEF          = [99999 99999 99999 99999 99999];
-tsg.SSJT_LINCOEF          = [99999 99999];
-
-% variables describing Temperature sensor at intake (SSJT) installation
-tsg.SSTP_DEPH             = 0;
-tsg.SSTP_DEPH_MIN         = 0;
-tsg.SSTP_DEPH_MAX         = 0;
-tsg.SSTP_CALCOEF          = [99999 99999 99999 99999 99999];
-tsg.SSTP_LINCOEF          = [99999 99999];
-
-% 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         = [];
+% 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);
-- 
GitLab