NASA - National Aeronautics and Space Administration
Follow this link to skip to the main content
+ Visit NASA.gov
+ Contact NASA
ABOUT NASA LATEST NEWS MULTIMEDIA MISSIONS MY NASA WORK FOR NASA
ATD-2 Concept graphic

NASA Airspace Technology Demonstration 2 (ATD-2) Industry Workshop


ATD-2 Industry Workshop Documentation Outline


Fuser Database to TTP Flight Data Message


This page documents the mapping between the ATD-2 Fuser Database and the NASA TFDM TTP Flight Data Messages which are available for consumption via FAA SWIM. This mapping was developed using the TFDM specification and is meant to follow the TFDM specification as closely as possible. Due to constraints of operating in a prototype environment, not all data elements specified by TFDM are published by ATD-2. The schema used is the Flight Information Exchange Model (FIXM) version 4.0 with NAS Extension. For more information, review the NASA TTP documentation on the NSRR

To convert data stored in the Fuser DB into TFDM TTP messages, the TFDM SWIM Engine listens for Flight Creation, Flight Update, and Flight Remove events from the Fuser via the Fuser Client API. Any of these events will trigger the flight data to be transformed to a FIXM message and a TTP Flight Data Message will be published out to FAA SWIM. Populating the FIXM elements required by the TFDM specification for TTP Flight Data Messages, the TFDM SWIM Engine either converts an existing element from the Fuser into FIXM, or it calculates/derives the element using the logic noted in the "Notes/Calculations" column. The results from this conversion / calculation & derivation are stored in the TTP DB for future reference and debugging. 

Fuser DB Element TTP DB Element Corresponding FIXM Element Notes/Calculations
acid acid NasMessage.flight.flightIdentification.@aircraftIdentification
arrival_spot_actual actual_arrival_spot NasMessage.flight.additionalFlightInformation.ACTUAL_ARR_SPOT=
departure_spot_actual actual_departure_spot NasMessage.flight.additionalFlightInformation.ACTUAL_DEP_SPOT=
arrival_runway_actual_time actual_landing_time NasMessage.flight.arrival.actualRunwayArrivalTme
arrival_stand_actual_time actual_in_block_time NasMessage.flight.arrival.actualInBlockTime
departure_movement_area_actual_time actual_movement_area_entry_time NasMessage.flight.departure.movementAreaActualEntryTime
arrival_movement_area_actual_time actual_movement_area_exit_time NasMessage.flight.arrival.movementAreaActualExitTime
departure_stand_actual_time actual_off_block_time NasMessage.flight.departure.offBlockTime.actual
departure_runway_actual_time actual_take_off_time NasMessage.flight.departure.runwayDepartureTime.actual
arrival_fix_actual
arrival_fix_user
arrival_fix_source_data
arrival_fix_position_derived
arrival_fix_model
arrival_fix_decision_tree
aerodrome_arrival_fix NasMessage.flight.destination.arrivalFix The TFDM SWIM Engine looks at these arrival fix fields in order and returns the first one found
departure_fix_actual
departure_fix_user
departure_fix_source_data
departure_fix_position_derived
departure_fix_model
departure_fix_decision_tree
aerodrome_departure_fix NasMessage.flight.departure.departureFix The TFDM SWIM Engine looks at these departure fix fields in order and returns the first one found
aircraft_registration aircraft_registration_mark NasMessage.flight.aircraft.@registration
carrier
flight_type
airline NasMessage.flight.operator Possible Values:
carrier (value from Fuser)
XXX (carrier == null and flight_type == GENERAL_AVIATION)
--- (carrier == null and flight_type != GENERAL_AVIATION)
release_scheduled_roll_time approval_request_release_time NasMessage.flight.departure.approvalRequestReleaseTime
arrival_runway_actual arrival_runway_actual NasMessage.flight.additionalFlightInformation.ARR_RWY_ACTUAL=
arrival_runway_user
arrival_runway_airline
arrival_runway_decision_tree
arrival_runway_position_derived
arrival_runway_model
arrival_runway_predicted NasMessage.flight.additionalFlightInformation.ARR_RWY_PREDICTED= The TFDM SWIM Engine looks at these arrival runway fields in order and returns the first one found
arrival_stand_actual
arrival_stand_user
arrival_stand_airline
arrival_stand_position_derived
arrival_stand_model
arrival_stand_decision_tree
arrival_stand_designator NasMessage.flight.destination.standInformation The TFDM SWIM Engine looks at these arrival stand fields in order and returns the first one found
source_facility cid_creator_unit NasMessage.flight.flightIdentification.IdCreatorUnit
computer_id computer_id NasMessage.flight.flightIdentification.@computerId
departure_aerodrome_icao_name departure_point NasMessage.flight.departure.@departurePointText
departure_runway_actual departure_runway_actual NasMessage.flight.additionalFlightInformation.DEP_RWY_ACTUAL=
departure_runway_user
departure_runway_airline
departure_runway_decision_tree
departure_runway_position_derived
departure_runway_model
departure_runway_predicted NasMessage.flight.additionalFlightInformation.DEP_RWY_PREDICTED= The TFDM SWIM Engine looks at these departure runway fields in order and returns the first one found (only uses position derived if flight is pre-departure)
departure_stand_actual
departure_stand_user
departure_stand_airline
departure_stand_position_derived
departure_stand_model
departure_stand_decision_tree
departure_stand_designator NasMessage.flight.departure.standInformation The TFDM SWIM Engine looks at these departure stand fields in order and returns the first one found
arrival_aerodrome_icao_name destination_point NasMessage.flight.destination.@destinationPointText
tfm_extension table:
is_diversion
diversion_recovery_status NasMessage.flight.@diversionRecoveryIndicator Set to DIVERSION_RECOVERY if is_diversion == true
departure_runway_undelayed_time earliest_feasible_takeoff_time NasMessage.flight.departure.runwayDepartureTime.earliest
departure_stand_earliest_time earliest_off_block_time NasMessage.flight.departure.offBlockTime.earliest
eram_gufi eram_gufi NasMessage.flight.flightPlan.@identifier
arrival_runway_targeted_time estimated_time_of_arrival NasMessage.flight.destination.runwayArrivalTime.estimated
departure_runway_targeted_time estimated_time_of_departure NasMessage.flight.departure.runwayDepartureTime.estimated
NasMessage.flight.additionalFlightInformation.TTOT=

