-
Notifications
You must be signed in to change notification settings - Fork 31
Seabird
This page lists the Seabird instrument Models which are supported by the toolbox, and the data formats required for each of them. If you have some data from an unsupported instrument or format, submit an issue with details and files examples, and I'll look into adding support for this new instrument/format.
The toolbox can read in data that has been downloaded from a SBE37 'Microcat' CTP sensor, a SBE39 temperature/pressure sensor or a SBE56 temperature logger.
The following variants of the SBE37 exist:
- SBE37-IM
- SBE37-IMP
- SBE37-SM (RS232)
- SBE37-SM (RS485)
- SBE37-SMP (RS232)
- SBE37-SMP (RS485)
- SBE37-SI (RS232)
- SBE37-SI (RS485)
- SBE37-SIP (RS232)
- SBE37-SIP (RS485)
The following variants of the SBE39 exist:
- SBE39
- SBE39-IM
The SBE output format is configurable, and there are slight differences in output formats between variants. Additionally, instruments which run an older firmware version use different commands for configuring the output format and downloading data.
- SBE37 and SBE39 .asc files are very similar and supported either by the SBE37, SBE37-SM or SBE39 parser.
- SBE37-IM .hex files are supported by the SBE37 parser.
- SBE37-SM .cnv files are supported by the SBE37SM parser.
- SBE56 .cnv and .csv files are supported by the SBE56 parser.
The input file must have a header section which contains sensor metadata and calibration information (as obtained via the 'DS' and 'DC' commands) - this is the output format provided by the Windows Seaterm program. It contains four different line formats that we want to capture.
The first format contains the sensor type, firmware version and serial number. It is of the format:
SBE[variant] V [firmware_version] [serial_number]
The second type of line is a name-value pair of a particular sensor type. These lines have the format:
sensor: info
The temperature (and optional conductivity) sensor (and rtc) information is just a calibration date. The (optional) pressure sensor also contains a serial number and pressure range.
The third type of line is an indication of whether salinity is output in the data. It is literally:
output salinity with each sample
The fourth type of line is a name-value pair of a particular calibration coefficient. These lines have the format:
name = value
For this instrument the following regular expressions (with single quotes) are performed to retrieve information from the instrument header section:
header : '<HardwareData DeviceType=''(\S+)'' SerialNumber=''(\S+)''>'
scan : 'number of scans to average = (\d+)';
mem : 'samples = (\d+), free = (\d+), casts = (\d+)';
sample : 'sample interval = (\d+) (\w+), number of measurements per sample = (\d+)';
mode : 'mode = (\w+)';
pressure : 'pressure sensor = (strain gauge|quartz)';
volt : 'Ext Volt ?(\d+) = (yes|no)';
output : 'output format = (.*)$';
cast : 'Cast Time = (\w+ \d+ \d+ \d+:\d+:\d+)';
interval : 'interval = (.*): ([\d\.\+)$';
sbe38 : 'SBE 38 = (yes|no), Gas Tension Device = (yes|no)';
optode : 'OPTODE = (yes|no)';
voltCal : 'volt (\d): offset = (\S+), slope = (\S+)';
other : '^\*\s*([^\s=]+)\s*=\s*([^\s=]+)\s*$';
firm : '<FirmwareVersion>(\S+)</FirmwareVersion>';
And from the processed header section:
name : 'name \d+ = (.+):';
nval : 'nvalues = (\d+)';
bad : 'bad_flag = (.*)$';
interval : 'interval = (.+): ([\d]+)$';
start : 'start_time = (.+)';
For this instrument the following regular expressions (with single quotes) are performed to retrieve information from the instrument header section:
header : '<HardwareData DeviceType=''(\S+)'' SerialNumber=''(\S+)''>'
mem : '<MemorySummary>';
sample : 'samplePeriod=''(\d+)''';
firm : '<FirmwareVersion>(\S+)</FirmwareVersion>';
And from the processed header section:
name : 'name \d+ = (.+):';
nval : 'nvalues = (\d+)';
bad : 'bad_flag = (.*)$';
start : 'start_time = (.+)';
Seaterm (v2.4.1, SeatermUSB SBE56 v1.8) does not correctly export the time string in CNV format if you have a non integer sampling period (for example an SBE56 set to sample at it's fastest setting of 0.5 seconds). Confirmed by email with Seabird Tech support on 02-Jun-2015. They pointed out that the CSV export does maintain correct seconds value.
The following fields from the header are parsed by the toolbox:
% Instrument type = SBE56
% Serial Number = 05600674
% Firmware Version = SBE56 V0.96
The toolbox will then parse sample data which is in the following ASCII format ('.asc' or '.cnv' files, order of fields doesn't matter):
temperature[, conductivity][, pressure][, salinity][, fluorescence][, chlorophyll][, oxygen][, turbidity][, depth][, date][, time]
where
-
temperature
: floating point, Degrees Celsius ITS-90 -
conductivity
: floating point, S/m or mS/cm or uS/cm, optional (only on SBE37) -
pressure
: floating point, decibars, optional (present on instruments with optional pressure sensor) -
salinity
: floating point, PSU, optional (may be present on SBE37 instruments with firmware >= 3.0) -
fluorescence
: integers, counts, optional (only on SBE37) -
chlorophyll
: floating point, mg/m3, optional (only on SBE37) -
oxygen
: floating point, mg/l, umol/kg, % saturation, optional (only on SBE37, SBE64) -
turbidity
: floating point, NTU, optional (only on SBE37) -
depth
: floating point, m, optional (only on SBE37) -
date
: dd mmm yyyy (e.g. 01 Jan 2008), optional -
time
: hh:mm:ss (e.g. 15:45:03), or elapsed seconds/minutes/hours since start/01-Jan-2000 or elapsed days since start of year, optional
All SBE37 variants can be configured to output this format. SBE39 variants provide data in this format only. On SBE37 instruments running firmware < 3.0, the sensor should be configured as follows:
Format=1
For instruments running firmware >= 3.0:
OutputFormat=1
OutputDepth=N (if sensor supports this command)
OutputSal=N (if sensor supports this command - Y if you want salinity)
OutputSV=N
OutputDensity=N (if sensor supports this command)
OutputTime=Y (if sensor supports this command)
Output file formats from Seaterm v2 and firmware v1.4 are also supported for SBE37-SM.
Seaterm (v2.4.1, SeatermUSB SBE56 v1.8) does not correctly export the time string in CNV format if you have a non integer sampling period (for example an SBE56 set to sample at it's fastest setting of 0.5 seconds). Confirmed by email with Seabird Tech support on 02-Jun-2015. They pointed out that the CSV export does maintain correct seconds value.
"Sample Number","Date","Time","Temperature"
"1","2015-04-10","14:00:00","23.3373"
"2","2015-04-10","14:00:00.5","23.3341"
"3","2015-04-10","14:00:01","23.3281"
"4","2015-04-10","14:00:01.5","23.3229"
"5","2015-04-10","14:00:02","23.3197"
"6","2015-04-10","14:00:02.5","23.3193"
"7","2015-04-10","14:00:03","23.3206"
"8","2015-04-10","14:00:03.5","23.3239"
"9","2015-04-10","14:00:04","23.3268"
"10","2015-04-10","14:00:04.5","23.3280"
Columns Date, Time and Temperature are read by SBE56Parse.m.
In order to read in CTD data from OOI, SBE37-IM hex format is also supported. See SBE19+ .hex below for details on this format.
The toolbox is able to read converted (.cnv) data files retrieved from a Seabird SBE16plus CTD recorder using the SBE19 parser. See SBE19+ .cnv below for details on this format.
The toolbox is able to read in both raw (.hex) and converted (.cnv) data files retrieved from a Seabird SBE19plus V2 CTD recorder using the SBE19 parser.
Raw .hex files can be retrieved directly from the instrument. These files consist of two sections:
-
Raw header: Header information as retrieved from the instrument. These lines are prefixed with
*
. - Data: Rows of ASCII-encoded hexadecimal data.
SBE19+ instruments can output raw data in either raw voltages/frequencies (OutputFormat=0
) or in engineering units (OutputFormat=1
); currently the toolbox can only read in raw voltages/frequencies.
The Seabird SBE Data Processing program is able to generate .cnv files from raw .hex and .con files; the resulting .cnv file consists of three sections:
-
Raw header: Header information as retrieved from the instrument. These lines are prefixed with
*
. -
Processed header: Header information generated by SBE Data Processing. These lines are prefixed with
#
. - Data: Rows of space separated data
The list of parameters contained in the .cnv file is configurable via the SBE Data Processing program. This function accepts the following parameters; the parameter must be provided in the listed unit of measurement:
- Temperature (ITS 90, Degrees Celsius)
- Conductivity (S/m)
- Pressure (db)
- Fluorescence (ug/L)
- Oxygen (mg/L)
- Salinity (PSU)