When a new SBD email is received it is unpacked and appended to a XXXX.txt file (XXXX is the Spray serial number).  Unpacked data are stored in ascii format, and the first characters of each line determine the line content (lines are terminated by a CR/LF= Hex 0x0d0a).  This document describes the different line formats.  When the line is a fixed-format type, character locations are given using the convention s[m:n] = characters m-n of string s (first character in the line is m=1).  An example for the ‘!dive’ line is given here:

 

!dive line             Dive Number of the SBD message and Time-Stamp of when it was received.

!dive    1        999 20Jul2006 18:47:11 <---EXAMPLE LINE.

1234567890123456789012345678901234567890 <---CHARACTER COUNTER LINE.

         1         2         3         4 <---CHARACTER COUNTER LINE.

!dive  209        999 25May2006 17:36:32 <---REPEAT OF THE EXAMPLE LINE.

i=      1          2      3        4     <---i = PARAMETER LIST INDEX.

i1 = dive number = s[7:10].              <---description of each parameter

i2 = OBSOLETE.

i3 = email reception Day:Mon:Yr, Day=s[23:24], Mon=s[25:27], Yr=s[28:31].

i4 = email reception time HH:MM:SS  HH=s[33:34], MM=s[36:37], SS=s[39:40].

 

INDEX OF LINE TYPES            (with hyperlinks to their definitions).

 

Header lines

MOD           modify-stamp if the file has been modified by another program.

MD           Mission yy/mm:id, experiment name, and description.

VN           Vehicle s/n, sensor configuration, eeprom version.

VO           Optical sensor type.

VA           Argos ID.

CP, CT, CS  Calibration coefficients for the Press, Temp, and Salinity.

CO           Calibration coefficients for the Optical sensor.

CD           Calibration coefficients for the Doppler sonar.

GPS, Route, and Waypoint data:

                     

G           GPS data.

R           Route and steering configuration.

r           Individual route entry configuration.

W           Waypoint list header line.

w           Individual waypoint entry information.

Engineering data

EC           Engineering communications line.

EF           Engineering flight line.

EN           Engineering navigation line.

EP           Engineering hydraulic pump line.

ET           Engineering time-series header line.

e           Engineering time-series data.

Profile Data

D           Profile data start-line.

p           single-scan line (one for each profile datum).

Doppler Data

B1           Doppler parameter configuration line.

AT           Doppler data start-line.

a           data line for the Doppler data.

Miscellaneous

#            Comment line.

!dive             New-dive line.

E            Obsolete engineering format (kept for reference).

M            Mission ID line (0702 obsolete, is now found in the MD line).

S            Received Shore-commands, echoed back.

SBD            SBD email information.

X            Header line of the Spray parameter list.

x            Individual parameter information (address and value).


Header Information

Here is an example of the start of a .txt file:

 

MOD 1.02 Convert 'E' lines to 'EC-F-N-P', drop 'M ', compact 'p', new 'G'

MD 07/01:01 LINE90   CalCOFI Line 90, deployed Jan2007, from Dana Pt.

#----start calibration coefficients --------------

VN   12  4 2 0612

VO FLUOR

VA  22747  Argos ID

CP12  -10.000   0.040    0.0000   1.0000

CT22   -5.000   0.001    0.0000   1.0000

CS32   -1.000   0.001    0.0000   1.0000

CO44    0.000   0.001  10     3.00   0.0000   1.0000

CD58      2     3    0.0000   1.0000  2.00  0.22

#----end calibration coefficients --------------

 

‘MOD’ line  :  MODify version #   comment.

 

MOD 1.02 Convert 'E' lines to 'EC-F-N-P', drop 'M ', compact 'p', new 'G'

 

This is used to leave a trail of the post-processing steps done on the .txt file.  This is added when an archived file is modified to a newer format for compatibility reasons.

 

MD’ line        Mission Description line.

 

MD 07/01:01 LINE90   CalCOFI Line 90, deployed Jan2007, from Dana Pt.

 

12345678901234567890123456789012345678901234567890123456789012345678901234567890

0        1         2         3         4         5         6         7         8

MD 07/01:01 LINE90   CalCOFI Line 90, deployed Jan2007, from Dana Pt.

      i1      i2      i3

i1 =       yy/mm:nn = Deployment ID:

yy =year = s[4:5], mm =month = s[7:8], nn =mission id (0..15) = s[10:11].

i2 =       E_Name   = 8-character experiment name = s[13:20].

i3 =       Description = unique description for this Spray = s[22:n].

 

The MD line is used to describe the Spray when the user goes to queue a shore command.  This helps ensure that the user is sending the command to the correct serial number.

 

‘V’ lines : Vehicle Information

 

