B3 OBS Formats in ODTK
B3 OBS Formats in ODTK (v4.1 and above)
The official Air Force B3 OBS archive format has not been provided to AGI. However, the following B3 format should be close, based on several unofficial sources andsignificant review of historical data sets. This format is the archive format, not the transmission format as sent by various sensors in the Space Surveillance Network. If you aren't sure which type of B3 observations you have, examine the first two characters of each line. If they are "))" (without quotes), then you have transmit B3 observations.
B3 OBS Types in ODTK
| Type | Data Items used in ODTK |
|---|---|
| 0 | Range rate only |
| 1 | Azimuth and elevation |
| 2 | Range, azimuth, and elevation |
| 3 | Range, azimuth, elevation, and range rate |
| 4 | Range, azimuth, elevation, and range rate (extra measurements for azimuth rate, elevation rate, etc., are ignored) |
| 5 | Right ascension and declination |
| 6 | Range only |
| 8 | Space-based azimuth, elevation, and sometimes range and EFG position of the sensor |
| 9 | Space-based right ascension, declination, and sometimes range and EFG position of the sensor |
For all types, the following format applies. If an OBS type does not include a specific measurand, then those columns are blank.
| Columns | Description |
|---|---|
| 1 | Security classification; typically "U" = unclassified; may be other characters as well |
| 2-6 | SSSSS = Integer satellite ID corresponding to the SSC number |
| 7-9 | sss = Integer sensor ID |
| 10-11 | YY = year (assumes 20YY if YY ≤ 50, 19YY if YY > 50) |
| 12-14 | DDD = day of year, where 1 Jan is considered to be day 1 |
| 15-23 | HHMMSSSSS, hour, min, seconds, where implied decimal is SS.SSS (or think of SSSSS as the number of milliseconds) |
| 24-29 | EEEEEE = either the elevation or declination value in degrees, with implied decimal EE.EEEE. Negative elevation / declination values are formatted as overpunched [1] values. |
| 30 | Blank; most likely a remnant of the weighting flag used in the transmit B3 format |
| 31-37 | AAAAAAA = Azimuth or right ascension; azimuth is in degrees with implied decimal AAA.AAAA always positive; right ascension in HHMMSSS, with implied decimal in SS.S |
| 38 | Blank; most likely a remnant of the weighting flag used in the transmit B3 format |
| 39-45 | RRRRRRR = Range in km RR.RRRRR*10^E. Types 8 and 9 commonly do not have a range value and these columns will be set to "0000000". |
| 46 | E = Range exponent (0 < E < 5). Types 8 and 9 will leave this blank if the range value is "0000000". |
| 47-73 | Observation type specific; see the sections below |
| 74 | Blank |
| 75 | Obs type |
| 76 | Equinox indicator that specifies the inertial frame for optical observations (Types 5 and 9 only); if used:0 - True Equator Mean Equinox of DateIf the observation record is only 75 bytes long or if column 76 contains a space character, the optical frame specified in the associated tracking object in ODTK will be used. |
For types other than 8 or 9 columns, 47-73 are defined using the format:
| Columns | Description |
|---|---|
| 47 | Blank; most likely a remnant of the weighting flag used in the transmit B3 format |
| 48-54 | rrrrrrr = slant range rate (km/s), with implied decimal rr.rrrrr. For negative range rate, the first digit will be a "-" character and you'll have one less digit of precision. |
| 55-73 | Blank |
For types 8 and 9 columns, 47-73 are defined using the format:
| Columns | Description |
|---|---|
| 47-55 | XXXXXXXXX = X/Y/Z X component of sensor position in meters, column 47 is reserved for the sign, decimal implied after column 55 |
| 56-64 | XXXXXXXXX = X/Y/Z Y component of sensor position in meters, column 56 is reserved for the sign, decimal implied after column 64 |
| 65-73 | XXXXXXXXX = X/Y/Z Z component of sensor position in meters, column 65 is reserved for the sign, decimal implied after column 73 |
EFG coordinates are pseudo-body-fixed coordinates that differ from Earth-fixed coordinates by the effect of polar motion. These coordinates are sometimes referred to as True of Date Rotating (TDR) coordinates.
Overpunched values are remnants of the days when data was stored on 80-column cards. To indicate that a value is negative, you would normally place a negative sign "-" character in front of it. When using fixed format values this would cause you to lose a digit of precision. So instead you simply "overpunched" the first digit. See https://en.wikipedia.org/wiki/Punch_card for details. The end result is the translation J = -1, K = -2, ..., R = -9.