CSV Telemetry
CSV Telemetry is the CSV you get with With tracks. It has one row for every recorded position. The file name ends in -telemetry.csv.
Flights and detections use the same 15 columns in the same order. A column that one kind never fills stays empty.
Columns
| # | Column | Meaning | Unit | Empty when | In JSON |
|---|---|---|---|---|---|
| 1 | operation_id | ID of the flight or detection | operations[].id | ||
| 2 | timestamp | Time of the position, UTC | track[].timestamp | ||
| 3 | serial_number | Serial number. For a flight, the Dronetag device's. | Not reported | Identifier of type serial_number | |
| 4 | sensor_id | Receiver that heard this position | Flights, or shared publicly | track[].sensor_id | |
| 5 | operational_state | grounded, airborne or emergency | Flights, or not reported | track[].operational_state | |
| 6 | latitude | Latitude, WGS 84 | degrees | track[].location.latitude | |
| 7 | longitude | Longitude, WGS 84 | degrees | track[].location.longitude | |
| 8 | horizontal_speed | Speed over the ground | m/s | Not reported | track[].velocity.horizontal_speed |
| 9 | vertical_speed | Climb rate, positive when climbing | m/s | Not reported | track[].velocity.vertical_speed |
| 10 | heading | Direction of travel, clockwise from north | degrees | Not reported | track[].velocity.heading |
| 11 | alt_hae_wgs84 | Height above the WGS 84 ellipsoid | m | Not reported | Altitude of type HAE-WGS84 |
| 12 | alt_ato | Height above the take-off point | m | Not reported | Altitude of type ATO |
| 13 | alt_pressure | Pressure altitude | m | Not reported | Altitude of type PA-QNE |
| 14 | alt_msl | Altitude above mean sea level | m | Can't be worked out | Altitude of type MSL |
| 15 | alt_agl | Height above the ground | m | No sea level or no terrain data | Altitude of type AGL |
The five altitude columns are explained in Altitudes Explained.
An empty cell means the value wasn't reported and Dronetag couldn't calculate it. A real zero, such as the speed of a hovering drone, is written as zero and never left empty.
CSV has no accuracies. If you need to know how exact a value is, use JSON.
Facts about the aircraft and the pilot are in CSV Summary. Its id column holds the same value as operation_id, so you can join the two files.
Example
The first row of the example flight and of the example detection (synthetic data):
operation_id,timestamp,serial_number,sensor_id,operational_state,latitude,longitude,horizontal_speed,vertical_speed,heading,alt_hae_wgs84,alt_ato,alt_pressure,alt_msl,alt_agl
3f6b1c2e-8d4a-4b7f-9e21-5a0c7d3e9b14,2026-09-17T07:42:13.350390Z,1596CEXAMPLE00001,,,49.1679989,16.4950113,0.0,0.0,,327.1,0.08,255.81,282.13207082568454,0.43031044931819906
6d2f8a41-93c7-4e0b-b5d2-1f7a9c3e8b60,2026-09-22T15:31:04.048000Z,1581FEXAMPLE00000004,SCT-EXAMPLE-01,grounded,49.9599978,14.4999964,0.0,0.0,0.0,400.3,0.0,327.7,354.9,1.0917571914229143
The flight row has no receiver and no state. The detection row has both.
Opening It in Excel
A CSV is written in one of two styles. Some places let you choose the style when you export.
- Decimal point writes
1.5and separates columns with commas. It suits English-language Excel, Numbers and LibreOffice. - Decimal comma writes
1,5and separates columns with semicolons. It suits Czech, German and most other European set-ups.
When the style matches your Excel, double-click the file and it opens in columns. Accents and the degree sign display correctly.
If everything lands in one column, the file was written in the other style. Import it instead.
- In Excel, choose Data → From Text/CSV and pick the file.
- Set the delimiter to comma or semicolon.
- If numbers come out as text, choose Transform Data, select the columns and use Change Type → Using Locale.

Numbers keep every digit the source reported. Format the cells in Excel if you want fewer decimals.
Reading It in a Program
The file is UTF-8 with a byte order mark. In Python, open it with encoding="utf-8-sig". Lines end in CRLF and times end in Z (UTC). Numbers have full precision and no thousands separators. The header always has the same 15 columns.
If You Get a Zip File
When alt_msl or alt_agl came from terrain data that must be credited, the CSV arrives in a zip with ATTRIBUTION.txt. Keep the two files together. See Terrain Data and Attribution.