‘VN’ line           s/n             nsensor             CTD_Type           EEPROM_Ver

 

VN   12  4 2 0612

12345678901234567890

0        1         2

VN   12  4 2 0612

  i=   1  2 3   4

i1 = s/n      =  Spray serial number = s[4:7].

i2 = nsensor      = # of sensors returned, normally 4 (P, T, C, O) = s[9:10].

i3 = CTD_Type = 2 for SBE CTD = s[12]  (type=1=PME=obsolete 2004).

i4 = EEPROM_Ver = YYMM = Year and Month of EEPROM code version,

            i.e, 0608, 0610, 0612, 0702. = s[14:17].

 

‘VO’ line : VO string:  string = ‘FLUOR’ for fluorometer, ‘OBS’ for optical backscatter.

 

VO FLUOR

      is used to describe the type of optical sensor mounted on Spray.

 

VA’  line:  VA ptt_id = Argos PTT ID.

 

VA  22747  Argos ID = Argos PTT ID installed on this Spray.

 


CP, CT, CS Calibration Coefficients (Press, Temp, Sal ).

 

‘CP12’, ‘CT22’, ‘CS32’ all have the same format; only shown for ‘CP’

 

CP12  -10.000   0.040    0.0000   1.0000

1234567890123456789012345678901234567890

0        1         2         3         4

CP12  -10.000   0.040    0.0000   1.0000

 sxy     i1       i2        i3      i4

s = sensor-type char ( P, T, S, O, D ).

x = sensor-type code ( 1=P, 2=T, 3=S, 4=O, 5=D ); sent by Spray.

y = calibration line format

      2 = linear fit, with factory-coefficients and in-lab coeff.

      4 = 2-stage linear-fit: factory-to-volts, volts-to-units.

            (required for optical, with optional gain settings).

i1 = offset = s[6:13].

i2 = gain   = s[15:21].

      y [sci-units] = offset + gain*counts.

i3 = off2 = in-lab offset correction factor = s[23:31].

i4 = gn2  = in-lab gain correction factor   = s[33:40].

      y2 = off2 + gn2*y.  Allows further correction of sensor values.

 

CO44            Optical Coefficients.

CO44    0.000   0.001  10     3.00   0.0000   1.0000

1234567890123456789012345678901234567890123456789012

0        1         2         3         4         5 

CO44    0.000   0.001  10     3.00   0.0000   1.0000

         i1       i2   i3      i4      i5       i6

i1 = offset = s[6:13].

i2 = gain   = s[15:21].

i3 = hg = hardware-gain of Seapoint (set by technician in lab)=s[23:25].

i4 = ogain = optical gain, to convert volts to sci_units = s[27:34].

i5 = off2 = in-lab offset correction factor = s[36:43].

i6 = gn2  = in-lab gain correction factor = s[45:52].

      volts = offset + gain*counts.

      y [sci_units] = volts*ogain.

      y2 = off2 + gn2*y.  Allows further correction of sensor values.

 

CD58            Doppler Backscatter (ABS) Coefficients

 

CD58      2     3    0.0000   1.0000  2.00  0.22

123456789012345678901234567890123456789012345678

0        1         2         3         4        

CD58      2     3    0.0000   1.0000  2.00  0.22

         i1    i2      i3       i4     i5    i6

i1, i2 = First and last bins used for the backscatter averaging.

i3 = off2 = in-lab offset correction factor = s[19:27].

i4 = gn2  = in-lab gain correction factor = s[29:36].

i5 = bd   = blanking distance [m], nominally 2.0 m = s[38:42].

i6 = alpha = sound absorption coeff [db/m], one-way, adjusted for

            central-axis range (nominally 0.22) = s[44:48].

 

 

 


GPS, Route, and Waypoint data

 

G line:  GPS information  (Sep2006 added decimal degrees at the end).

 

G    1 0 21 Sep 2006 19:35 1 +32 52.18 -117 15.03   50  4  22  37  48  2.4  0  0   32.8697 -117.2505

1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

0        1         2         3         4         5         6         7         8         9

G    1 0 21 Sep 2006 19:35 1 +32 52.18 -117 15.03   50  4  22  37  48  2.4  0  0   32.8697 -117.2505

i=   1 2  3  4   5    6  7 8  9   10    11   12     13 14  15  16  17  18  19 20    21        22
 
i1 = dive# = s[2:6].
i2 = mission status at time of fix = s[8].
            0=start of mission, 1=start of dive, 2=end of dive, 3=in abort mode
 ( 3,4,5 ) = date:  dd= s[10:11], mon = s[13:15], yyyy = s[17:20].
 ( 6:7 ) = time (UTC)  hh = s[22:23], mm = s[25:26].
 8 = valid flag: 0=bad fix, 1 = good, flag = s[28].
