Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IFF_to_TRX module #2

Open
edecarlo-swri opened this issue Apr 28, 2020 · 0 comments
Open

IFF_to_TRX module #2

edecarlo-swri opened this issue Apr 28, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@edecarlo-swri
Copy link
Collaborator

edecarlo-swri commented Apr 28, 2020

There is a need to take information contained in the IFF data stream from Sherlock and replicate it in a simulation such as GNATS or BlueSky. Both of these NAS simulation tools use the TRX language to initialize the aircraft and define their trajectories, however, they do use slightly different variants of commands. Therefore, I think the proposed module should first focus on generating a GNATS input file from the IFF data stream while being cognizant of the functions that could apply to BlueSky as well. Conversely, this module could also be called IFF_to_GNATS.

In particular, we are trying to write a GNATS input file to replicate air traffic around a single airport in GNATS. The proposed API would operate on IFF+ASDEX file iff_asdex_fname around a given airport and export it to gnats_input.trx (as well as the corresponding gnats_input_mfl.trx file). From there, we could have a couple options regarding whether or not to run the GNATS simulation after the input file is created.

## Option 1
## Run function and write to GNATS input file
IFF_to_TRX(iff_asdex_fname, airport, "gnats_input")
## Option 2
## Run function, write to GNATS input file, and run GNATS simulation to return output ## data structure
nats_output=IFF_to_TRX(iff_asdex_fname, airport, "gnats_input", run_sim = True)

Behind the scenes of the IFF_to_TRX function are several native PARA-ATM functions:

  • paraatm.io.iff.read_iff_file(iff_asdex_fname, record_type=[2,3,4])

  • paraatm.io.nats.NATSSimulationWrapper

  • paraatm.io.nats.NATSEnvironment

And some new functions could be added to paraatm.io.iff and paraatm.io.nats, or be contained in their own module:

  • For paraatm.io.iff: get_departure_airport_from_iff, get_arrival_airport_from_iff, check_if_flight_has_departed, create_gate_to_runway_from_iff, create_runway_to_gate_from_iff, get_takeoff_runway_from_track_data

  • For paraatm.io.nats: get_closest_node_at_airport, get_list_of_adjacent_nodes, get_adjacent_node_closer_to_runway, write_base_trx, modify_trx_with_gate_to_gate

Of note is that, the IFF_to_TRX function currently does not support constructing GNATS input for full gate-to-gate simulation. In order to do that, further enhancements to the function are needed in particular:

  • In addition to the IFF+ASDEX around a single airport, the corresponding IFF_USA data and IFF+ASDEX around the corresponding departing/arriving airport is needed to reconstruct the trajectory and ground pathways taken by the aircraft.

  • Matching trajectory coordinates in the IFF files to waypoints recognized by the simulation software (i.e. GNATS)

@edecarlo-swri edecarlo-swri added the enhancement New feature or request label Apr 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant