Ocean Data View (ODV) format
This is an ASCII output format to handle profile, time series and trajectory data held in the BODC databases. BODC distribute a SeaDataNet version of the general ODV format to carry additional information required by SeaDataNet.
These data files can be imported directly into the ODV (version 4) visualisation and analysis software package. The software is freely available for non-commercial, non-military research and for teaching purposes. It is becoming an extremely popular choice within the marine community in which to visualise data.
The data format follows that of a spreadsheet — a collection of rows (comment, column header and data) with each data row having the same fixed number of columns. Data rows contain three types of column
- Metadata columns
- Primary variable data columns (one column for the value plus one for the qualifying flag)
- Data columns — two columns per variable (value and flag)
with rows containing exactly the same parameters grouped together — known as 'stations'.
Data of different 'shape' (profile, time series and trajectory) are mapped into the spreadsheet as follows
- Profile data — CTD and bottle data
Stations are made up of measurements at different depths, with the metadata date/time set to be the start of the profile. The primary variable is the 'z coordinate' which can be either depth in metres or pressure in decibars. The rows within the station are ordered by increasing depth. The SeaDataNet profile model requires the 'z coordinate' to be monotonic. As a consequence the ODV file may consist of a subset of the data; small loops will be filtered out and either a downcast or upcast presented.
- Point time series — current meter or sea level data
Stations are made up of measurements from a given instrument at different times, with the metadata date/time set to the start of the measurements. The primary variable is time (UT) encoded as
- Chronological Julian Date [days]
Defined as the time elasped in days from 00:00 on 01 January 4713 BC.
Rows within the station are ordered by increasing time, with the 'z coordinate' (instrument depth) — essential for many types of data — stored as a data variable.
- Trajectories — underway data
Stations are made up of a single measurement making the metadata time and positions the spatio-temporal coordinate channels. The primary variable is the 'z coordinate' standardised as depth in metres. Rows within the file are ordered by increasing time.
Components of the BODC (SeaDataNet) ODV file
Each file consists of three components, namely
- Comment rows
a. User comments
These are prefixed by the characters // and may appear anywhere in the data file. Comment records are used to enrich the data files with additional usage metadata. The first row in ODV files supplied by BODC contains a URL to our data documentation.
b. SeaDataNet semantic header
These are mandatory comment lines. Their function is to map the text strings used to label the metadata and data columns to standardised SeaDataNet concepts — necessary if data files from different sources are to be combined in a meaningful way.
The header begins with the line: //SDN_parameter_mapping. This is followed by a line for each data column (including the primary variable) made up from three parts — tagged to look like an XML element.
Subject — Contains the text used to label the column EXACTLY as it appears in the column row header WITHOUT the units declaration, prefixed by 'SDN:LOCAL:' to encode it as a SeaDataNet URN.
Object — Contains the URN to a concept from the SeaDataNet controlled vocabulary P01.
Units — Contains a URN for the storage units for the data column used IN THE FILE from the SeaDataNet controlled vocabulary P06.
Column header row
The header row contains a label for each column of the file. They are presented (from the left) as standardised metadata, followed by column pairs (data plus a qualifying flag) for the primary variable and the data parameters. The first heading in each pair is the description for the data parameter plus its storage units enclosed in brackets, for example 'Current Dir [deg T]', with the second always being 'QV:SEADATANET'.
The metadata columns are populated as follows
Cruise — A text string identifying the grouping label for the data object to which the data row belongs. Obviously the cruise name for data types such as CTD and bottle data, but may be a mooring name for current meter data.
Station — A text string identifying the data object to which the data row belongs. This will be the station name for some types of data, but could also be an instrument deployment identifier.
Type — The type of data. Set to 'C' for CTD and XBT profile data and 'B' for bottle profile data. For time series and trajectories set to 'B' for small (<250) row groups or 'C' for larger row groups. Alternatively, it can be set to a default value of '*'.
yyyy-mm-ddThh:mm:ss.sss — Date and time (UT) when the sample was collected or measurement was made in extended ISO8601 format — 2008-04-23T15:15:00.000.
Longitude [degrees_east] — Longitude (decimal degrees) where the sample was collected or measurement was made.
Latitude [degrees_north] — Latitude (decimal degrees) where the sample was collected or measurement was made.
LOCAL_CDI_ID — The local identifier (maximum 80 bytes) of the Common Data Index (CDI) record associated with the data row.
EDMO_code — A key - from the European Directory of Marine Organisations (EDMO) - identifying the organisation responsible for assigning the local CDI.
Bot. Depth [m] — Bathymetric water depth in metres where the sample was collected or measurement was made. Set to zero if unknown or inapplicable.
These are followed by the primary variable value, its flag and then the data value plus qualifying flag pairs for each parameter. If there is no data value then the data value column is left blank with the flag field set to '9' - missing value.
Qualifying flag descriptions
From the SeaDataNet controlled vocabulary for qualifying flags.
|0||no quality control||No quality control procedures have been applied to the data value. This is the initial status for all data values entering the working archive.|
|1||good value||Good quality data value that is not part of any identified malfunction and has been verified as consistent with real phenomena during the quality control process.|
|2||probably good value||Data value that is probably consistent with real phenomena but this is unconfirmed or data value forming part of a malfunction that is considered too small to affect the overall quality of the data object of which it is a part.|
|3||probably bad value||Data value recognised as unusual during quality control that forms part of a feature that is probably inconsistent with real phenomena.|
|4||bad value||An obviously erroneous data value.|
|5||changed value||Data value adjusted during quality control. Best practice strongly recommends that the value before the change be preserved in the data or its accompanying metadata.|
|6||value below detection||The level of the measured phenomenon was too small to be quantified by the technique employed to measure it. The accompanying value is the detection limit for the technique or zero if that value is unknown.|
|7||value in excess||The level of the measured phenomenon was too large to be quantified by the technique employed to measure it. The accompanying value is the measurement limit for the technique.|
|8||interpolated value||This value has been derived by interpolation from other values in the data object.|
|9||missing value||The data value is missing. Any accompanying value will be a magic number representing absent data.|
|A||value phenomenon uncertain||There is uncertainty in the description of the measured phenomenon associated with the value such as chemical species or biological entity.|