IF THE FIX IS BAD, the last good fix is still reported, so USE the VALID Flag!
(i9 i10) Latitude: Latd = s[30:32], Latm = s[34:38].
(i11 i12) Longitude: Lond = s[40:43], Lonm = s[45:49].
i13 = Tfix = time (s) to acquire a fix = s[51:54].
i14 = Nsat = # of satellites in view = s[56:57].
i15 = minimum SNR of Nsat = s[59:61].
i16 = mean SNR = s[63:65].
i17 = max SNR = s[67:69].
i18 = HDOP = s[71:74].
i19 = GPS Health Status = s[76:77]. WRITTEN IN HEX (value =0..FF) 
            bit 0=incomplete almanac, bit 1 =bad back-up battery, 
            bit 2=poor satellite coverage, bit 3=antenna fault.
            WHEN in abort mode (i2=3), this is re-assigned as the Exception LSB.
            (see ‘EF’ j9 description for the LSB : says if burn wire is activated).
i20 = Wing Index / Roll Status, operational as of JUL06 = s[79:80]. 
           HEX FORMAT (0..FF): bit assignment is:
b0 =  = the GPS wing (1=port,0=stbd): Set by Sprays w/antenna switch.
b1 = 1 = roll function timed out (slow motor/bad pot)
b2 = 1 = failure in the last 2 s of operation (slow motor/bad pot).
b3 = 1 = bad potentiometer (pot is out-of-bounds by over 200 counts).
b4 = 1 = starboard wing is not at the correct antenna comms position.
b5 = 1 = port wing " ".
b6 = 1 = zero wing (wings flat) " ".
b7 = 1 = intermittent pot behavior (the pot initially OK, and then bad).
              Operationally, values  = 2 (slow motor) happen frequently, and represent
              hysteresis problems near zero roll.
i21 Latitude,  Decimal Degrees  (s[82:90] ). 
i22 Longitude, Decimal Degrees  (s[92:100]).

W line           contains the Waypoint list info

 

W    1  7

i=   1  2 

i1 = dive number = s[3:6].

i2 = number of waypoints in the list = s[8:9].

 

w line           contains the waypoint values: list immediately follows the ‘W’ line.

 

w  1  +34.325 -120.782

12345678901234567890123456789

         1         2

w  1  +34.325 -120.782

i= 1     2        3   

i1 = Waypoint index ( 0=HOME waypoint) = s[3:4].

i2 = Latitude (decimal degrees) = s[6:13].

i3 = Longitude(decimal degrees) = s[15:22].

 

R line           contains the basic route information (update starting at code 0608).

 

R    1  6  6  2  1       1     0    0    -1    0     0    0    -1    1

1234567890123456789012345678901234567890123456789012345678901234567890

0        1         2         3         4         5         6         7

R    1  6  6  2  1       1     0    0    -1    0     0    0    -1    1

i=   1  2  3  4  5       6     7    8     9    10   11   12    13   14

 

i1 = dive number = s[2:6].

i2 = Number of points in the route = s[8:9].

i3 = Route entry that we’re now heading for = s[11:12].

