# Range records

URL: /collect/formats/range-records

Radar TSPI, telemetry receiver and flight termination console logs, recorded on range time in .csv or .json and mapped once per range. What each record adds to a reconstruction, shown on the illustrative jet example.



A test range keeps its own record of a flight, apart from anything the vehicle writes. Foxborne reads three kinds of range record: radar TSPI, the telemetry receiver log and the flight termination system (FTS) console log.

They arrive as `.csv` or `.json` files, stamped on range time. Each range writes them its own way, so Foxborne maps them once per range, not once per file.

## Record types [#record-types]

| Record                 | What it is                                                                     | What it adds to a reconstruction                                              |
| ---------------------- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- |
| Radar TSPI             | Time, space, position information: where range radar saw the vehicle, and when | A track measured from the ground, independent of the vehicle's own navigation |
| Telemetry receiver log | The ground receiving station's log of the telemetry downlink                   | The ground's view of the downlink, separate from what the vehicle recorded    |
| FTS console log        | The range's log of the flight termination console                              | When a command left the range, to set against when the vehicle acted on it    |

Each record answers a question the vehicle's own logs cannot. The vehicle knows where it thought it was, what it sent and what it received. The range knows where radar saw it, what the ground heard and what the range commanded.

## Range time and the other clocks [#range-time-and-the-other-clocks]

Range records carry range time, the time base the range runs on. How far they can be ordered against the vehicle's logs depends on how that time base relates to the vehicle's clocks.

<Badge tone="warn">
  Illustrative example
</Badge>

In the illustrative jet example, the recorder, the ground station and the range all run on IRIG-B, so their clocks agree to microseconds. Ground stamps are corrected by a measured pipeline offset of 2.270 ms before any comparison. With the clocks that close, sampling limits the order of events instead:

| Source                                    | Sampling           | Distance at the example's 225.59 m/s |
| ----------------------------------------- | ------------------ | ------------------------------------ |
| Radar TSPI                                | 50 ms samples      | 11.3 m                               |
| MIL-STD-1553 status words on the recorder | 20 ms bus schedule | 4.5 m                                |
| PCM telemetry                             | 1 ms frames        | 0.23 m                               |

A radar sample places the vehicle once every 50 ms. Between two samples, radar alone cannot say where the vehicle was.

The drone and ground robot examples in the console's example dataset are the other way around. There, the ground receive log sits on an NTP clock at ±15 ms plus link latency, and the clocks set the limit. [Clocks, anchors and error bounds](/concepts/clocks) covers those bounds.

## In the illustrative jet example [#in-the-illustrative-jet-example]

<Badge tone="warn">
  Illustrative example
</Badge>

The [jet-powered UAS example](/platforms/jets) is worked from published standards. It is not a real event and not in the console's example dataset. Each range record adds one piece to it:

| Record                 | Event            | What it shows                                                                                                                                                                                        |
| ---------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Radar TSPI             | A7, 17:42:07.888 | Wings level on 324.6°, then a 30° right turn toward the lost-link orbit. The event draws on radar TSPI and the recorder's EGI attitude together.                                                     |
| FTS console log        | A8, 17:42:10.228 | The console logged the arm command at 17:42:10.216, 12.0 ms before the PCM FTS ARM discrete on the aircraft.                                                                                         |
| Telemetry receiver log | Beside A3 and A5 | The ground's side of the downlink, next to the ground station's Chapter 10 recording. That recording's `LOCKST` status places the loss of frame lock at 17:42:03.779 and its return at 17:42:06.861. |

A10 follows at 17:42:38.532, when the range safety officer removes the arm tones.

The FTS console log also marks a limit. It records the arm command and when it was logged. Why termination was armed is a rule in the range's procedures, and no log in the example holds it.

## Importing range records [#importing-range-records]

Range records arrive through file import, by upload, drop folder or removable media. The console's **File import** entry, under **Integrations** and **Ingest**, lists TSPI files among the formats it takes.

Each file is hashed with SHA-256 at receipt and checked against the sender's manifest before it is parsed. **Settings**, under **Import**, lists the formats your deployment reads. The example deployment's **File import** reads **On, 4 formats**, and range records are not among them.

## Related [#related]

* [Jet-powered UAS](/platforms/jets) walks through the illustrative example in full.
* [IRIG 106 Chapter 10 recordings](/collect/formats/irig-106-chapter-10) covers the recordings range records are read beside.
* [Alignment and event order](/concepts/alignment) explains when two sources can be put in order.
* [Supported file formats](/collect/formats) compares every format Foxborne reads.
