GOES

A GOES download file consists of a "message" for each observation. For example, the 2003 Feb 28 23pm observation for C0202 was recorded as

  044060B203059232103G33-1NN103EFF00188DTBFqnENeF@@F@@F@@F@@F@@F@@NVpFtkFeUB[IDRbBbkALaDmTFCsFdGDmTFIoFhJF@@F@@F@@F@@F@@F@@F@JF@DF@[FL^FnrFTCFcjFLBFJdFZUFURFOBF`]FNCFVSFagFTeFStFK~FEmFH`FAtFATF@{F@fF@kF@TF@KF@EF@HF@HFiAF@@
  
      

Char Column NumbersDescriptionAccording to the Example...
1-8 DCP Address (or platform ID). 044060B2
11-13 Julian day since the beginning of the year 03 ==> 2003
9-10 Year in YY format. 059 ==> February 28.
14-15 Hour in 24HH format 23 ==> 23:00:00 PM
16-17 Minute (not used)  
18-19 Second (not used)  
20

Failure Code. Possible character values are

  • "G" - Good Message ==> 71

  • "?" - Message received with parity errors ==> 63

  • "W" - Message received on wrong channel ==> 87

  • "D" - Duplicate message received ==> 68

  • "A" - Message received with address error(s) (correctable) ==> 65

  • "T" - Message received late/early (time error) ==> 84

  • "U" - Unexpected message received (over two minutes early/late of assigned time) ==> 85

  • "N" - PDT incomplete (user required data is missing) ==> 78

  • "M" - Scheduled message is missing ==> 77

G ==> Good Message
21-22 Signal Strength 33
23-24 Frequency Offset -1
25 Modulation Index N
26 Data Quality N
27-29 Channel Received 103
30 GOES Spacecraft E ==> GOES EAST
31 - 32 Uplink Carrier Status FF
33 - 37 Length of Message. This counts the length of this field itself. 00188 ==> 188. The length of this field is always five characters, so positions 38 thru 38+188-5 constitute the message (or data payload) itself.

The characters in positions 38 through the end of the message constitute the observation. Each datum is encoded as an ASCII triplet. The first such datum in the above example is DTB. Most of the time the data is stored in CSI floating point format. Campbell provides an algorithm implementation in their documentation (see [ SATHDRGOES ] ), but the example is written in BASIC and therefore quite difficult to understand.

The message format differs between buoys, therefore a different routine to discriminate the parameters is needed for each buoy. The m-file goes2buffers.m is relied upon to call the correct discriminating routine.