i4 = End-of-Route Action = s[14:15]:

            0= go to the HOME waypoint (waypoint #0).

            1= Repeat the route from the beginning.

            2= Reverse the route (trace the route back to the beginning).

            3= Stay stationed at the last waypoint.

            4= ABORT (End mission) when the waypoint is reached.

i5 = Direction that we’re going through the route:

1=forward, -1=reverse = s[17:18].

 

i6 = 1= current-bucking is on, 0=off (this has no dive time-out) = s[25:26].

i7 = Current-Crossing Angle (degrees, <0 steer to left of current,

>0=to the right, 0=off) = s[28:32].

i8 = Max Dive to use the current-crossing mode

(is not used if Dive#> Max_dive) = s[34:37].

i9 = Manual Steering; -1=off, 0..360 Heading(TRUE), -2 = do circles

(constant roll) s[39:43].

i10= Max Dive to use the manual steering mode = s[45:48].

i11= Steering Point (km) = s[50:54].

i12= Max Dive to use the steering point mode = s[56:59].

i13= Min Correction Angle (degrees) = s[61:65].

( current-bucking/ current-crossing/ steering-point modes).

i14= Max Correction Angle (degrees) = s[67:70].

 

r  line           contains the info for each route entry (available starting code 0608).

 

r  1   1  3    0

12345678901234567890

r  1   1  3    0

i= 1   2  3    4

 

i1 = route entry index.

i2 = Detect-Mode parameter:

            0= Arrival is based on range only.

            1= Arrival is based on either range or bisector angle

(finish-line approach).

            2= Based on bisector angle only.

i3 = Watch-Circle Radius [km].  If the Spray is within this range,

then we’re at the waypoint.

            0=auto-compute, based on the last dive-depth.

i4 = Approach Angle: 1..360 degrees = approaching the next waypoint at

this angle (degrees, TRUE; 0=auto-compute ).

 

 


Engineering Data Lines

 

As of Nov2006, new, two-letter (EC, EF, EN, EP) lines have been added, to break out the engineering information into sub-groups.  Once this format is accepted by all programs, the old ‘E ‘ line will be removed.

 

Exvv           <data>, represents the new Engineering Line, where

E           First character ‘E’ signifies that engineering information follows.

x           Second character is the type of engineering data:

           C            Communication (SBD) data.

           F           Flight information.

           N           Navigation information.

           P           Pump information.

           ‘ ‘           (‘space’) Old engineering format line; there is no vv.

vv           Characters 3-4 = version number (Version 1 = ‘01’)...allows future expansion.

 

EC = Communication line

EC01  135  2  1  1  00  26  1

12345678901234567890123456789

         1         2

EC01  135  2  1  1  00  26  1

      j1  j2 j3 j4  j5  j6  j7

j1  = Dive number = s[6:9].

j2  = Ntries =#tries sending an SBD message during the LAST surfacing =s[11:12].

j3  = Nsent  =# of SBD messages sent during the LAST surfacing =s[14:15].

j4  = SBDI_STAT = status of the last attempt to send a message =s[17:18].

j5  = SBD_SHORE_STAT = status of parsing the last shore command =s[21:22]=HEX.

j6  = T_SBD = time[s] that the modem actively tried to send a message =s[24:26].

j7  = Wing used to send the SBD message = s[29].

 

EF = Flight line.

EF01  135  5 241  506 17  99   0  -2.1 4000

1234567890123456789012345678901234567890123

         1         2         3         4

EF01  135  5 241  506 17  99   0  -2.1 4000

      j1  j2  j3   j4 j5  j6  j7   j8   j9

j1  = Dive number = s[6:9].

j2  = Navg =# of 8s samples avg’d for each datum in the SBD message =s[11:12].

j3  = Psurf = Surface pressure counts = s[14:16].

j4  = Zmax = Maximum depth [dBar] recorded in the bottom turn = s[18:21].

j5  = Pitch = pitch angle [degrees] = s[23:24].

j6  = Altimeter minimum depth to the bottom [m] = s[26:28].

j7  = ADP altimeter bottom intensity level [dB] ( =0 for Tritech) =s[30:32].

j8  = ROLL_ERR =  Integrated roll error[degrees], from the PI loop = s[34:38].

j9  = EXC_STATUS = Exception Status bit settings(HEX FORMAT), s[40:43].

 
Let b0 = bit[0] = Lsbit, b15 = bit[15] = Msbit.
      b0 = Pump Recovery was required.            b8 = CF1 Close File error.
      b1 = Drop Weight Activated.            b9 = High pump amps @ 50 m safety pump.
      b2 = Pressure>20 m ‘at the surface.’      b10= Press=0 (broken) ‘at the surface.’
      b3 = Depth>1500 m detected.            b11= No SBD sent in last 48 hrs.
      b4 = The Altimeter triggered turn-around.      b12= Cannot overcome the current.
      b5 = Backed off the surface.            b13= Spurious Reset Detected.
      b6 = Extra pumps req’d at end of ascent.       b14= Altimeter reading is from an ADP.
      b7 = Took >700 s to leave the surface.      b15= Not Used.
 
b12=1 means that although current correction is applied, the current is too strong to maintain course.
b14 is used to help interpret the altimeter reading in the ‘E’ line.

 

 


EN = Navigation Line

EN01  135 -2296 -1608    31.084  -122.662 290 100   0 235 T

123456789012345678901234567890123456789012345678901234567890

         1         2         3         4         5         6

EN01  135 -2296 -1608    31.084  -122.662 290 100   0 235 T

      j1    j2    j3       j4        j5    j6  j7  j8  j9 F

j1  = Dive number = s[6:9].

j2  = DRx [m] = dead-reckoning x distance traveled during the dive =s[11:15].

j3  = Dry [m] = dead-reckoning y distance traveled during the dive =s[17:21].

j4  = WLAT [decimal degrees] = Waypoint Latitude  = s[23:31].

j5  = WLON [decimal degrees] = Waypoint Longitude = s[33:41].

j6  = Tleave[s]= Time at start-of-dive to leave the surface (P>2 m) =s[43:45].

j7  = Tend [s] = Time at end-of-dive since p<2 m until GPS is on = s[47:49].