departure_stand_initial_time initial_gate_time_of_departure NasMessage.flight.departure.offBlockTime.@initial
arrival_stand_initial_time initial_in_block_time NasMessage.flight.destination.inBlockTime.@initial

message_type NasMessage.metadata Possible Values:
FlightAdd
FlightUpdate
FlightDelete
FlightNotification
arrival_spot_user
arrival_spot_airline
arrival_spot_position_derived
arrival_spot_model
arrival_spot_decision_tree
predicted_arrival_spot NasMessage.flight.additionalFlightInformation.PREDICTED_ARR_SPOT= The TFDM SWIM Engine looks at these arrival spot fields in order and returns the first one found
departure_spot_user
departure_spot_airline
departure_spot_position_derived
departure_spot_model
departure_spot_decision_tree
predicted_departure_spot NasMessage.flight.additionalFlightInformation.PREDICTED_DEP_SPOT= The TFDM SWIM Engine looks at these departure spot fields in order and returns the first one found
arrival_stand_scheduled_time scheduled_in_block_time NasMessage.flight.destination.inBlockTime.@scheduled
departure_stand_scheduled_time scheduled_off_block_time NasMessage.flight.departure.offBlockTime.@scheduled
departure_movement_area_surface_metered_time_value target_movement_area_entry_time NasMessage.flight.departure.movementAreaTargetEntryTime
departure_stand_surface_metered_time_value targeted_off_block_time NasMessage.flight.additionalFlightInformation.TOBT=
departure_runway_targeted_time targeted_take_off_time NasMessage.flight.departure.runwayDepartureTime.target

tfdm_id_creator_airport NasMessage.flight.additionalFlightInformation.TFDMIDCreator= Set by the TFDM SWIM Engine
gufi tfdm_id NasMessage.flight.additionalFlightInformation.TFDMID=
apreq_restriction_ids
groud_stop_restriction_ids
mit_restriction_ids
tmi_identifiers NasMessage.flight.departure.departureDelay.@tmiIdentifier Restriction IDs from DB are formatted as JSON with 'restrictionId' as a UUID. TTP only allows digits (no letters) in the identifiers in the TrafficManagement information that this is intended to link to.
The restrictionId from each entry is converted to a BigInteger (only digits) and appended with "/KCLT" or "/KDFW" or "/KDAL" depending on the source airport. 
arrival_movement_area_undelayed time
arrival_runway_undelayed_time
estimated_arrival_movement_area_transit_duration NasMessage.flight.additionalFlightInformation.EST_ARR_AMA_TRAN_TME= Calculation: (arrival_movement_area_undelayed time) - (arrival_runway_undelayed_time)
units
arrival_stand_undelayed_time
arrival_movement_area_undelayed time
estimated_arrival_ramp_transit_duration NasMessage.flight.additionalFlightInformation.EST_ARR_RTT= Calculation: (arrival_stand_undelayed_time) - (arrival_movement_area_undelayed time)
departure_runway_targeted_time
departure_runway_undelayed_time
estimated_departure_queue_waiting_duration NasMessage.flight.additionalFlightInformation.EST_DEP_Q_WAIT_TME= Calculation: (departure_runway_targeted_time) - (departure_runway_undelayed_time)
departure_movement_area_undelayed_time
departure_stand_undelayed_time
estimated_departure_ramp_transit_duration NasMessage.flight.additionalFlightInformation.EST_DEP_RTT= Calculation: (departure_movement_area_undelayed_time) - (departure_stand_undelayed_time)
departure_runway_undelayed_time
departure_movement_area_undelayed_time
estimated_spot_to_queue_taxi_out_duration NasMessage.flight.additionalFlightInformation.EST_SPOT_Q_TAXI_OUT= Calculation: (departure_runway_undelayed_time) - (departure_movement_area_undelayed_time)
arrival_stand_actual time
arrival_movement_area_time
actual_arrival_ramp_transit_duration NasMessage.flight.arrival.taxiOperationsMetrics. inboundRampTaxiTimeDuration Calculation: (arrival_stand_actual time) - (arrival_movement_area_time)
departure_movement_area_actual time
departure_stand_actual_time
actual_departure_ramp_transit_duration NasMessage.flight.departure.taxiOperationsMetrics. outboundRampTaxiTimeDuration Calculation: (departure_movement_area_actual time) - (departure_stand_actual_time)
FirstGov - Your First Click to the US Government
+ Freedom of Information Act
+ Budgets, Strategic Plans and Accountability Reports
+ The President's Management Agenda
+ NASA Privacy Statement, Disclaimer,
and Accessibility Certification

+ Inspector General Hotline
+ Equal Employment Opportunity Data Posted Pursuant
to the No Fear Act

+ Information-Dissemination Priorities and Inventories
NASA - National Aeronautics and Space Administration
Curator: Victoriana Delossantos
NASA Official: Al Capps
Last Updated: July 23, 2019