2. TFX project files#
2.1. About .TFX files#
.TFX files are .zip files containing the folders _IMAGE, _LINE and _MISSION necessary for TOPOFLIGHT mission management.
When the Missions main page in MISSIONPLANNER is opened, all files in _IMAGE, _LINE are automatically read and the corresponding data is displayed in the workspace.
When importing or exporting a .TFX file in the Missions tab, the files are automatically unzipped and any new files are added to the existing _IMAGE, _LINE and _MISSION folders. This updates all flight line and image information while preserving the history.
Important
Never manually modify the .csv files in the _IMAGE and _LINE folders! Doing so will corrupt the history.
TOPOFLIGHT NAVIGATOR (Version 24 and newer) creates image takings and line takings files that can be imported into MISSIONPLANNER.
In MISSIONPLANNER, planned missions can be exported for use in NAVIGATOR. The complete flight plan and the individual missions are stored as .json files in the _MISSION folder.
2.2. ImageTakings file#
Hint
The operator name is specified in the Settings and can be adjusted there!
The .csv files contain the following values, separated by semicolons:
Property name |
Type |
Description |
---|---|---|
TimestampWeek |
Integer |
GPS week timestamp |
TimestampSecond |
Float |
GPS second (seconds since begin of the GPS week) |
User |
String |
Operator name |
LineID |
Integer |
|
SegmentID |
Integer |
|
ImageID |
Integer |
Image number |
State |
Integer |
NAVIGATOR returns a three-digit status code:
The even hundreds indicate the general status category without additional specificity |
PhotoID |
Integer |
Photo number |
EventID |
Integer |
Event number |
Simulation |
Integer |
Image creation (simulation=1, real=0) |
Longitude |
Float |
Longitude of image location |
Latitude |
Float |
Latitude of image location |
Altitude |
Float |
Altitude of image location |
Roll |
Float |
roll angle (landscape=0°, portrait=90°) |
Pitch |
Float |
pitch angle (pointing to the horizon=0°, pointing to nadir=-90°) |
Heading |
Float |
yaw angle (front=0°, right=90°, back=180°, left=270°) |
Sensor type |
String |
Specification of sensor type (e.g. FrameCamera) |
SensorName |
String |
Full sensor name (e.g. PhaseONE iXU-RS 1000 - 50 mm) |
2.3. LineTakings file#
Hint
The operator name is specified in the Settings and can be adjusted there!
The .csv files contain the following values, separated by semicolons:
Property name |
Type |
Description |
---|---|---|
TimestampWeek |
Integer |
GPS week timestamp |
TimestampSecond |
Float |
GPS second (seconds since begin of the GPS week) |
User |
String |
Operator name |
LineID |
Integer |
|
SegmentID |
Integer |
|
State |
Integer |
NAVIGATOR returns a three-digit status code:
The even hundreds indicate the general status category without additional specificity |
Simulation |
Integer |
Line creation (simulation=1, real=0) |
Longitude |
Float |
Longitude of line location (taken ~every 2 seconds) |
Latitude |
Float |
Latitude of line location (taken ~every 2 seconds) |
Altitude |
Float |
Altitude of line location (taken ~every 2 seconds) |
Roll |
Float |
roll angle (landscape=0°, portrait=90°) |
Pitch |
Float |
pitch angle (pointing to the horizon=0°, pointing to nadir=-90°) |
Heading |
Float |
yaw angle (front=0°, right=90°, back=180°, left=270°) |
Sensor type |
String |
Specification of sensor type (e.g. FrameCamera) |
SensorName |
String |
Full sensor name (e.g. PhaseONE iXU-RS 1000 - 50 mm) |
2.4. Missions file structure#
The .json files in the _MISSION folder contain the following feature fields and structure.
Feature fields - mission object
Property name |
Type |
Description |
---|---|---|
name |
String |
Mission name |
uuid |
String |
Unique identifier of the feature |
assignedTo |
String |
Name of the operator undertaking the mission |
createdBy |
String |
Name of the operator that created the mission |
createdAt |
String |
Date of creation |
updatedAt |
String |
Date of the last mission update |
originAirport |
String |
Currently not in use |
finalAirport |
String |
Currently not in use |
turnTime_s |
Float |
Extra time to move to the next line: this value is used to calculate the remaining time of a mission |
transferSpeed_kt |
Float |
Speed of the aircraft from the airport to the project area |
mappingSpeed_kt |
Float |
Speed of the aircraft on a flight line: this value is used to calculate the remaining time of a mission |
deprecated |
Integer |
0 = mission is up-to-date and operational, 1 = mission is outdated and no longer in use |
stateLine |
Overview of the current line status (LiDAR, Pushbroom) |
|
stateImage |
Overview of the current image status (if available) |
|
lines |
Defines the lines that belong to the mission |
Feature fields - stateLine object
Property name |
Type |
Description |
---|---|---|
updatedAt |
String |
Date of last update |
success |
Float |
Distance [m] flagged as “success” |
warning |
Float |
Distance [m] flagged as “warning” |
error |
Float |
Distance [m] flagged as “error” |
refly |
Float |
Distance [m] flagged as “refly” |
notFlown |
Float |
Distance [m] flagged as “notFlown” |
undefined |
Float |
Distance [m] flagged as “undefined” |
total |
Float |
Total length [m] of all flight lines in the mission |
Feature fields - stateImage object
Property name |
Type |
Description |
---|---|---|
updatedAt |
String |
Date of last update |
success |
Float |
Number of pictures flagged as “success” |
warning |
Float |
Number of pictures flagged as “warning” |
error |
Float |
Number of pictures lagged as “error” |
refly |
Float |
Number of pictures flagged as “refly” |
notFlown |
Float |
Number of pictures flagged as “notFlown” |
undefined |
Float |
Number of pictures flagged as “undefined” |
total |
Float |
Total number of pictures in the mission |
Hint
When multiple images were taken at the same position, the status refers to the Latest, not the Best image.
Feature fields - lines object
Property name |
Type |
Description |
---|---|---|
parentId |
Integer |
|
segmentId |
Integer |
|
length |
Float |
Total length [m] of the flight line |
level |
String |
Complete (entire line belongs to the mission) or Partial (only parts of the line belong to the mission) |
parts |
only required when level=Partial: defines which part(s) of the line belong to the mission |
Feature fields - part object
Property name |
Type |
Description |
---|---|---|
start |
Float |
linear reference of the starting point on the flight line [m] |
end |
Float |
linear reference of the end point on the flight line [m] |
Example
{
"name": "Mission_B",
"uuid": "0951F448-4962-4D76-B654-F34D5C4DBCD1",
"assignedTo": "UNDEFINED",
"createdBy": "OFFICE_123",
"createdAt": "2025-05-05T11:40:45Z",
"updatedAt": "2025-05-05T16:01:13Z",
"originAirport": "UNDEFINED",
"finalAirport": "UNDEFINED",
"turnTime_s": 20.0,
"transferSpeed_kt": 100.0,
"mappingSpeed_kt": 100.0,
"deprecated": 0,
"stateLine": {
"updatedAt": "2025-05-05T16:01:50Z",
"success": 10805.2265625,
"warning": 0.0,
"error": 0.0,
"refly": 0.0,
"notFlown": 0.0,
"undefined": 0.0,
"total": 10205.40234375
},
"stateImage": {
"updatedAt": "2025-05-05T16:01:50Z",
"success": 32,
"warning": 0,
"error": 0,
"refly": 0,
"notFlown": 0,
"undefined": 0,
"total": 32
},
"lines": [
{
"parentId": 17,
"segmentId": 1,
"length": 3118.23657226562,
"level": "Complete",
"parts": []
},
{
"parentId": 18,
"segmentId": 1,
"length": 3883.84301757812,
"level": "Partial",
"parts": [
{
"start": 0.0,
"end": 1822.91284179687
},
{
"start": 2000.91284179687,
"end": 3883.84301757812
}
]
},
{
"parentId": 19,
"segmentId": 1,
"length": 3203.32275390625,
"level": "Complete",
"parts": []
}
]
}