Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Include Page
About CODAR
About CODAR

Oceans 23.0 API filterdataProductCode=CODARQCSC

...

PNG and PDF files contain a graphic representation of both station radial and combined total velocities, depending on what device/station the data product was requested fromStation files with radial currents end in the four letter CODAR site code (e.g. -VCOL_CLEAN), while the combined files (with total velocities) end in -TOTALS_CLEAN. The PDF variant bundles all the PNGs (up to a file size limit) in a single vector-graphics PDF with a filename corresponding to the extents of the PNGs. The GIF variant also bundles the PNG images into an animation with a 1 second frame rate and pause at the end of the animation. The GIF breaks into multiple files at UTC midnight unless the entire set spans less than 24 hours or has 6 or fewer files.

Oceans 23.0 API filter: extension=png,pdf,gif

...

The processed, quality controlled data used to create the plots are available in these files. Care has been taken to ensure the MAT file structure is compatible with the HFRProgs structures, version 2.1.2. The modifications (detailed far below) and extensions on HFRProgs only add structures/arrays, while maintaining the original HFRProgs structure. (One exception is the Flag sub-structure that was the most recent addition to HFRProgs and was empty, it has been replaced by the QC sub-structure.) Both Totals and Radials, the main structures, are indexed by time, each instance is a separate reading. ONC processing code carefully handles and aligns the Radials time stamps to create the Totals, processing one at time (it's not slow). Consideration is made for time-varying source files: .tuv and .grd files as  well as device attributes that change within or between deployments. The MAT and netCDF files contain an accumulation of data; the file is broken at a size limit based on standard memory limits (~1 GB), similar to how the GIF file accumulates up to 1 day or the PDF accumulates up to ~100 MB of data. Radials structures may be excluded optionally. MAT files can contain both Totals and Radials structures, whereas the netCDF file cannot easily contain both, so separate files are created with -Radials and -Totals modifiers in the file-names. The structure of the netCDF file is closely related to the structure of the MAT file.

Oceans 23.0 API filter: extension=mat,nc

...

Totals.OtherMetadata.makeTotals.parameters: this structure contains the parameter values used by makeTotals.m. This is unchanged from HFRProgs, other than all the 'WhichErrors' are used, the MinNumSites, MinNumRads, spatthresh, tempthresh are provided by the Oceans 23.0 device attributes, which are variable for each device and each time stamp.

...

Expand
titleClick here to expand to see an example Radials (with grid) netCDF structure...


No Format
Source:
           C:\BenTestData\StraitofGeorgia_StraitofGeorgiaCODARSystem_OceanographicRadarSystem_20210603T220000.000Z_20210603T230000.000Z-Radials_Clean.nc
Format:
           netcdf4_classic
Global Attributes:
           acknowledgement                = 'Ocean Networks Canada is an initiative of the University of Victoria'
           id                             = 'BLANK'
           naming_authority               = 'Ocean Networks Canada'
           project                        = 'BLANK'
           processing_level               = 'Quality controlled surface current data'
           time_coverage_duration         = 'BLANK'
           time_coverage_resolution       = 'BLANK'
           standard_name_vocabulary       = 'BLANK'
           publisher_name                 = 'Ocean Networks Canada'
           publisher_url                  = 'https://data.oceannetworks.ca'
           publisher_email                = 'info@oceannetworks.ca'
           title                          = 'Surface Ocean Velocity; Strait of Georgia'
           institution                    = 'Ocean Networks Canada; University of Victoria'
           creator_institution            = 'Ocean Networks Canada'
           creator_name                   = 'Ocean Networks Canada'
           creator_type                   = 'institution'
           creator_email                  = 'info@oceannetworks.ca'
           creator_url                    = 'https://data.oceannetworks.ca'
           date_created                   = 'see searchID 20383822'
           history                        = 'CODAR radial data (hourly, usually) combined into one file containing ocean surface velocity vector'
           references                     = 'https://wiki.oceannetworks.ca/display/DP/148'
           source                         = 'CODAR Seasonde HF-Radar ocean surface current mapping device'
           Conventions                    = 'CF-1.7, ACDD-1.3'
           Metadata_conventions           = 'Unidata Dataset Discovery v1.0'
           cdm_data_type                  = 'Grid'
           geospatial_bounds              = 'BLANK'
           geospatial_bounds_vertical_crs = 'BLANK'
           geospatial_vertical_min        = 0
           geospatial_vertical_max        = 0
           geospatial_vertical_positive   = 'down'
           sea_name                       = 'Salish Sea'
           instrument                     = 'VATK, VCOL, VGPT, VION'
           summary                        = 'Radial velocity data within a specified radius of each grid coordinate are combined by an unweighted least-squares method using a ONC-modified HFR_Progs (v2.1.2) MATLAB package. Duty cycle is usually hourly. A number of QC tests are applied to the total current velocity data to produce a clean (filtered) data set, building on the tests applied to the radial velocity data sets. See https://wiki.oceannetworks.ca/display/DP/148 for complete documentation. In the final product, raw and quality controlled total current velocity data and other variable data are placed on a geospatial grid with easting and northing distance to site origin as dimensions. Processing parameters and related quality control information are also provided.'
           keywords                       = 'BLANK'
           comment                        = 'Detailed documentation: https://wiki.oceannetworks.ca/display/DP/148'
           geospatial_lat_units           = 'degrees east'
           geospatial_lat_min             = -124.003
           geospatial_lat_max             = 49.4272
           geospatial_lon_units           = 'degrees north'
           geospatial_lon_min             = -124.003
           geospatial_lon_max             = -122.7348
           time_coverage_start            = '29590526T235959Z'
           time_coverage_end              = '29690404T000000Z'
           attrbution                     = 'Ocean Networks Canada Data Archive, http://www.oceannetworks.ca, University of Victoria, Canada, Oceanographic Radar System data from 03-Jun-2021 22:00:00 to 03-Jun-2021 23:59:59'
           processing_steps               = 'Radial velocity measurements are obtained from individual radar sites via manufacturer's software and archived in Oceans 23.0 (usually hourly). Upon a user requesting data, a number of QC tests are applied to the raw data to produce a clean (filtered) data set. The test thresholds/parameters are recorded below and in the Radials. QC structure. See https://wiki.oceannetworks.ca/display/DP/148 for complete documention. 
                                            loadRDLfile loaded radial velocity measurements from ruv files, obtained from individual radar sites via manufacturer's software and archived in Oceans 23.0. 
                                            QARTOD Test 6: Syntax - a collection of tests ensuring proper formatting and existence of fields within a radial file. checkRDLsyntax.m passed all checks on the RUV file header. 
                                            QARTOD Test 7: Max Threshold (radials) - Flags radial surface current speed exceeding the maximum threshold of 150 cm/s. cleanRadialsVel.m cleaned * data points exceeding the maximum radial current speed. 
                                            QARTOD Test 8: Valid Location (radials) - Flags radial surface current velocities placed over land or other invalid measurement areas. cleanRadialsLoc.m cleaned * data points with a VectorFlag value of 128. 
                                            Additional test: Temporal Quality - Flags radial surface current velocities with Radials.Error/temporalQuality (EMTP or STDV in the raw data) equal to a value of 999. cleanRadialsTemp.m cleaned * data points. 
                                            Additional test: Spatial Quality - Flags radial surface current velocities with Radials.spatialQuality (ESPT in the raw data) equal to a value of 999. cleanRadialsSpat.m cleaned * data points. 
                                            * see the relevant flag variable to determine the number of data points cleaned at each step. '
Dimensions:
           time           = 8
           x              = 93
           y              = 74
           index          = 1511
           siteNameLength = 4
Variables:
    time        
           Size:       8x1
           Dimensions: time
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'time'
                       long_name          = 'Time of measurement UTC'
                       units              = 'seconds since 1970-01-01 00:00:00'
                       axis               = 'T'
                       calendar           = 'gregorian'
    x           
           Size:       93x1
           Dimensions: x
           Datatype:   double
           Attributes:
                       long_name = 'Easting distance from the CODAR grid origin'
                       units     = 'km'
                       valid_min = '-46'
                       valid_max = '46'
                       comment   = 'Grid origin coordinates: 49.0675 degrees latitude, -123.3689 degrees longitude. CODAR total ocean surface current velocity grid spacing (in km): 1'
    y           
           Size:       74x1
           Dimensions: y
           Datatype:   double
           Attributes:
                       long_name = 'Northing distance from the CODAR grid origin'
                       units     = 'km'
                       valid_min = '-33'
                       valid_max = '40'
                       comment   = 'Grid origin coordinates: 49.0675 degrees latitude, -123.3689 degrees longitude. CODAR total ocean surface current velocity grid spacing (in km): 1'
    index       
           Size:       1511x1
           Dimensions: index
           Datatype:   int32
           Attributes:
                       long_name = 'Index of radial velocity samples'
                       units     = ''
                       comment   = 'Dimension representing the sample number for the radial data arrays'
    site_name   
           Size:       8x4
           Dimensions: time,siteNameLength
           Datatype:   char
           Attributes:
                       sdn_parameter_name = 'platform_name'
                       long_name          = 'Site name at time index'
                       units              = ''
                       comment            = 'Provides the siteName to distinguish the source of combined radial data at each time index'
    lon         
           Size:       74x93
           Dimensions: y,x
           Datatype:   double
           Attributes:
                       sdn_parameter_name = 'longitude'
                       long_name          = 'Longitude'
                       units              = 'degrees_east'
                       axis               = 'X'
                       valid_min          = -180
                       valid_max          = 180
                       reference_datum    = 'geographical coordinates, WGS84 datum'
    lat         
           Size:       74x93
           Dimensions: y,x
           Datatype:   double
           Attributes:
                       sdn_parameter_name = 'latitude'
                       long_name          = 'Latitude'
                       units              = 'degrees_north'
                       axis               = 'Y'
                       valid_min          = -90
                       valid_max          = 90
                       reference_datum    = 'geographical coordinates, WGS84 datum'
    lon_sample  
           Size:       8x1511
           Dimensions: time,index
           Datatype:   double
           Attributes:
                       sdn_parameter_name = 'longitude'
                       long_name          = 'Longitude at each radial velocity sampling location'
                       units              = 'degrees_east'
                       axis               = 'X'
                       valid_min          = -180
                       valid_max          = 180
                       reference_datum    = 'geographical coordinates, WGS84 datum'
    lat_sample  
           Size:       8x1511
           Dimensions: time,index
           Datatype:   double
           Attributes:
                       sdn_parameter_name = 'latitude'
                       long_name          = 'Latitude at each radial velocity sampling location'
                       units              = 'degrees_north'
                       axis               = 'Y'
                       valid_min          = -90
                       valid_max          = 90
                       reference_datum    = 'geographical coordinates, WGS84 datum'
    u           
           Size:       8x1511
           Dimensions: time,index
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'surface_eastward_sea_water_velocity'
                       long_name          = 'Quality controlled eastward component of ocean surface radial velocity'
                       units              = 'cm/s'
                       valid_min          = -150
                       valid_max          = 150
                       ancillary_variable = 'quality_flag'
                       coordinates        = 'time lon lat'
                       comment            = 'Quality controlled eastward component of ocean surface radial velocity.'
    v           
           Size:       8x1511
           Dimensions: time,index
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'surface_northward_sea_water_velocity'
                       long_name          = 'Quality controlled northward component of ocean surface radial velocity'
                       units              = 'cm/s'
                       valid_min          = -150
                       valid_max          = 150
                       ancillary_variable = 'quality_flag'
                       coordinates        = 'time lon lat'
                       comment            = 'Quality controlled northward component of ocean surface radial velocity.'
    u_raw       
           Size:       8x1511
           Dimensions: time,index
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'surface_eastward_sea_water_velocity'
                       long_name          = 'Eastward component of ocean surface raw radial velocity'
                       units              = 'cm/s'
                       ancillary_variable = 'quality_flag'
                       coordinates        = 'time lon lat'
                       comment            = 'Eastward component of ocean surface raw radial velocity.'
    v_raw       
           Size:       8x1511
           Dimensions: time,index
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'surface_northward_sea_water_velocity'
                       long_name          = 'Northward component of ocean surface raw radial velocity'
                       units              = 'cm/s'
                       ancillary_variable = 'quality_flag'
                       coordinates        = 'time lon lat'
                       comment            = 'Northward component of ocean surface raw radial velocity.'
    quality_flag
           Size:       8x1511
           Dimensions: time,index
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'quality_flag'
                       long_name          = 'Overall quality flags for total ocean surface current velocity'
                       flag_meanings      = 'No_quality_control_performed Good_Data Data_probably_good Data_bad_but_potentially_correctable Bad_data Insufficient_valid_data_for_reliable_down_sampling Averaged_value Interpolated_value Missing_value'
                       valid_min          = 0
                       valid_max          = 9
                       flag_values        = [0  1  2  3  4  6  7  8  9]
                       coordinates        = 'time lon lat'
                       comment            = 'Overall quality flags for eastward and northward ocean surface current velocities. For details about quality control tests applied see processing_parameters variable. With more details on ONC's flag meanings: 0 - No quality control performed, 1 - Good. Data passes all tests, 2 - Data probably good, 3 - Data bad but potentially correctable, 4 - Bad data, 6 - Insufficient valid data for reliable down-sampling, 7 - Averaged value, 8 - Interpolated value, 9 - Missing value.'
    crs         
           Size:       8x1
           Dimensions: time
           Datatype:   int32
           Attributes:
                       long_name          = 'Coordinate Reference System'
                       grid_mapping_name  = 'latitude_longitude'
                       epsg_code          = 'EPSG:4326'
                       semi_major_axis    = 6378137
                       inverse_flattening = 298.2572
                       comment            = 'http://www.opengis.net/def/crs/EPSG/0/4326'


...

Expand
titleClick here to expand to see an example Totals netCDF structure...


No Format
Source:
           C:\Users\bbiffard\Downloads\StraitofGeorgia_StraitofGeorgiaCODARSystem_OceanographicRadarSystem_20210603T220000.000Z_20210603T230000.000Z-Totals_Clean.nc
Format:
           netcdf4_classic
Global Attributes:
           acknowledgement                = 'Ocean Networks Canada is an initiative of the University of Victoria'
           id                             = 'BLANK'
           naming_authority               = 'Ocean Networks Canada'
           project                        = 'BLANK'
           processing_level               = 'Quality controlled surface current data'
           time_coverage_duration         = 'BLANK'
           time_coverage_resolution       = 'BLANK'
           standard_name_vocabulary       = 'BLANK'
           publisher_name                 = 'Ocean Networks Canada'
           publisher_url                  = 'https://data.oceannetworks.ca'
           publisher_email                = 'info@oceannetworks.ca'
           title                          = 'Surface Ocean Velocity; Strait of Georgia'
           institution                    = 'Ocean Networks Canada; University of Victoria'
           creator_institution            = 'Ocean Networks Canada'
           creator_name                   = 'Ocean Networks Canada'
           creator_type                   = 'institution'
           creator_email                  = 'info@oceannetworks.ca'
           creator_url                    = 'https://data.oceannetworks.ca'
           date_created                   = 'see searchID 20383823'
           history                        = 'CODAR radial data (hourly, usually) combined into one file containing ocean surface velocity vector'
           references                     = 'https://wiki.oceannetworks.ca/display/DP/148'
           source                         = 'CODAR Seasonde HF-Radar ocean surface current mapping device'
           Conventions                    = 'CF-1.7, ACDD-1.3'
           Metadata_conventions           = 'Unidata Dataset Discovery v1.0'
           cdm_data_type                  = 'Grid'
           geospatial_bounds              = 'BLANK'
           geospatial_bounds_vertical_crs = 'BLANK'
           geospatial_vertical_min        = 0
           geospatial_vertical_max        = 0
           geospatial_vertical_positive   = 'down'
           sea_name                       = 'Salish Sea'
           instrument                     = 'Network includes active CODAR sites: VATK, VCOL, VGPT, VION'
           summary                        = 'Radial velocity data within a specified radius of each grid coordinate are combined by an unweighted least-squares method using a ONC-modified HFR_Progs (v2.1.2) MATLAB package. Duty cycle is usually hourly. A number of QC tests are applied to the total current velocity data to produce a clean (filtered) data set, building on the tests applied to the radial velocity data sets. See https://wiki.oceannetworks.ca/display/DP/148 for complete documentation. In the final product, raw and quality controlled total current velocity data and other variable data are placed on a geospatial grid with easting and northing distance to site origin as dimensions. Processing parameters and related quality control information are also provided.'
           keywords                       = 'BLANK'
           comment                        = 'Detailed documentation: https://wiki.oceannetworks.ca/display/DP/148'
           geospatial_lat_units           = 'degrees east'
           geospatial_lat_min             = -124.003
           geospatial_lat_max             = 49.4272
           geospatial_lon_units           = 'degrees north'
           geospatial_lon_min             = -124.003
           geospatial_lon_max             = -122.7348
           time_coverage_start            = '29590526T235959Z'
           time_coverage_end              = '29690404T000000Z'
           attrbution                     = 'Ocean Networks Canada Data Archive, http://www.oceannetworks.ca, University of Victoria, Canada, Oceanographic Radar System data from 03-Jun-2021 22:00:00 to 03-Jun-2021 23:59:59'
           processing_steps               = 'Total ocean surface current velocities are computed from clean radial data upon a user request of the data. See the Grid structure for grid spacing and extents on which total velocities are calculated. Hourly radial data within a specified radius of each grid coordinate are combined by an unweighted least-squares method using a ONC-modified HFR_Progs (v2.1.2) MATLAB package. A number of QC tests are applied to the totals data to produce a clean (filtered) data set, building on the tests applied to the Radial data sets. See the Radials structure and Radials.ProcessingSteps for details on those tests. The test thresholds/parameters are recorded below and in the Totals.QC structure. See https://wiki.oceannetworks.ca/display/DP/148 for complete documention. 
                                            makeTotals.m created the Totals data structure with the following parameters: spatthresh: 1.5 km, tempthresh: 0.041667 days, MinNumSites: 2, MinNumRads: 3. 
                                            QARTOD Test 16: Max Threshold (totals) - Flags total surface current speeds exceeding the maximum threshold of 220 cm/s. cleanTotalsVel.m cleaned * data points exceeding the maximum radial current speed. 
                                            QARTOD Test 15: GDOP Threshold (totals) - Flags total surface current velocities with poor geometric relationship between contributing radials. Totals with GDOP > 1.25 are flagged. cleantotalsGDOP.m cleaned * data points. 
                                            Additional test: GDOPMaxOrthog - Flags total surface current velocities exceeding the GDOPMaxOrthog error estimation (TotalErrors) values and a test threshold value of Inf. cleantotalsGDOP.m cleaned * data points. 
                                            Additional test: GDOPRadErr - Flags total surface current velocities exceeding the GDOPRadErr error estimation (TotalErrors) values and a test threshold value of Inf. cleantotalsGDOP.m cleaned * data points. 
                                            Additional test: GDOPSites - Flags total surface current velocities exceeding the GDOPSites error estimation (TotalErrors) values and a test threshold value of Inf. cleantotalsGDOP.m cleaned * data points. 
                                            Additional test: FitDif - Flags total surface current velocities exceeding the FitDif error estimation (TotalErrors) values and a test threshold value of Inf. cleantotalsGDOP.m cleaned * data points. 
                                            Additional test: TUV Quality - Flags total surface current velocities with UQAL and VQUAL equal to 999. UQAL and VQAL values are read from the total file (.tuv) produced by Seasonde software. cleanTUVqual.m cleaned * data points. 
                                            * see the relevant flag variable to determine the number of data points cleaned at each step. '
Dimensions:
           time = 2
           x    = 93
           y    = 74
Variables:
    time             
           Size:       2x1
           Dimensions: time
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'time'
                       long_name          = 'Time of measurement UTC'
                       units              = 'seconds since 1970-01-01 00:00:00'
                       axis               = 'T'
                       calendar           = 'gregorian'
    x                
           Size:       93x1
           Dimensions: x
           Datatype:   double
           Attributes:
                       long_name = 'Easting distance from the CODAR grid origin'
                       units     = 'km'
                       valid_min = '-46'
                       valid_max = '46'
                       comment   = 'Grid origin coordinates: 49.0675 degrees latitude, -123.3689 degrees longitude. CODAR total ocean surface current velocity grid spacing (in km): 1'
    y                
           Size:       74x1
           Dimensions: y
           Datatype:   double
           Attributes:
                       long_name = 'Northing distance from the CODAR grid origin'
                       units     = 'km'
                       valid_min = '-33'
                       valid_max = '40'
                       comment   = 'Grid origin coordinates: 49.0675 degrees latitude, -123.3689 degrees longitude. CODAR total ocean surface current velocity grid spacing (in km): 1'
    lon              
           Size:       74x93
           Dimensions: y,x
           Datatype:   double
           Attributes:
                       sdn_parameter_name = 'longitude'
                       long_name          = 'Longitude'
                       units              = 'degrees_east'
                       axis               = 'X'
                       valid_min          = -180
                       valid_max          = 180
                       reference_datum    = 'geographical coordinates, WGS84 datum'
    lat              
           Size:       74x93
           Dimensions: y,x
           Datatype:   double
           Attributes:
                       sdn_parameter_name = 'latitude'
                       long_name          = 'Latitude'
                       units              = 'degrees_north'
                       axis               = 'Y'
                       valid_min          = -90
                       valid_max          = 90
                       reference_datum    = 'geographical coordinates, WGS84 datum'
    u                
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'surface_eastward_sea_water_velocity'
                       long_name          = 'Quality controlled eastward ocean surface current velocity'
                       units              = 'cm/s'
                       valid_min          = -220
                       valid_max          = 220
                       ancillary_variable = 'quality_flag'
                       coordinates        = 'time lon lat'
                       comment            = 'Quality controlled eastward ocean surface current velocity resulting from the unweighted least-squares fit of quality controlled radial velocity measurements.'
    v                
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'surface_northward_sea_water_velocity'
                       long_name          = 'Quality controlled northward ocean surface current velocity'
                       units              = 'cm/s'
                       valid_min          = -220
                       valid_max          = 220
                       ancillary_variable = 'quality_flag'
                       coordinates        = 'time lon lat'
                       comment            = 'Quality controlled northward ocean surface current velocity resulting from the unweighted least-squares fit of quality controlled radial velocity measurements.'
    u_raw            
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'surface_eastward_sea_water_velocity'
                       long_name          = 'Eastward ocean surface current velocity'
                       units              = 'cm/s'
                       ancillary_variable = 'quality_flag'
                       coordinates        = 'time lon lat'
                       comment            = 'Eastward ocean surface current velocity resulting from the unweighted least-squares fit of raw radial velocity measurements.'
    v_raw            
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'surface_northward_sea_water_velocity'
                       long_name          = 'Northward ocean surface current velocity'
                       units              = 'cm/s'
                       ancillary_variable = 'quality_flag'
                       coordinates        = 'time lon lat'
                       comment            = 'Northward ocean surface current velocity resulting from the unweighted least-squares fit of raw radial velocity measurements.'
    u_err            
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue  = -999
                       long_name   = 'Uncertainty error associated with eastward velocity component'
                       units       = 'unitless_velocity^2'
                       coordinates = 'time lon lat'
                       comment     = 'Eastward variance based on directional information of eastward ocean surface current velocity (u_raw).'
    v_err            
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue  = -999
                       long_name   = 'Uncertainty error associated with northward velocity component'
                       units       = 'unitless_velocity^2'
                       coordinates = 'time lon lat'
                       comment     = 'Northward variance based on directional information of northward ocean surface current velocity (v_raw).'
    uv_covariance    
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue  = -999
                       long_name   = 'Eastward and northward covariance directional information of u and v'
                       units       = 'unitless_velocity^2'
                       coordinates = 'time lon lat'
                       comment     = 'Eastward and northward covariance based on directional information of eastward (u_raw) northward (v_raw) ocean surface current velocities.'
    gdop             
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue  = -999
                       long_name   = 'Geometric dilution of precision'
                       units       = '1'
                       coordinates = 'time lon lat'
                       comment     = 'The GDOP (Geometric Dilution Of Precision) terminology is borrowed from satellite navigation and represents the effect that measurement errors due to low angular separation between radial vectors have on the precision of the total current velocity solution. Higher values of GDOP indicate higher uncertainty in the total current velocity vector due to poor geometry.'
    number_of_radials
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue  = -999
                       long_name   = 'Number of radial measurements used to calculate each totals velocity'
                       units       = 1
                       coordinates = 'time lon lat'
                       comment     = 'The number of radial measurements used to calculate each total current velocity are based on quality controlled radial velocities. Radial velocity measurements are obtained from individual radar sites via manufacturer's software and archived in Oceans 23.0 (https://data.oceannetworks.ca). Upon requesting data, a number of QC tests are applied to the raw data to produce a clean (filtered) data set. The test thresholds/parameters are recorded in the processingSteps and releated attributes. See https://wiki.oceannetworks.ca/display/DP/148 for complete documentation.'
    quality_flag     
           Size:       74x93x2
           Dimensions: y,x,time
           Datatype:   double
           Attributes:
                       _FillValue         = -999
                       sdn_parameter_name = 'quality_flag'
                       long_name          = 'Overall quality flags for total ocean surface current velocity'
                       flag_meanings      = 'No_quality_control_performed Good_Data Data_probably_good Data_bad_but_potentially_correctable Bad_data Insufficient_valid_data_for_reliable_down_sampling Averaged_value Interpolated_value Missing_value'
                       valid_min          = 0
                       valid_max          = 9
                       flag_values        = [0  1  2  3  4  6  7  8  9]
                       coordinates        = 'time lon lat'
                       comment            = 'Overall quality flags for eastward and northward ocean surface current velocities. For details about quality control tests applied see processing_parameters variable. With more details on ONC's flag meanings: 0 - No quality control performed, 1 - Good. Data passes all tests, 2 - Data probably good, 3 - Data bad but potentially correctable, 4 - Bad data, 6 - Insufficient valid data for reliable down-sampling, 7 - Averaged value, 8 - Interpolated value, 9 - Missing value.'
    crs              
           Size:       2x1
           Dimensions: time
           Datatype:   int32
           Attributes:
                       long_name          = 'Coordinate Reference System'
                       grid_mapping_name  = 'latitude_longitude'
                       epsg_code          = 'EPSG:4326'
                       semi_major_axis    = 6378137
                       inverse_flattening = 298.2572
                       comment            = 'http://www.opengis.net/def/crs/EPSG/0/4326'


...

  1. Input ‘clean’ radial data from radial data QAQC workflow for each station and time stamp.
  2. Input .TUV total vector files from SeaSonde.
  3. Input combine_<LOCATION_CODE>.grd grid file from SeaSonde combiner computer for each network, where location code is VSOG for Strait of Georgia, VRUP for Prince Rupert, etc. The grid file applied is also selected from a time range of applicability
  4. Calculate new set of totals from clean radial data using HFR_PROGS. In this step, the spatial grid is provided from the combine_LOCN.grd file. Pre-determined temporal and spatial windows around each grid point are used to determine which radial vectors contribute to each total vector.
    • A spatial threshold (a search radius) is supplied to makeTotals for griding the radial data into total: SPATTHRES
    • A minimum number of contributing CODAR sites is required: MIN_NUM_SITES
  5. Apply Test 14 - Data Density Test:
    • Flag total vectors with RV_MIN < 3.
  6. Calculate GDOP values at each grid point using HFR_PROGS.
  7. Apply Test 15 - GDOP Threshold Test:
    • Flag total vectors with GDOP ≥ GDOP_MAX.
    • Optional GDOP tests are available but currently are not used. HFR_Progs produces four other error estimates in addition to the standard GDOP: GDOPMaxOrthog, GDOPRadErr, GDOPSites, FitDif. These are available in the MAT file structure if users wish to do additional filtering. ONC Data Specialists can also enable these in the live data products by changing the device attributes in Oceans 23.0 (current values are empty so that tests are not applied).
  8. Apply Test 16 - Max Speed Threshold:
    • Flag total vectors with TSPD > TSPD_MAX.
  9. Spatial Quality Test:
    • Flag data where UQUAL or VQUAL = 999.
  10. Output new total data (.TUV) including QA/QC test results.

...

The Totals structure is the cleaned total surface velocities. The 'raw' totals U and V velocity components are available as Totals(1).Uraw  and Totals(1).Vraw, with raw meaning that these values are as makeTotals.m  has calculated in step 4, prior to step 5 thru 9 that test and clean the data, so 'raw' in this case includes the testing and cleaning done in the calculation of the radial velocities. All of the processing is all done on demand and on-the-fly and the data processing is quite quick. The bolded parameters above are tune-able via the Oceans 23.0 device attributes, and the values used stored in additional fields in the MAT file structure so that are easily available. The parameters used in the various functions are in the QC structure and in Totals.OtherMetadata.makeTotals.parameters. The Totals.ProcessingSteps cell array contains summary information on the cleaning steps in particular. The QC sub-structure is an additional structure that exists within both the Radials and Totals that captures the flags and test thresholds generated by the tests.

...