Input File Formats and Buffers

Right now the the inputs can be thought of as most of the time separating out into instrument-specific sections. These sections of the input are called buffers. For example, all the RDI ADCP input is separated out into whats called the doppler buffer. It probably should have been called something like rdi_adcp, but it didn't, so there. A buffer does not necessarily have to have its origins in either the cellphone or GOES datastreams, however. For example, the optics_persun buffer consists of products derived entirely from the optics_a buffer, which in turn comes from both the cellphone and GOES datastreams.

Campbell

Campbell Overview.

The Campbell data is delivered via cell phone in a comma-delimited format. Individual instruments (or "buffers") can be detected from the first element on each line, referred to as the breakout id.

Breakout IDBuffer Name
1met
2RDI doppler
3fsi
4sbe37 (a conductivity/temperature recorder
5aanderaa (current meter)
6sbe16 (a conductivity/temperature recorder with transmissivity)
7accelerometer_fft
9diagnostics
12sbe16 (a conductivity/temperature recorder with dissolved oxygen)
19sbe1603do (a conductivity/temperature recorder with dissolved oxygen)
21optics_d: deep water optics
22optics_s: surface optics
23optics_a: above optics
31met_hourly: maximum 5-sec gust observed during the hour
71accelerometer_fft: Accelerometer readings (not currently used)
90monitor: another diagnostics buffer
91goes_error: goes error and last message status buffer
94goes_transmit: goes transmit status buffer
101met_short: abbreviated met buffer
102aquadopp: Nortek doppler current profiler
103monitor: oxygen sensor to sbe44
105aanderaa_optode: oxygen data added to current meter
106aanderaa_z: zpulse current meter
109diagnostics_short: abbreviated diagnostics buffer

NOTE: Year was added to main buoy buffers in March 2007. There will be some confusion between old/new formats... MATLAB discriminates the individual data streams from this file via the m-file read_campbell_buffer.m. For example, an example campbell file for a buoy with all buffers would be:

  9,2007,19,1404,12.63,6.123,51.39,1341,12,42,31,.382,70,33,.913,1901,2,42,31,.383,-70,33,.917
  90,2007,-3412,1,1,1,0,0,0,0,0,0,0,0,0,0,0,6.86
  94,2007,23,1422,0,651,0,0,6,32,0,153,153,153,0,125,2,0
  91,2007,23,1430,0,0,0,0,0,0,0,0,0,0,0,0,651,187,87,121,2,0,42,31,.367,-70,33,.917
  1,2007,39,1434,1.684,4.508,8.58,7.1,313.9,9.98,7.1,6.992,313.3,9.92,1,45.94,23.29,4695,266.5,4926,3377,3371,3385,2.324,9.21,4.82,8.32,7.1,309.6,10.48,7.1,6.985,309.1,10.44,9.3,1
  4,1,37.949,12.67,11,34,10,2,1,2007,481
  12,12,3.5387,9.35,2.514,2,99,116,2007,12,0,111
  2,194,1,2007,10,2,11,56,0,93,130,159,33536,37632,32000,26368,25088,1792,4864,3328,59903,14592,45311,17408,36863,15104,37375,31488,31743,45824,23807,43008,20991,41728,29695,36096,37887,23296,54271,14080,7680,10240,13312,18688,18432,18688,16128,17920,15104,17664,16128,20480,14336,17664,2048,3328,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128
  5,2007,23,63,181,530
  4,0,4.1012,16.39,12,0,10,2,2007
  71,2007,275,1207,15.5,15,14.64,15.38,15.65,15.58,14.1,15.09,15.17,15.9,16.1,14.02,14.52,15.65,16.43,14.89,14.52,15.62,14.99,14.97,15.21,15.74,15.37,14.62,15.08,15.31,14.73,14.96,16.27,15.88,14.02,14.64,16.1,15.85,13.97,15.56,16.79,14.11,14.62,15.73,14.58,15.85,15.42,14.97,14.97,14.73,15.34,15.21,15.68,14.91,14.71,15.54,15.84,14.24,14.77,16.25,15.41,15.08,14.6,15.46,16.94,14.18,13.89,16.66,16.05,14.38,15.28,15.27,14.31,15.9,15.69,14.91,15.25,15.58,15.32,15.46,14.4,14.64,16.18,16.17,15.46,14.54,14.26,15.34,16.18,15.41,14.44,15.97,15.5,14.18,15.57,15.95,14.88,14.6,15.23,15.52,15.28,14.64,15.76,15.62,14.63,15.54,14.38,14.83,16.64,15.98,14.18,14.39,16.68,16.25,13.91,15.4,16.17,13.62,14.64,17.18,15.68,14.15,14.85,14.67,15.77,16.45,15.34,14.46,15.07,15.42,15.25,15.81
  7,2007,275,1207,.02,.017,.02,.039,.035,.059,.166,.208,.211,.614,1.044,1.845,2.77,1.89,3.63,1.726,2.869,3.182,2.28,2.3,1.902,.823,.842,.346,.25,.223,.095,.102,.065,.028,.034,31.65
  109,19,1504,13.44,2.388,54.59,48.56,1441,42,43,46,.946,69,53,.265,1901
  101,19,1504,-.973,0,0,0,0,0,0,0,0,0,1,231.5,0,0,0
  105,447,901,63,182,160,793
  103,11,19,1504,366.4,91.8,4.93,31.78,30.5,0,246.6,106,0,654.5
  103,12,19,1504,366.1,90.9,4.58,32.01,29.75,0,218.6,94,0,583.1
  102,1,19,14,56,0,113,13,1464.2,122.8,-1.7,-.5,3.133,4.66,0,0,178,306,191,250,199,157,215,93,201,45,193,110,170,50,208,83,221,99,205,169,246,179,212,215,212,153,233,246,248,220,236,294,250,286,260,255,61,220,26,3150,39,1667,66,2461,156,1848,162,1758,324,2039
 

[
        

would be parsed as

  >> options = get_options ( 'A0103' );
  >> [buffers,status] = read_campbell_buffer ( options, 'example.dat' )
  Reading Campbell data...
  Discriminating met data...
  Discriminating doppler data...
  Discriminating sbe37 data...
  Discriminating aanderaa data...
  Discriminating sbe16 data...
  Discriminating accelerometer data...
  Discriminating diagnostics data...
  Discriminating fft data...
  Discriminating monitor data...
  
  buffers = 
  
     met           : {[1x1 struct]}
     doppler       : {[1x1 struct]}
     sbe37         : {[1x1 struct]  [1x1 struct]}
     aanderaa      : {[1x1 struct]}
     sbe16         : {[1x1 struct]}
     accelerometer : {[1x1 struct]}
     diagnostics   : {[1x1 struct]}
     fft           : {[1x1 struct]}
     monitor       : {[1x1 struct]}
  
  
  status =
  
     1
  
  >> buffers.sbe37{1}
  
  ans = 
  
        time:            2452550.5
        conductivity:          41.012
        temperature:           16.39
        last_sample_num:      NaN
        num_bins_in_avg:      NaN
  
        

met (1)

Column NumberDescription
1Always "1", as this is the met buffer breakout id.
2Year. For example, 2007. (added Feb 2007 - earlier deployment had < 35 columns)
3 Julian Day of the year. For example, January 1st is 1, February 1st is 32.
4 hour_minute: Hour and minute of the observation in HHMM format. This usually comes in at four minutes past the hour, but is logically interpreted as being on the hour.
5 Air Temperature
6 Min_W/S: Minimum wind speed (diagnostic).
7 Max_W/S: Maximum wind speed. This is the same thing as wind gust.
8 SW/S: scalar averaged wind speed. It is this value that is used as Wind Speed.
9 UW/D: unit vector mean wind direction (in magnetic, not true north). It is this item that is used for the reported Wind Direction.
10 UW/D_StdDev: unit vector mean wind direction standard deviation
11 SW/S: duplicated by column 7. Ignore it.
12 VW/S: vector average wind speed (m/s)
13 VW/D: vector veraged wind direction (in magnetic, not true north)
14 VW/D_StdDev: vector averaged wind direction std. deviation
15 Place Holder (always 1)
16 Compass (diagnostic)
17 Comp_StdDev: compass standard deviation (diagnostic)
18 VIS: visibility
19 VIS_Min: minimum visibility reading (diagnostic)
20 VIS_Max: maximum visibility reading (diagnostic)
21 BPC: Barometric pressure counts.
22 BP_Min: Minimum barometric pressure counts
23 BP_Max: Maximum barometric pressure counts
24 BP_StdDev: Barometric Pressure std. deviation.
25 W_gust_1S: Max 1 second wind speed (1 sec wind gust).
26 W2_Min_W/S: Minimum wind_2 speed (diagnostic).
27 W2_Max_W/S: Maximum wind_2 speed. This is the same thing as wind_2 gust.
28 W2_SW/S: scalar averaged wind_2 speed. It is this value that is used as Wind Speed.
29 W2_UW/D: unit vector mean wind_2 direction (in magnetic, not true north). It is this item that is used for the reported Wind Direction.
30 W2_UW/D_StdDev: unit vector mean wind_2 direction standard deviation
31 W2_SW/S: duplicated by column 27. Ignore it.
32 W2_VW/S: vector averaged wind_2 speed (m/s)
33 W2_VW/D: vector averaged wind_2 direction (in magnetic, not true north)
34 W2_UW/D_StdDev: vector averaged wind_2 direction std. deviation
35 W2_gust_1s: max 1 second wind_2 gust
36 W2_percent_good: percent of good observations for wind_2 measurements

met_short (101)

Column NumberDescription
1Always "101", as this is the met.short buffer breakout id.
2Year. For example, 2007. (Note: Added March 2007)
3 Julian Day of the year. For example, January 1st is 1, February 1st is 32.
4 hour_minute: Hour and minute of the observation in HHMM format. This usually comes in at four minutes past the hour, but is logically interpreted as being on the hour.
5 Air Temperature
6 Min_W/S: Minimum wind speed (diagnostic).
7 Max_W/S: Maximum wind speed. This is the same thing as wind gust.
8 SW/S: scalar averaged wind speed. It is this value that is used as Wind Speed.
9 UW/D: unit vector mean wind direction (in magnetic, not true north). It is this item that is used for the reported Wind Direction.
10 UW/D_StdDev: unit vector mean wind direction standard deviation
11 SW/S: duplicated by column 7. Ignore it.
12 VW/S: vector average wind speed (m/s)
13 VW/D: vector veraged wind direction (in magnetic, not true north)
14 VW/D_StdDev: vector averaged wind direction std. deviation
15 Place Holder (always 1)
16 Compass (diagnostic)
17 Comp_StdDev: compass standard deviation (diagnostic)
18 W_gust_1s: max 1 second wind gust
19 W_percent_good: percent of good observations for wind measurements

hourly_gust (31): Met hourly (added March 2007)

Column NumberDescription
1Always "31", as this is the met_hourly buffer breakout id.
2Year (eg 2007).
3Day of Year, 0 to 366
4Wind_1 Max 5-second Gust (m/s)
5Wind_1 time of gust (hhmm)
6Wind_1 seconds of gust
7Wind_2 Max 5-second Gust (m/s)
8Wind_2 time of gust (hhmm)
9Wind_2 seconds of gust
10Wind_2 number of 5-sec samples used
11Wind_2 Number of Error Code 1
12Wind_2 Number of Error Code 2
13Wind_2 Number of Error Code 4
14Wind_2 Number of Error Code 8
15Wind_2 Number of Error Code 9
16Wind_2 Number of Error Code 10
17Wind_2 Total Number of 1-sec averages
18Wind_2 Valid Number of 1-sec averages

doppler (2): RDI doppler current meter

Column NumberDescription
1Always "2", as this is the Doppler buffer breakout id.
2 ensemble #3: (diagnostic)
3 ensemble #2: (diagnostic)
4Year (eg, 2007). Note - added March 2007.
5 month
6 day
7 hour
8 minute. The minute field usually indicates four minutes before the hour, but this is rounded up to the hour.
9 ensemble #1: (diagnostic)
10 amps: (diagnostic)
11 volts: (diagnostic)
12 int_temp: internal temperature (diagnostic)
13, 15, 17, ... 69, 71 east-west component of current velocity in each bin
14, 16, 18 ... 70, 72 north-south component of current velocity in each bin

aquadopp (102): Nortek doppler current meter

Column NumberDescription
1Always "102", as this is the aquadopp buffer breakout id.
2 month
3 day
4 hour
5 minute (start of avg.period)
6 error_code (diagnostics), see Aquadopp manual
7 status_code (diagnostic), see Aquadopp manual
8 volts (diagnostic)
9 speed_sound: (diagnostic)
10 heading: (diagnostic)
11 pitch: (diagnostic)
12 roll: (diagnostic)
13 pressure: (diagnostic)
14 temperature
15 analog_1
16 analog_2
17, 19, 21, ... 53, 55 speed counts of current velocity in each of 25 bins
18, 20, 22 ... 54, 56 direction counts of current velocity in each of 25 bins bin

fsi (3): Falmouth Scientic Instruments current meter

Column NumberDescription
1Always "3", as this is the fsi buffer breakout id.
2 North-south component of current velocity.
3 East-west component of current velocity.
4 Vertical component of current velocity.
5 Tilt: tilt from vertical in degrees (diagnostic).
6 Hour
7 Minute
8 Month
9 Day
10 Compass (diagnostic)
11 Battery voltage (diagnostic)
12 Water Temperature

aanderaa: a current meter (5)

Note: Aanderaa buffers before March 2007 had 6 words (buffer id, hrs since beginning of year, minutes since beginning of day, curspd, curdir, temp). Year, day of year, and time (hhmm) replaced old 'hrs since begining of year' and 'minutes since beginning of day'...

Column NumberDescription
1Always "5", as this is the aanderaa buffer breakout id.
2Year (eg, 2007). Note - added March 2007.
3 Day of Year (0-366).
4 Time (hhmm). Starting time of sample.
5 Current speed counts in engineering units. Must be calibrated into current speed later on.
6 Current direction counts in engineering units. Must be calibrated into current direction later on.
7 Temperature counts in engineering units. Must be calibrated into temperature later on.

aanderaa_optode: a current meter with dissolved oxygen (105)

Column NumberDescription
1Always "105", as this is the aanderaa_optode buffer breakout id.
2 Hours since the beginning of the year. Yes, you read that correctly.
3 Minutes since the beginning of the day. Yes, you read THAT correctly as well. This information can be conflicting. See the m-file for discriminating campbell aanderaa data for details.
4 Current speed counts in engineering units. Must be calibrated into current speed later on.
5 Current direction counts in engineering units. Must be calibrated into current direction later on.
6 Temperature counts in engineering units. Must be calibrated into temperature later on.
7 Dissolved oxgyen counts in engineerings usings. Must be calibrated into dissolved oxygen later on.

aanderaa_z: zpulse current meter (106)

Column NumberDescription
1Always "106", as this is the aanderaa_z buffer breakout id.
2 Year.
3 Day of year.
4Time (hhmm)
5 Current speed in cm/s.
6 Current direction in degrees (magnetic).
7 Current_v: northward current component.
8Current_u: eastward current component.
9Compass reading (degrees)
10Tilt_X (degrees)
11Tilt_Y (degrees)
12Current Speed Standard Deviation (cm/s)
13Signal Strength (decibells)
14Ping Count (counts)

optode (103): dissolved oxygen connected to SBE44

Column NumberDescription
1Always "103", as this is the optode buffer breakout id.
2 Instrument ID
3 Day of year.
4 Hour-Minutes (hhmm)
5 Dissolved oxygen in micromoles.
6 Percent oxygen saturation.
7 Temperature.
8 DPhase (diagnostic).
9 BPhase (diagnostic).
10 RPhase (diagnostic).
11 BAmp (diagnostic).
12 BPot (diagnostic).
13 Ramp (diagnostic).
14 Raw Temperature (diagnostic).

sbe37 (4): A Conductivity Temperature Recorder

Column NumberDescription
1Always "4", as this is the sbe37 buffer breakout id.
2 Id number of the sbe37 in question. Usually there are more than one microcats on a buoy. They all come in thru the same buffer, but they have to be differentiated. If there are three microcats, they would be numbered 0, 1, and 2.
3 Conductivity
4 Temperature
5 Hour
6 Minute
7 Month
8 Day
9 Year (eg, 2007). Added March 2007.
10 Last sample number (not for microcat #0): This is a diagnostic.

sbe16 (6): a conductivity-temperature recorder

The SBE16 is a conductivity-temperature recorder that can also record either transmissivity or dissolved oxygen. There are, therefore, two breakout IDs associated with the SBE16, 6 for transmissivity, and 12 for dissolved oxygen.

As of the October deployment of A0103 and B0103, the SBE16 buffer format changes. The change will make it somewhat similar to that of the SBE37 in that multiple instruments are possible. This is done via a breakout "sub-id" that now occupies the 2nd column.

The year was added to the data stream in March 2007.

Column NumberDescription
1Breakout ID. 6 indicates transmissivity.
2 Instrument ID (or sub-id). This is typically 11 for SBE16s at depth 20 (such as buoy C02) or 12 for SBE16s at depth 50 (such as A01).
3 Conductivity
4 Temperature
5 Transmissivity in engineering units. Must be calibrated to true transmissivity later on.
6 Day
7 ASCII character code for second letter of month. For example, if it is November, the 2nd character is 'o', so the field is '111'.
8 ASCII character code for third letter of month. For example, if it is November, the 2nd character is 'v', so the field is '118'.
9Year (eg, 2007)
10 Hour
12 Minute
12 Bin number (diagnostic)

For the case of dissolved oxygen, we have

Column NumberDescription
1Breakout ID. 12 indicates dissolved oxygen.
2 Instrument ID (or sub-id). In the case of A0103, this is 12.
3 Conductivity
4 Temperature
5 Volts. Will be calibrated to dissolved oxygen
6 Day
7 ASCII character code for second letter of month. For example, if it is November, the 2nd character is 'o', so the field is '111'.
8 ASCII character code for third letter of month. For example, if it is November, the 2nd character is 'v', so the field is '118'.
9Year (eg, 2007)
10 Hour
11 Minute
12 Bin number (diagnostic)

accelerometer_fft (7)

Column NumberDescription
1Always "7", as this is the accelerometer_fft buffer breakout id.
2Year (eg, 2007). Note - Added March 2007.
3 Julian day of the year
4 HHMM since the beginning of the day (four characters).
5-35 FFT of accelerometer voltages (31 bins) and transformed into Significant Wave Height and Dominant Wave Period.

accelerometer (71)

Column NumberDescription
1Always "71", as this is the accelerometer buffer breakout id.
2Year (eg, 2007). Note - added March 2007.
3 Julian day of the year
4 HHMM since the beginning of the day (four characters).
5-132 Accelerometer raw readiangs, 128 of them for each observation. These are not currently processed into any product.

diagnostics

As the title suggests, all of these quantities are diagnostics and need not be reported to the public. Much of the data is crucial, however, such as the GPS latitude and longitude. This must be monitored hourly to make sure that the buoys have not broken loose, as has happened more than once.

Column NumberDescription
1Always "9", as this is the diagnostics buffer breakout id.
2Year (eg, 2007). Note - added March 2007.
3 Day of year. January 1 would be "1", December 1 would be 335 on a non-leap year.
4 Hour-Minute
5 Battery Voltage
6 Internal Temperature
7 Water Level: needs explanation
8 GPS Hour_Min: Hour and minute of the gps reading.
9 GPS Second: second of the gps reading.
10 latitude degrees: from the GPS reading
11 latitude minute: from the GPS reading
12 latitude decimal minutes: from the GPS reading
13 longitude degrees: from the GPS reading
14 longitude minute: from the GPS reading
15 longitude decimal minutes: from the GPS reading
16 gps day_month : day and month of gps reading
17 gps_2 fix length (decaseconds)
18 latitude_2 degrees: from the Goes GPS reading
19 latitude_2 minute: from the Goes GPS reading
20 latitude_2 decimal minutes: from the Goes GPS reading
21 longitude_2 degrees: from the Goes GPS reading
22 longitude_2 minute: from the Goes GPS reading
23 longitude_2 decimal minutes: from the Goes GPS reading

diagnostics_short (109)

As the title suggests, all of these quantities are diagnostics and need not be reported to the public. Much of the data is crucial, however, such as the GPS latitude and longitude. This must be monitored hourly to make sure that the buoys have not broken loose, as has happened more than once.

Column NumberDescription
1Always "109", as this is the diagnostics_short buffer breakout id.
2 Day of year. January 1 would be "1", December 1 would be 335 on a non-leap year.
3 Hour-Minute
4 Battery Voltage
5 Internal Temperature
6 Water Level: resistor_1 to detect moisture intrusion in well
7 Water_2 Level: resistor_2 to detect moisture intrusion in well
8 GPS Hour_Min: Hour and minute of the gps reading.
9 GPS Second: second of the gps reading.
10 latitude degrees: from the GPS reading
11 latitude minute: from the GPS reading
12 latitude decimal minutes: from the GPS reading
13 longitude degrees: from the GPS reading
14 longitude minute: from the GPS reading
15 longitude decimal minutes: from the GPS reading
16 gps day_month : day and month of gps reading

Monitor (90)

None of the quantities reported in this buffer should be made available to the public.

Column NumberDescription
1Always "90", as this is the monitor buffer breakout id.
2Year (eg, 2007). Note - added March 2007.
3 Day of year (before Mar 2007, it used to be Hours Since the beginning of the year).
4Time (hhmm) (added Mar 2007)
5 ctd0_number_obs (number of observations received from sbe37sm during past hour; should be 1 unless there are problems)
6 aanderaa_number_obs (aanderaa number of observations, should be 1)
7 doppler_number_obs (doppler number of observations, should be 1)
8 oc_number_obs (ocean color number of observations, should be 1)
9 irad_number_obs (surface irradiance number of obs, should be 1).
10 spare1_number_obs (should be 0)
11 spare2_number_obs (should be 0)
12 spare3_number_obs (should be 0)
13 spare4_number_obs (should be 0)
14 wind_peak (max 1 second wind speed, previously known as wind_gust)

Goes Error (91)

Status of last transmitted buffer. None of the quantities reported in this buffer should be made available to the public.

Column NumberDescription
1Always "91", as this is the goes error buffer breakout id.
2Year (eg, 2007)
3 Day of year (0 to 365).
4 time (hhmm)
5Command result code for Read Error Register Command (see GOES manual Table 5.2-2)
6 Number of errors
7Command that caused Error 1
8Error Code 1 (see Goes Manual, table 5.3-6)
9 Command 2
10 Error 2
11 Command 3
12 Error 3
13 Command 4
14 Error 4
15 Last Msg Return Status
16 Last Msg Type
17 Last Msg Bytes
18 Forward Power, 1/10ths of watts
19 Reflected Power
20 Full load power supply voltage, 1/10ths of volts
21 GPS acquistition time, 1/10th seconds
22 Oscillator drift, hundreds of Hz
23 Latitude degrees
24 Latitude minutes (integer)
25 Latitude minutes (decimal)
26 Longitude degrees
27 Longitude minutes (integer)
28 Longitude minutes (decimal)

Goes Transmission (94)

Status of next buffer to be transmitted (either scheduled or random). GOES Table 5.3-2. None of the quantities reported in this buffer should be made available to the public.

Column NumberDescription
1Always "94", as this is the goes transmission status buffer breakout id.
2Year (eg, 2007)
3 Day of year (0 to 365).
4 time (hhmm)
5 Command result code for Read Error Register Command (see GOES manual Table 5.2-2)
6 Timed TX # bytes
7 Timed TX days
8 Timed TX hours
9 Timed TX minutes
10 Timed TX seconds
11 Random # bytes
12 Random hours
13 Random minutes
14 Random seconds
15 Failsafe status
16 DC Input volts, 1/10s of volts
17 Avg. GPS acquistion time, 1/10s of seconds
18 Goes transmission error count (number of retries)

sbe1603: a conductivity-temperature recorder

The SBE 1603 is a conductivity-temperature recorder that can optionally record dissolved oxygen. It has breakout 19.

As with the other SBEs, a breakout sub id is employed, typically 11 or 12.

Column NumberDescription
1Breakout ID. 6 indicates transmissivity.
2 Instrument ID (or sub-id). This is typically 11 for SBE16s at depth 20 (such as buoy C02) or 12 for SBE16s at depth 50 (such as A01).
3 Julian day of year.
4 HHMM
5 Temperature counts
6 Conductivity counts
7 Pseudo Voltage. The hex format for internal storage is aaaabbbbuuuvvv where aaaa is for temperature, bbbb is for conductivity, uuu and vvv are optional voltage counts. But the data logger for some reason cannot send these last two back separately, so they are sent back as uuuv and vv. So this position is uuuv, which is by itself cannot really be interpreted as a single variable. See the SBE 1603 Operating Manual.
8 Pseudo voltage. This position is vv. See above.
9 Last Sample Number

optics: (there's always ONE in the family...)

The optics buffers have a variable format that's completely different from the other campbell buffers. Everything depends on the presence of special tokens in the data stream that serve to specify exactly what lies ahead in the data stream. Much of the following comes directly from a set of Excel documents provided by Andrew Barnard of Bigelow Labs. Different buoys have different configurations of optics instruments in a single package, so there is no one single fixed format.

Each DH4 (the WETLabs-built data logger used to collect, merge, and average the data from the optics sensors) has four serial (RS232) input ports, and one output serial (RS232) port. A special DH4 token (the special tokens are all negative) in the data stream specifies the beginning of a set of inputs from a particular sensor. The last character of the token specifies the port. Port 0 is a special case and everything following it up until the next DH4 token is basically diagnostics data for the DH4 data logger. If the port is not zero, then the next token specifies what sensor follows. The list of acceptable sensors is as follows.

TokenSensor TypeDescription
1AC9A nine wavelength absorption and beem attenuation meter.
4DFLSA digital shuttered chlorophyll fluorometer
5VSF3SData logger to collect data from three 3-angle scattering sensors.
6OCR504A 4 wavelength downwelling irradiance sensor.
7OCR507A 7 wavelength upwelling irradiance sensor (10 degrees field of view)

The data from any OCR sensor is reported in raw digital counts, which have a baseline value of about 231, which is much too large for the Campbell data logger to handle. These values (4 bytes each) are broken into upper and lower two byte portions. Each table below describes what datum follows at what I prescribe as the offset position, relative to the id specifying what the sensor is.

Table 1. AC9

Offset PositionDatum Description
1Average internal temperature of AC9
2Number of samples used.
3Average digital counts of 650nm absorption signal.
4Average digital counts of 676nm absorption signal.
5Average digital counts of 715nm absorption signal.
6Average digital counts of 510nm beam attenuation signal.
7Average digital counts of 532nm beam attenuation signal.
8Average digital counts of 555nm beam attenuation signal.
9Average digital counts of 412nm absorption signal.
10Average digital counts of 440nm absorption signal.
11Average digital counts of 488nm absorption signal.
12Average digital counts of 650nm beam attenuation signal.
13Average digital counts of 676nm beam attenuation signal.
14Average digital counts of 715nm beam attenuation signal.
15Average digital counts of 510nm absorption signal.
16Average digital counts of 532nm absorption signal.
17Average digital counts of 555nm absorption signal.
18Average digital counts of 412nm beam attenuation signal.
19Average digital counts of 440nm beam attenuation signal.
20Average digital counts of 488nm beam attenuation signal.
21Average digital counts of 650nm absorption reference.
22Average digital counts of 676nm absorption reference.
23Average digital counts of 715nm absorption reference.
24Average digital counts of 510nm beam attenuation reference.
25Average digital counts of 532nm beam attenuation reference.
26Average digital counts of 555nm beam attenuation reference.
27Average digital counts of 412nm absorption reference.
28Average digital counts of 440nm absorption reference.
29Average digital counts of 488nm absorption reference.
30Average digital counts of 650nm beam attenuation reference.
31Average digital counts of 676nm beam attenuation reference.
32Average digital counts of 715nm beam attenuation reference.
33Average digital counts of 510nm absorption reference.
34Average digital counts of 532nm absorption reference.
35Average digital counts of 555nm absorption reference.
36Average digital counts of 412nm beam attenuation reference.
37Average digital counts of 440nm beam attenuation reference.
38Average digital counts of 488nm beam attenuation reference.

Table 2. DFLS

Offset PositionDatum Description
1Total number of DFLS samples collected and recorded on the DH4-NC flash disk.
2Number of DFLS samples used in forming the average of chlorophyll fluorescense data.
3Average digital counts of chlorophyll fluorescense data. Should be greater than 0.

Table 3. VSF3S

Offset PositionDatum Description
1Total number of VSF3S samples collected and recorded on the DH4-NC flash disk.
2Number of VSF3S samples used in forming the average of chlorophyll fluorescense data.
3Average digital counts of volume scattering at 440nm, 100 degrees angle. Should be greater than 0.
4Average digital counts of volume scattering at 440nm, 125 degrees angle. Should be greater than 0.
5Average digital counts of volume scattering at 440nm, 150 degrees angle. Should be greater than 0.
6Average digital counts of volume scattering at 440nm at the reference detector. Should be greater than 0.
7Average digital counts of volume scattering at 530nm, 100 degrees angle. Should be greater than 0.
8Average digital counts of volume scattering at 530nm, 125 degrees angle. Should be greater than 0.
9Average digital counts of volume scattering at 530nm, 150 degrees angle. Should be greater than 0.
10Average digital counts of volume scattering at 530nm at the reference detector. Should be greater than 0.
11Average digital counts of volume scattering at 650nm, 100 degrees angle. Should be greater than 0.
12Average digital counts of volume scattering at 650nm, 125 degrees angle. Should be greater than 0.
13Average digital counts of volume scattering at 650nm, 150 degrees angle. Should be greater than 0.
14Average digital counts of volume scattering at 650nm at the reference detector. Should be greater than 0.

Table 4. OCR504

Offset PositionDatum Description
1OCR504 serial number.
2Total number of OCR504 samples collected and recorded on the DH4-NC flash disk.
3Number of OCR504 samples used.
4Average internal temperature of OCR504 in digital counts.
5Average digital counts for 412nm wavelength, lower byte portion.
6Average digital counts for 412nm wavelength, upper byte portion.
7Average digital counts for 443nm wavelength, lower byte portion.
8Average digital counts for 443nm wavelength, upper byte portion.
9Average digital counts for 490nm wavelength, lower byte portion.
10Average digital counts for 490nm wavelength, upper byte portion.
11Average digital counts for 555nm wavelength, lower byte portion.
12Average digital counts for 555nm wavelength, upper byte portion.

Table 5. OCR507

Offset PositionDatum Description
1OCR507 serial number.
2Total number of OCR507 samples collected and recorded on the DH4-NC flash disk.
3Number of OCR507 samples used.
4Average internal temperature of OCR507 in digital counts.
5Average digital counts for 412nm wavelength, lower byte portion.
6Average digital counts for 412nm wavelength, upper byte portion.
7Average digital counts for 443nm wavelength, lower byte portion.
8Average digital counts for 443nm wavelength, upper byte portion.
9Average digital counts for 490nm wavelength, lower byte portion.
10Average digital counts for 490nm wavelength, upper byte portion.
11Average digital counts for 510nm wavelength, lower byte portion.
12Average digital counts for 510nm wavelength, upper byte portion.
13Average digital counts for 555nm wavelength, lower byte portion.
14Average digital counts for 555nm wavelength, upper byte portion.
15Average digital counts for 665nm wavelength, lower byte portion.
16Average digital counts for 665nm wavelength, upper byte portion.
17Average digital counts for 670nm wavelength, lower byte portion.
18Average digital counts for 670nm wavelength, upper byte portion.