Introduction
This page provides an in-depth description of the NetCDF file format specification (IOOS_Glider_NetCDF_v2.0.nc) used by the U.S. IOOS National Glider Data Assembly Center to archive and distribute real-time and delayed-mode glider data sets. A thorough reading is strongly recommended prior to beginning the submission process.
Examples of the file specification are available as NetCDF, CDL, and ncml are available here.
The NetCDF file specification detailed below serves 2 primary purposes:
- Provide a complete metadata record for all glider data submitted to the NGDAC that can be harvested and stored by existing catalogs and registries.
- Provide a simple file format that is easily created by glider operators and data managers. The flexibility provided by this specification allows for the creation of compound data products that result in easier, more intuitive methods of access by a wide range of end-users and in a variety of formats (i.e.: csv, tsv, json, geoJson, etc.).
- Preserve the original resolution of the data sets.
Once the files have been uploaded by the individual glider operators, they are aggregated into a single data set (via ERDDAP) representing the entire deployment/trajectory. These deployment/trajectory datasets are publicly accessible via ERDDAP and THREDDS end-points. The files submitted by glider operators are archived by the NGDAC, but are not available for public access in their original form. The NGDAC uses a private ERDDAP server to aggregate the individual files into a single file representing the trajectory, in which all original metadata and sampling resolution is preserved.
File Naming Conventions
The following list specifies the 2 file types which will be accepted by the U.S IOOS National Glider Data Assembly Center and the required naming conventions for each:
- glider_yyyymmddTHHMMSSZ.nc: Data gathered in real-time or near real-time. These files typically contain a subset of the full-resolution data provided in the delayed mode NetCDF files.
- glider_yyyymmddTHHMMSSZ_delayed.nc: Delayed-mode data set typically submitted after the glider is recovered. Delayed mode data may include a quality assessment but this is not required currently.
Where
- glider
- Identifying name or type abbreviation for the glider.
- yyyymmddTHHMMSSZ
- ISO 8601 formatted date representing the start time of the data acquisition, followed by Z to denote UTC time, not a local time zone.
- ‘delayed’
- string specifying delayed mode (post-recovery) data acquisition.
Ideally, the glider_yyyymmddTHHMMSS.nc files will be provided by the individual operators during the deployment and the glider_yyyymmddTHHMMSS_delayed.nc files will be provided after the glider has been recovered and the full data set processed. It is expected, where applicable, that all files will contain the appropriate VARIABLE_qc variables to convey some level of quality assurance for the data. A discussion of these variables and their relationship to the sensor variables is found below.
Global Attributes
The following is the list of required global attributes that must be included in each NetCDF file submitted to the NGDAC. This list was created from a variety of sources with the goal of providing a complete metadata record of the data set. More information on these sources can be found at the following locations:
- Climate and Forecast (CF): Especially the section on Attributes (section 2.6, as of CF v1.10)
- Attribute Convention for Data Discovery (ACDD)
- NOAA National Centers for Environmental Information (NCEI) netCDF Templates: Guidance from NCEI on netCDF templates to promote good stewardship and archiving. NCEI Templates and global attribute suggestions.
- Integrated Marine Observing System (IMOS)/Australian National Facility for Ocean Gliders (ANFOG): Data Management User’s Manual v5.1
- IOOS: Internal discussion within the IOOS Glider Data Team.
Caveats
There are a few important points to mention with regards to global attributes:
- All attributes listed below are REQUIRED and should have meaningful values assigned to them. In the event that a meaningful value cannot be assigned, set the value to a single whitespace character enclosed in double quotes. For example, if the data set has not been modified, you should set the date_modified attribute value to " ".
- For attributes with timestamp values (i.e.: date_created, date_modified, date_issued), use the ISO 8601:2004 ‘extended’ format. This format has the general form: YYYY-MM-DDThh:mm:ssZ.
- All global attributes must be string attributes.
- You may or may not notice the absence of a number of global attributes, particularly related to temporal and spatial extent (i.e.: geospatial_lat_min, geospatial_vertical_min, time_coverage_start, etc.), from this list. The NGDAC will add these global attributes and assign appropriate values to them prior to making the aggregated data sets available to the public.
- The name and a description of each attribute are listed below. An example is given where the selection of an appropriate value may be unclear. Please use the specified Value listed under the attribute name for the following attributes: Conventions, Metadata_Conventions, format_version, standard_name_vocabulary.
Description and Examples of Required Global Attributes
Conventions
Version of the Climate and Forecast metadata conventions followed by the file format specification.
- Value:
- “CF-1.6”
Metadata_Conventions
Unidata NetCDF group’s Attribute Conventions for Dataset Discovery. These conventions identify and define a list of NetCDF global attributes recommended for describing a NetCDF dataset to discovery systems such as Digital Libraries. Software tools will use these attributes for extracting metadata from datasets, and exporting to Dublin Core, DIF, ADN, FGDC, ISO 19115 etc. metadata formats.
- Value:
- “CF-1.6, Unidata Dataset Discovery v1.0”
acknowledgement
String used to properly acknowledge use of the data.
- Example:
- “This work supported by funding from NOAA”
comment
Free-form field used to provide additional information on the data set.
contributor_name
A comma separated list of contributors to this data set.
- Example:
- “Jerry Garcia, Bob Weir, Bill Graham”
contributor_role
A comma separated list of the roles of those specified using the contributor_name attribute.
- Example:
- “Principal Investigator, Principal Investigator, Data Manager”
creator_email
Email address for person who collected the data.
creator_name
Name of the person who collected the data.
creator_url
URL for person who collected the data.
date_created
Creation date of the file. Use the ISO 8601:2004 Extended Date/Time format.
- Example:
- “1977-05-08T20:00:00Z”
date_issued
The date on which this data was formally issued. Use the ISO 8601:2004 Extended Date/Time format.
- Example:
- “1992-06-25T20:00:00Z”
date_modified
Modification date of the file, if any. Use the ISO 8601:2004 Extended Date/Time format.
- Example:
- “1978-06-04T20:00:00Z”
format_version
NetCDF file format version.
- Value:
- “IOOS_Glider_NetCDF_v2.0.nc”
history
This is a String with one or more lines, each of which has the ISO 8601:2004 Extended Date/Time Format (EDTF) and the name and command line parameters of the program used to create or change the data and/or other information about the change.
- Example:
- “2014-07-21T00:00:00Z: /bin/writeIoosNc.py”
id
A human readable unique identifier for data set. We recommend using the trajectory variable string name, which must have the following format:
glider-YYYYmmddTHHMM
Where glider
is the name of the glider and YYYYmmddTHHMM
is the deployment date/time.
- Example:
- “ru30-20140101T0000”
institution
Institution of the person or group that collected the data. This value should be identical to the “Operator” specified on the https://gliders.ioos.us/providers data providers page.
- Example:
- “Rutgers University”
keywords
A comma separated list of keywords coming from the **keywords_vocabulary</b>.
- Example:
- “AUVS > Autonomous Underwater Vehicles, Oceans > Ocean Pressure > Water Pressure, Oceans > Ocean Temperature > Water Temperature, Oceans > Salinity/Density > Conductivity, Oceans > Salinity/Density > Density, Oceans > Salinity/Density > Salinity”
keywords_vocabulary
Identifies the controlled keyword vocabulary used to specify the values within the keywords attribute.
- Example:
- “GCMD Science Keywords”
license
Describe the restrictions to data access and distribution.
- Example:
- “This data may be redistributed and used without restriction.”
metadata_link
This attribute provides a link to a complete metadata record for this data set or the collection that contains this data set.
naming_authority
Backward URL of institution.
- Example:
- “edu.rutgers.marine.rucool”
platform_type
Glider type.
- Current accepted types are:
-
“Seaglider”, “Spray”, “Slocum”
No other values will be accepted for this attribute.
processing_level
Provide a description of the processing or quality control level of the data.
- Example:
- “Data provided as is with no expressed or implied assurance of quality assurance or quality control.”
project
Project the data was collected under.
- Example:
- “TEMPESTS”
publisher_email
Email address of the publisher of the data.
publisher_name
Name of the publisher of the data.
publisher_url
A URL for the publisher of the data.
references
Published or web-based references that describe the data or methods used to produce it.
sea_name
The names of the sea in which the data were collected. Use NODC sea names table. Currently located at: http://www.nodc.noaa.gov/General/NODC-Archive/seanamelist.txt.
source
The input data sources regardless of the method of production method used.
- Example:
- “Observational data from a profiling glider.”
standard_name_vocabulary
Version of CF standard names used for variables. Current standard name table (e.g. “Standard Name Table (v73, 23 June 2020)”)
summary
Provide a useful summary or abstract for the data in the file. This summary is used as the primary piece of information describing the data set for discovery and archiving purposes. As such, careful thought should be put into constructing the summary.
- Example:
- “Slocum glider dataset gathered as part of the TEMPESTS (The Experiment to Measure and Predict East coast STorm Strength), funded by NOAA through CINAR (Cooperative Institute for the North Atlantic Region). This dataset contains physical oceanographic measurements of temperature, conductivity, salinity, density and estimates of depth-average currents.”
Regardless of the summary added by the data provider, the following summary is added to this attribute prior to archiving by NCEI:
“Addendum: The Integrated Ocean Observing System’s National Glider Data Assembly Center receives sets of individual NetCDF files comprising an individual glider deployment from data operators and providers around the world. These files are checked for compliance and then aggregated into a single data set representing the entire deployment and made available via ERRDAP and THREDDS end points, making the data sets available to the public. Currently, the data sets provide measurements of physical oceanographic properties (temperature, salinity, conductivity and density). Future plans, currently under development, include providing access to biological and chemical properties. Once the deployment has been completed, as specified by the glider operator or data provider, the data set is marked for archiving, at which point it is added to the National Centers for Environmental Information (NCEI, formerly NODC) data archive to create a permanent archive of the data set.”
title
We recommend using the trajectory variable string name, which must have the following format:
glider-YYYYmmddTHHMM
Where glider
is the name of the glider and YYYYmmddTHHMM
is the deployment date/time.
- Example:
- “ru30-20140101T0000”
wmo_id
String specifying the WMO ID used to identify this platform. Must be specified as a string attribute. Each WMO ID is unique to an individual glider deployed in a specific location and must be requested from the NGDAC administrator.
- Example:
- “4801518”
Variables
The NetCDF file specification contains 3 core variable types which relate to how the individual NetCDF files are aggregated by the NGDAC:
- time-series: dimensioned along the time axis to provide access to the data as time-series.
- profile: dimensionless variables that provide access to data on a profile-by-profile basis
- container: dimensionless variables used to capture meta data regarding the platform and instrumentation on board the glider.
Most of the time-series variables and many of the profile variables have corresponding data quality variables, which are referenced via the ancillary_variables variable attribute. The dimensions of these variables are the same as the variables they convey quality information about.
While no CF standard names exist for these flags, CF conventions allow the use of a standard_name modifier to be appended to the corresponding variable’s standard name to create the standard name for the quality control flag. For example, the temperature variable has a corresponding data quality variable (temperature_qc). The standard_name attribute contains the CF standard name of the variable it references with status_flag appended, i.e.: temperature status_flag
The following is a list and description of all variables and corresponding variable attributes that are REQUIRED for the file to be accepted by the NGDAC. A CDL description of each variable is located below the formal description. Examples of the various attributes have been provided for reference, but each data provider is encouraged to modify these values if they feel it is necessary, particularly for the following attributes:
- comment
- valid_min
- valid_max
- accuracy
- precision
- resolution
- platform:wmo_id
- platform:id
- platform:long_name
- All instrument_ctd attributes except instrument_ctd:platform
Examples of the file specification are available as NetCDF, CDL, and ncml are available here.
Dimensions
NetCDF files submitted by the individual glider operators contain 2 dimension variables:
- time: time when the individual sensor record was recorded.
- traj_strlen: string specifying the trajectory name.
According to CF Conventions, dimension variables are not allowed to have missing values (i.e.: _FillValue).
The aggregated data sets created by the NGDAC contain the following additional dimensions to increase the data access methods and are NOT included in the individual profile NetCDF files submitted by the glider operators:
- trajectory
- profile
- obs
- wmo_id_strlen
Trajectory Variables
The trajectory variable stores a character array that identifies the deployment during which the data was gathered. This variable is used by the DAC to aggregate all individual NetCDF profiles containing the same trajectory value into a single trajectory profile data set. This value should be a character array that uniquely identifies the deployment. Each individual NetCDF file from the deployment data set must have the same value.
trajectory
Dimension | traj_strlen |
Data Type | string stored as char array |
Value Type | array |
_FillValue | ”” |
Description | String representation of the trajectory specified using the format: **GLIDER-YYYYmmddTHHMM</b>. |
CDL example with REQUIRED attributes:
char trajectory(traj_strlen) ;
trajectory:cf_role = "trajectory_id" ;
trajectory:comment = "A trajectory is a single deployment of a glider and may span multiple data files." ;
trajectory:long_name = "Trajectory/Deployment Name" ;
Time-Series Variables
The following variables are dimensioned along the time axis.
time
**IMPORTANT: The CF specification does not allow coordinate variables to contain missing/_FillValue values.</b>
Dimension | time |
Data Type | double |
Value Type | array |
Description | An array containing the time stamp corresponding to the acquisition of the sensor data for the profile. |
CDL example with REQUIRED attributes:
double time(time) ;
time:ancillary_variables = "time_qc" ;
time:calendar = "gregorian" ;
time:long_name = "Time" ;
time:observation_type = "measured" ;
time:standard_name = "time" ;
time:units = "seconds since 1970-01-01T00:00:00Z" ;
time_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the time variable. |
CDL example with REQUIRED attributes:
byte time_qc(time) ;
time_qc:_FillValue = -127b ;
time_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
time_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
time_qc:long_name = "time Quality Flag" ;
time_qc:standard_name = "time status_flag" ;
time_qc:valid_max = 9b ;
time_qc:valid_min = 0b ;
lat
Dimension | time |
Data Type | double |
Value Type | array |
_FillValue | -999. |
Description | An array containing the time-series of measured and/or interpolated latitudes for the profile. |
CDL example with REQUIRED attributes:
double lat(time) ;
lat:_FillValue = -999. ;
lat:ancillary_variables = "lat_qc" ;
lat:comment = "Values may be interpolated between measured GPS fixes" ;
lat:coordinate_reference_frame = "urn:ogc:crs:EPSG::4326" ;
lat:long_name = "Latitude" ;
lat:observation_type = "measured" ;
lat:platform = "platform" ;
lat:reference = "WGS84" ;
lat:standard_name = "latitude" ;
lat:units = "degrees_north" ;
lat:valid_max = 90. ;
lat:valid_min = -90. ;
lat_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the lat variable. |
CDL example with REQUIRED attributes:
byte latitude_qc(time) ;
lat_qc:_FillValue = -127b ;
lat_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
lat_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
lat_qc:long_name = "latitude Quality Flag" ;
lat_qc:standard_name = "latitude status_flag" ;
lat_qc:valid_max = 9b ;
lat_qc:valid_min = 0b ;
lon
Dimension | time |
Data Type | double |
Value Type | array |
_FillValue | -999. |
Description | An array containing the time-series of measured and/or interpolated longitudes for the profile. |
CDL example with REQUIRED attributes:
double lon(time) ;
lon:_FillValue = -999. ;
lon:ancillary_variables = "lon_qc" ;
lon:comment = "Values may be interpolated between measured GPS fixes" ;
lon:coordinate_reference_frame = "urn:ogc:crs:EPSG::4326" ;
lon:long_name = "Longitude" ;
lon:observation_type = "measured" ;
lon:platform = "platform" ;
lon:reference = "WGS84" ;
lon:standard_name = "longitude" ;
lon:units = "degrees_east" ;
lon:valid_max = 180. ;
lon:valid_min = -180. ;
lon_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the lon variable. |
CDL example with REQUIRED attributes:
byte lon_qc(time) ;
lon_qc:_FillValue = -127b ;
lon_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
lon_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
lon_qc:long_name = "longitude Quality Flag" ;
lon_qc:standard_name = "longitude status_flag" ;
lon_qc:valid_max = 9b ;
lon_qc:valid_min = 0b ;
pressure
Dimension | time |
Data Type | double |
Value Type | array |
_FillValue | -999. |
Description | An array containing the time-series of measured and/or interpolated pressures for the profile. |
CDL example with REQUIRED attributes:
double pressure(time) ;
pressure:_FillValue = -999. ;
pressure:accuracy = " " ;
pressure:ancillary_variables = "pressure_qc" ;
pressure:comment = " " ;
pressure:instrument = "instrument_ctd" ;
pressure:long_name = "Pressure" ;
pressure:observation_type = "measured" ;
pressure:platform = "platform" ;
pressure:positive = "down" ;
pressure:precision = " " ;
pressure:reference_datum = "sea-surface" ;
pressure:resolution = " " ;
pressure:standard_name = "sea_water_pressure" ;
pressure:units = "dbar" ;
pressure:valid_max = 2000 ;
pressure:valid_min = 0 ;
pressure_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the pressure variable. |
CDL example with REQUIRED attributes:
byte pressure_qc(time) ;
pressure_qc:_FillValue = -127b ;
pressure_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
pressure_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
pressure_qc:long_name = "pressure Quality Flag" ;
pressure_qc:standard_name = "sea_water_pressure status_flag" ;
pressure_qc:valid_max = 9b ;
pressure_qc:valid_min = 0b ;
depth
Dimension | time |
Data Type | double |
Value Type | array |
_FillValue | -999. |
Description | An array containing the time-series of measured and/or interpolated depths for the profile. |
CDL example with REQUIRED attributes:
double depth(time) ;
depth:_FillValue = -999. ;
depth:accuracy = " " ;
depth:ancillary_variables = "depth_qc" ;
depth:comment = " " ;
depth:instrument = "instrument_ctd" ;
depth:long_name = "Depth" ;
depth:observation_type = "calculated" ;
depth:platform = "platform" ;
depth:positive = "down" ;
depth:precision = " " ;
depth:reference_datum = "sea-surface" ;
depth:resolution = " " ;
depth:standard_name = "depth" ;
depth:units = "m" ;
depth:valid_max = 2000 ;
depth:valid_min = 0 ;
depth_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the depth variable. |
CDL example with REQUIRED attributes:
byte depth_qc(time) ;
depth_qc:_FillValue = -127b ;
depth_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
depth_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
depth_qc:long_name = "depth Quality Flag" ;
depth_qc:standard_name = "depth status_flag" ;
depth_qc:valid_max = 9b ;
depth_qc:valid_min = 0b ;
temperature
Dimension | time |
Data Type | double |
Value Type | array |
_FillValue | -999. |
Description | An array containing the temperature time-series for the profile. |
CDL example with REQUIRED attributes:
double temperature(time) ;
temperature:_FillValue = -999. ;
temperature:accuracy = " " ;
temperature:ancillary_variables = "temperature_qc" ;
temperature:instrument = "instrument_ctd" ;
temperature:long_name = "Temperature" ;
temperature:observation_type = "measured" ;
temperature:platform = "platform" ;
temperature:precision = " " ;
temperature:resolution = " " ;
temperature:standard_name = "sea_water_temperature" ;
temperature:units = "Celsius" ;
temperature:valid_max = 40. ;
temperature:valid_min = -5. ;
temperature_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the temperature variable. |
CDL example with REQUIRED attributes:
byte temperature_qc(time) ;
temperature_qc:_FillValue = -127b ;
temperature_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
temperature_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
temperature_qc:long_name = "temperature Quality Flag" ;
temperature_qc:standard_name = "sea_water_temperature status_flag" ;
temperature_qc:valid_max = 9b ;
temperature_qc:valid_min = 0b ;
conductivity
Dimension | time |
Data Type | double |
Value Type | array |
_FillValue | -999. |
Description | An array containing the conductivity time-series for the profile. |
CDL example with REQUIRED attributes:
double conductivity(time) ;
conductivity:_FillValue = -999. ;
conductivity:accuracy = " " ;
conductivity:ancillary_variables = "conductivity_qc" ;
conductivity:instrument = "instrument_ctd" ;
conductivity:long_name = "Conductivity" ;
conductivity:observation_type = "measured" ;
conductivity:platform = "platform" ;
conductivity:precision = " " ;
conductivity:resolution = " " ;
conductivity:standard_name = "sea_water_electrical_conductivity" ;
conductivity:units = "S m-1" ;
conductivity:valid_max = 10. ;
conductivity:valid_min = 0. ;
conductivity_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the conductivity variable. |
CDL example with REQUIRED attributes:
byte conductivity_qc(time) ;
conductivity_qc:_FillValue = -127b ;
conductivity_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
conductivity_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
conductivity_qc:long_name = "conductivity Quality Flag" ;
conductivity_qc:standard_name = "sea_water_electrical_conductivity status_flag" ;
conductivity_qc:valid_max = 9b ;
conductivity_qc:valid_min = 0b ;
salinity
Dimension | time |
Data Type | double |
Value Type | array |
_FillValue | -999. |
Description | An array containing the conductivity time-series for the profile. |
CDL example with REQUIRED attributes:
double salinity(time) ;
salinity:_FillValue = -999. ;
salinity:accuracy = " " ;
salinity:ancillary_variables = "salinity_qc" ;
salinity:instrument = "instrument_ctd" ;
salinity:long_name = "Salinity" ;
salinity:observation_type = "calculated" ;
salinity:platform = "platform" ;
salinity:precision = " " ;
salinity:resolution = " " ;
salinity:standard_name = "sea_water_practical_salinity" ;
salinity:units = "1" ;
salinity:valid_max = 40. ;
salinity:valid_min = 0. ;
salinity_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the salinity variable. |
CDL example with REQUIRED attributes:
byte salinity_qc(time) ;
salinity_qc:_FillValue = -127b ;
salinity_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
salinity_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
salinity_qc:long_name = "salinity Quality Flag" ;
salinity_qc:standard_name = "sea_water_salinity status_flag" ;
salinity_qc:valid_max = 9b ;
salinity_qc:valid_min = 0b ;
density
Dimension | time |
Data Type | double |
Value Type | array |
_FillValue | -999. |
Description | An array containing the conductivity time-series for the profile. |
CDL example with REQUIRED attributes:
double density(time) ;
density:_FillValue = -999. ;
density:accuracy = " " ;
density:ancillary_variables = "density_qc" ;
density:instrument = "instrument_ctd" ;
density:long_name = "Density" ;
density:observation_type = "calculated" ;
density:platform = "platform" ;
density:precision = " " ;
density:resolution = " " ;
density:standard_name = "sea_water_density" ;
density:units = "kg m-3" ;
density:valid_max = 1040. ;
density:valid_min = 1015. ;
density_qc
Dimension | time |
Data Type | byte |
Value Type | array |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the values in the density variable. |
CDL example with REQUIRED attributes:
byte density_qc(time) ;
density_qc:_FillValue = -127b ;
density_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
density_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
density_qc:long_name = "density Quality Flag" ;
density_qc:standard_name = "sea_water_density status_flag" ;
density_qc:valid_max = 9b ;
density_qc:valid_min = 0b ;
Dimensionless Profile Variables
The following variables are dimensionless and are used by the NGDAC to provide access to individual profiles from within the aggregated data sets. The NGDAC uses these variables to create a profile dimension in the aggregated data sets to provide access to the data on a profile-by-profile basis.
profile_id
Dimension | None |
Data Type | integer |
Value Type | Scalar |
_FillValue | -999 |
Description | Unique identifier for the profile. The numbering can begin at 1 and be incremented for each successive profile contained in the trajectory or can contain the timestamp corresponding to the mid-point of the profile. |
CDL example with REQUIRED attributes:
int profile_id ;
profile_id:_FillValue = -999 ;
profile_id:comment = "Sequential profile number within the trajectory. This value is unique in each file that is part of a single trajectory/deployment." ;
profile_id:long_name = "Profile ID" ;
profile_id:valid_max = 2147483647 ;
profile_id:valid_min = 1 ;
profile_time
Dimension | None |
Data Type | double |
Value Type | Scalar |
_FillValue | -999. |
Description | The time stamp at the mid-point of the profile. |
CDL example with REQUIRED attributes:
double profile_time ;
profile_time:_FillValue = -999. ;
profile_time:calendar = "gregorian" ;
profile_time:comment = "Timestamp corresponding to the mid-point of the profile" ;
profile_time:long_name = "Profile Center Time" ;
profile_time:observation_type = "calculated" ;
profile_time:platform = "platform" ;
profile_time:standard_name = "time" ;
profile_time:units = "seconds since 1970-01-01T00:00:00Z" ;
profile_time_qc
Dimension | None |
Data Type | byte |
Value Type | scalar |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the value in the profile_time variable. |
CDL example with REQUIRED attributes:
byte profile_time_qc ;
profile_time_qc:_FillValue = -127b ;
profile_time_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
profile_time_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
profile_time_qc:long_name = "profile_time Quality Flag" ;
profile_time_qc:standard_name = "time status_flag" ;
profile_time_qc:valid_max = 9b ;
profile_time_qc:valid_min = 0b ;
profile_lat
Dimension | None |
Data Type | double |
Value Type | Scalar |
_FillValue | -999. |
Description | The latitude at the mid-point of the profile. Since the glider is underwater at this point, this value is interpolated with the interpolation method left up to the data provider. |
CDL example with REQUIRED attributes:
double profile_lat ;
profile_lat:_FillValue = -999. ;
profile_lat:comment = "Value is interpolated to provide an estimate of the latitude at the mid-point of the profile" ;
profile_lat:long_name = "Profile Center Latitude" ;
profile_lat:observation_type = "calculated" ;
profile_lat:platform = "platform" ;
profile_lat:standard_name = "latitude" ;
profile_lat:units = "degrees_north" ;
profile_lat:valid_max = 90. ;
profile_lat:valid_min = -90. ;
profile_lat_qc
Dimension | None |
Data Type | byte |
Value Type | scalar |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the value in the profile_lat variable. |
CDL example with REQUIRED attributes:
byte profile_lat_qc ;
profile_lat_qc:_FillValue = -127b ;
profile_lat_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
profile_lat_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
profile_lat_qc:long_name = "profile_lat Quality Flag" ;
profile_lat_qc:standard_name = "latitude status_flag" ;
profile_lat_qc:valid_max = 9b ;
profile_lat_qc:valid_min = 0b ;
profile_lon
Dimension | None |
Data Type | double |
Value Type | Scalar |
_FillValue | -999. |
Description | The longitude at the mid-point of the profile. Since the glider is underwater at this point, this value is interpolated with the interpolation method left up to the data provider. |
CDL example with REQUIRED attributes:
double profile_lon ;
profile_lon:_FillValue = -999. ;
profile_lon:comment = "Value is interpolated to provide an estimate of the longitude at the mid-point of the profile" ;
profile_lon:long_name = "Profile Center Longitude" ;
profile_lon:observation_type = "calculated" ;
profile_lon:platform = "platform" ;
profile_lon:standard_name = "longitude" ;
profile_lon:units = "degrees_east" ;
profile_lon:valid_max = 180. ;
profile_lon:valid_min = -180. ;
profile_lon_qc
Dimension | None |
Data Type | byte |
Value Type | scalar |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the value in the profile_lon variable. |
CDL example with REQUIRED attributes:
byte profile_lon_qc ;
profile_lon_qc:_FillValue = -127b ;
profile_lon_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
profile_lon_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
profile_lon_qc:long_name = "profile_lon Quality Flag" ;
profile_lon_qc:standard_name = "longitude status_flag" ;
profile_lon_qc:valid_max = 9b ;
profile_lon_qc:valid_min = 0b ;
time_uv
Dimension | None |
Data Type | double |
Value Type | Scalar |
_FillValue | -999. |
Description | The time stamp of the calculated depth-averaged current for the profile. |
CDL example with REQUIRED attributes:
double time_uv ;
time_uv:_FillValue = -999. ;
time_uv:calendar = "gregorian" ;
time_uv:comment = "The depth-averaged current is an estimate of the net current measured while the glider is underwater. The value is calculated over the entire underwater segment, which may consist of 1 or more dives." ;
time_uv:long_name = "Depth-Averaged Time" ;
time_uv:observation_type = "calculated" ;
time_uv:standard_name = "time" ;
time_uv:units = "seconds since 1970-01-01T00:00:00Z" ;
time_uv_qc
Dimension | None |
Data Type | byte |
Value Type | scalar |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the value in the time_uv variable. |
CDL example with REQUIRED attributes:
byte time_uv_qc ;
time_uv_qc:_FillValue = -127b ;
time_uv_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
time_uv_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
time_uv_qc:long_name = "time_uv Quality Flag" ;
time_uv_qc:standard_name = "time status_flag" ;
time_uv_qc:valid_max = 9b ;
time_uv_qc:valid_min = 0b ;
lat_uv
Dimension | None |
Data Type | double |
Value Type | Scalar |
_FillValue | -999. |
Description | The latitude of the calculated depth-averaged current for the profile. |
CDL example with REQUIRED attributes:
double lat_uv ;
lat_uv:_FillValue = -999. ;
lat_uv:comment = "The depth-averaged current is an estimate of the net current measured while the glider is underwater. The value is calculated over the entire underwater segment, which may consist of 1 or more dives." ;
lat_uv:long_name = "Depth-Averaged Latitude" ;
lat_uv:observation_type = "calculated" ;
lat_uv:platform = "platform" ;
lat_uv:standard_name = "latitude" ;
lat_uv:units = "degrees_north" ;
lat_uv:valid_max = 90. ;
lat_uv:valid_min = -90. ;
lat_uv_qc
Dimension | None |
Data Type | byte |
Value Type | scalar |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the value in the lat_uv variable. |
CDL example with REQUIRED attributes:
byte lat_uv_qc ;
lat_uv_qc:_FillValue = -127b ;
lat_uv_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
lat_uv_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
lat_uv_qc:long_name = "lat_uv Quality Flag" ;
lat_uv_qc:standard_name = "latitude status_flag" ;
lat_uv_qc:valid_max = 9b ;
lat_uv_qc:valid_min = 0b ;
lon_uv
Dimension | None |
Data Type | double |
Value Type | Scalar |
_FillValue | -999. |
Description | The longitude of the calculated depth-averaged current for the profile. |
CDL example with REQUIRED attributes:
double lon_uv ;
lon_uv:_FillValue = -999. ;
lon_uv:comment = "The depth-averaged current is an estimate of the net current measured while the glider is underwater. The value is calculated over the entire underwater segment, which may consist of 1 or more dives." ;
lon_uv:long_name = "Depth-Averaged Longitude" ;
lon_uv:observation_type = "calculated" ;
lon_uv:platform = "platform" ;
lon_uv:standard_name = "longitude" ;
lon_uv:units = "degrees_east" ;
lon_uv:valid_max = 180. ;
lon_uv:valid_min = -180. ;
lon_uv_qc
Dimension | None |
Data Type | byte |
Value Type | scalar |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the value in the lon_uv variable. |
CDL example with REQUIRED attributes:
byte lon_uv_qc ;
lon_uv_qc:_FillValue = -127b ;
lon_uv_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
lon_uv_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
lon_uv_qc:long_name = "lon_uv Quality Flag" ;
lon_uv_qc:standard_name = "longitude status_flag" ;
lon_uv_qc:valid_max = 9b ;
lon_uv_qc:valid_min = 0b ;
u
Dimension | None |
Data Type | double |
Value Type | Scalar |
_FillValue | -999. |
Description | The eastward velocity component of the calculated depth-averaged current for the profile. |
CDL example with REQUIRED attributes:
double u ;
u:_FillValue = -999. ;
u:comment = "The depth-averaged current is an estimate of the net current measured while the glider is underwater. The value is calculated over the entire underwater segment, which may consist of 1 or more dives." ;
u:long_name = "Depth-Averaged Eastward Sea Water Velocity" ;
u:observation_type = "calculated" ;
u:platform = "platform" ;
u:standard_name = "eastward_sea_water_velocity" ;
u:units = "m s-1" ;
u:valid_max = 10. ;
u:valid_min = -10. ;
u_qc
Dimension | None |
Data Type | byte |
Value Type | scalar |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the value in the u variable. |
CDL example with REQUIRED attributes:
byte u_qc ;
u_qc:_FillValue = -127b ;
u_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
u_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
u_qc:long_name = "u Quality Flag" ;
u_qc:standard_name = "eastward_sea_water_velocity status_flag" ;
u_qc:valid_max = 9b ;
u_qc:valid_min = 0b ;
v
Dimension | None |
Data Type | double |
Value Type | Scalar |
_FillValue | -999. |
Description | The northward velocity component of the calculated depth-averaged current for the profile. |
CDL example with REQUIRED attributes:
double v ;
v:_FillValue = -999. ;
v:comment = "The depth-averaged current is an estimate of the net current measured while the glider is underwater. The value is calculated over the entire underwater segment, which may consist of 1 or more dives." ;
v:long_name = "Depth-Averaged Northward Sea Water Velocity" ;
v:observation_type = "calculated" ;
v:platform = "platform" ;
v:standard_name = "northward_sea_water_velocity" ;
v:units = "m s-1" ;
v:valid_max = 10. ;
v:valid_min = -10. ;
v_qc
Dimension | None |
Data Type | byte |
Value Type | scalar |
_FillValue | -127b |
Description | An array that contains values conveying information on the data quality status of the value in the v variable. |
CDL example with REQUIRED attributes:
byte v_qc ;
v_qc:_FillValue = -127b ;
v_qc:flag_meanings = "no_qc_performed good_data probably_good_data bad_data_that_are_potentially_correctable bad_data value_changed not_used not_used interpolated_value missing_value" ;
v_qc:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b, 9b ;
v_qc:long_name = "v Quality Flag" ;
v_qc:standard_name = "northward_sea_water_velocity status_flag" ;
v_qc:valid_max = 9b ;
v_qc:valid_min = 0b ;
Dimensionless Container Variables
The following variables are dimensionless container variables used to store meta data about the glider and instrumentation.
platform
Dimension | None |
Data Type | int |
Value Type | Scalar |
_FillValue | -999 |
Description | Variable to store meta data about the glider platform that measured the profile. All of the attributes of this variable, with the exception of comment are REQUIRED</b>. This variable contains a **wmo_id attribute to store the WMO ID assigned to this glider by NDBC. The WMO ID is also stored as a global file attribute to allow for aggregations of all deployments from the platform with that **WMO ID</b>. |
CDL example with REQUIRED attributes and comments on values:
int platform ;
platform:_FillValue = -999 ;
platform:comment = "Slocum Glider ru29" ; # Change
platform:id = "ru29" ; # Change
platform:instrument = "instrument_ctd" ;
platform:long_name = "Rutgers University Slocum Glider ru29" ; # Change
platform:type = "platform" ;
platform:wmo_id = " " ; # WMO ID specific to this glider
instrument_ctd
Dimension | None |
Data Type | int |
Value Type | Scalar |
_FillValue | -999 |
Description | Variable to store meta data about the CTD. The data provider should make an effort to include values for as many attributes as possible to create a complete meta data record, but are not required. |
CDL example with REQUIRED attributes and comments on values:
int instrument_ctd ;
instrument_ctd:_FillValue = -999 ;
instrument_ctd:calibration_date = " " ; # Change to date formatted as YYYY-mm-ddTHH:MM:SSZ
instrument_ctd:calibration_report = " " ; # Change to report url/location if available
instrument_ctd:comment = "pumped CTD" ; # pumped or unpumped
instrument_ctd:factory_calibrated = " " ; # Change to date formatted as YYYY-mm-ddTHH:MM:SSZ
instrument_ctd:long_name = "Seabird Glider Payload CTD" ;
instrument_ctd:make_model = "Seabird GPCTD" ; # CTD make and model
instrument_ctd:platform = "platform" ;
instrument_ctd:serial_number = " " ; # Provide serial number if available
instrument_ctd:type = "platform" ;