ATC-pie: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
mNo edit summary
(v1.6.4)
(46 intermediate revisions by 4 users not shown)
Line 6: Line 6:
| title                  = ATC-pie
| title                  = ATC-pie
| logo                  = ATC-pie-logo.png
| logo                  = ATC-pie-logo.png
| image                  = ATC-pie-screenshot-KSFOmess.png
| image                  = ATC-pie-screenshot-towerViewing.png
| alt                    = ATC-pie at the KSFO mess
| alt                    = Tower viewing, following a departing aircraft
| developedby            = Michael Filhol
| developedby            = Michael Filhol
| initialrelease        = February 1, 2015
| initialrelease        = February 1, 2015
| latestrelease          = August 22, 2015 (r6c)
| latestrelease          = 1.6.4 (March 15, 2020)
| writtenin              = Python3
| writtenin              = Python3
| os                    = Any
| os                    = Any
Line 17: Line 17:
| type                  = ATC client
| type                  = ATC client
| license                = GNU GPL v3
| license                = GNU GPL v3
| website                = https://sourceforge.net/projects/atc-pie
| website                = http://mickybadia.free.fr/atcpie
}}
}}


'''ATC-pie''' is an [[air traffic control]] simulation program featuring solo training and a multi-player game mode to connect to [[FlightGear]] networks. It is essentially designed for realism, and simulates many features of real-life ATC tasks such as transponder identification, strip rack and sequence management, handovers to/from neighbouring controllers, ATIS recording, flight plan editing, routing and conflict solving.
'''ATC-pie''' is an [[air traffic control]] simulation program featuring:
* solo sessions, incl. voice instruction recognition and pilot speech synthesis;
* multi-player network connections through [[FGMS]];
* tutorial sessions for teacher supervision of an ATC student.


ATC-pie is free and open source, programmed in Python3 for Qt5 hence system-independant, only Python3 and its Qt5 bindings must be installed. That done, it is meant to work straight away, with no make/compile command to run or external resource to install (except for local tower viewing, which requires FlightGear and the appropriate scenery).
It can simulate en-route centre control (CTR) as well as airport-based services (TWR, APP, GND...), and allows 3D tower viewing through [[FlightGear]]. It is essentially designed for realism and simulates many tasks and situations of real-life ATC such as:
* strip rack and sequence management;
* radar monitoring and transponder identification;
* handovers to/from neighbouring controllers;
* routing and conflict anticipation;
* flight plan filing and editing...


== Program features ==
The program is free and open source, and programmed in Python3 for Qt5 hence system-independant. Only Python3 and its Qt5 bindings must be installed. That done, it is meant to work straight away, with no make/compile command to run or external resource to install. The whole world is immediately available on radar. Tower viewing requires the appropriate FlightGear aircraft and scenery.


The features listed below have been tested on various Linux versions, Mac and Windows.
== Screenshots ==
 
Visit the [[:Category:ATC-pie screenshots|ATC-pie screenshot category]] for more.
 
<gallery mode="packed">
ATC-pie-screenshot-sectorView.png|Sector view around Geneva
ATC-pie-screenshot-soloMode.png|Playing solo with three coloured racks
ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
ATC-pie-screenshot-airportCloseUp.png|Depiction of airport tarmac and objects
ATC-pie-screenshot-runwayIncursion.png|Runway incursion detected and highlighted in red
ATC-pie-screenshot-flightPlans.png|Flight plan editor
</gallery>
 
== Working principles ==


=== Game and environment ===
=== General ===
World data:
You are the air traffic controller, working with or without a tower window or radar scope, depending on your position and local facility. Players will connect to the network (multi-player), AI traffic be simulated (solo), or student traffic generated and controlled by the teacher, all with different types of aircraft, [[transponder]] equipment and intentions.
* Real world METAR updates from selectable weather stations
* Real world declination lookup and true/magnetic distinction
* Airport and navigation data retrieved from the latest [http://data.x-plane.com X-Plane] file set
* Custom additions possible in separate files


Multi-player and network environment:
As in real life if you use a radar, your main technology is [http://en.wikipedia.org/wiki/Secondary_surveillance_radar SSR], hence unless you cheat or activate the primary radar, it will show you only what you pick up from on-board transponders in its range. This means:
* Multi-player game mode with configurable [[FGMS]] connection
* if a transponder is off or out of range, you will not see the aircraft on your radar screen;
* ATC handovers: strip exchange with [[OpenRadar]] and other ATC-pie instances in range
* if a transponder is on and in range, you will at least be able to see its position and read the transponder code, possibly its altitude and even its type and callsign, depending on the mode set by the pilot and your radar capabilities.
* Interface with Lenny64's [http://flightgear-atc.alwaysdata.net flight plan data base], including in-game FPL retrieval, filing and editing
* In-app session announcement facility to post on Lenny64's popular ATC event page
* Ignore contacts


Solo game mode:
=== Strips ===
* Free combination choice of APP, TWR and DEP control positions for custom training
[[File:ATC-pie-screenshot-stripDetailSheet.png|thumbnail|The ATC-pie strip detail sheet]]
* Handovers to/from virtual ATCs
Your basic traffic flow and sequence working unit is the '''strip''', each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved across ''racks'' and ''bays'' until handed over to a different controller or shelved. Strip details can all be manually edited, and include:
* Instruction interface and pilot read back
* most importantly, the aircraft's ''callsign'', to be used on the radio;
* Adjustable difficulty (traffic density)
* information like aircraft type, airspeed, route... that can be provided by the pilots themselves when filing ''flight plans'';
* Departure–arrival and ILS–visual balance options
* transponder code and flight parameter assignments (heading, altitude/FL, air speed).
* Configurable runways in use, entry and exit points
 
=== Linking strips ===
Every strip can be '''linked''' to a flight plan and/or a radar contact. A linked strip will automatically:
* display its missing elements when available from the linked flight plan or aircraft transponder;
* populate the linked aircraft radar tag with useful details, e.g. assigned altitude.
Any detail mismatch between a strip and its linked elements will be reported for you to resolve.
 
=== Radar identification ===
[[File:ATC-pie-screenshot-radarIdentification.png|thumbnail|Radar identification: both matched strip and radar contact marked in blue]]
When using radar, ATCs can rely on different things to ''identify'' an aircraft and link the right contact to its strip. They can read an aircraft's callsign straight away if its transponder is squawking mode S, tell from reported positions, or use a transponder code.
 
For instance, say a transponder-equipped VFR traffic makes radio contact giving their callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for '''radar identification''' of aircraft–strip pairs such that:
* the strip is assigned a transponder code;
* no other strip is assigned the same code;
* the aircraft is the only unidentified traffic squawking that code in radar range.


GUI:
ATC-pie identifies such pairs automatically and reports them to you so you can properly link the two and get back to the pilot: "radar identified".
* Floatable, dockable and closable GUI panes: strips, radios, text chat, etc. (window layout saved)
* Notification system combining selectable sounds, status bar messages and a time-tagged history
* General and airport-specific settings and notepads saved on close and restored on restart
* Customisable colours


=== Radar and visual contacts ===
== Detailed feature list ==
Transponders:
* Full support and mode-dependant behaviour (off, A, C, S)
* Choice of simulated mode for non-equipped aircraft models
* Radar identification assistant (unique squawk link between radar pick-up and strip assignment detection)
* Individual and general cheat modes to override XPDR settings or reveal those turned off


Radar scope:
=== General ===
* Open multiple radar screens
Available session types:
* Custom radar background drawing and image display (e.g. to display real procedure charts)
* FlightGear multi-player network connections
* Variety of show/hide options for navigation points, vectors and route assignments, etc.
* Solo sessions (simulated IFR traffic)
* Quick point-to-point heading & distance measuring tool
* Teacher–student tutoring (teacher spawns and manipulates the traffic visible to the student)
* Custom text labels to annotate radar background


Tower viewing:
For all session types:
* Real-time rendering of the airport scene from tower viewpoint, available in all game modes
* Airport mode (for ATC positions such as TWR, GND, APP, DEP at a selected airfiled)
* Internally started (requires ''FlightGear'' installed) or through connection to an external instance
* En-route centre (free positioning of radar, no base airport or runway-related options)
* View controller pane and direct free look/zoom from the view
* Easy use of custom scenery and aircraft model addition/substitution


=== ATC management ===
Common data sources:
Strips, racks, flight plans:
* Airport and navigation data retrieved from [http://data.x-plane.com X-Plane] sources (whole world default file set included)
* Strip drag&drop along and across user-defined racks, with configurable colours
* Editable aircraft data base (ICAO designators, cruise speeds, WTC, etc.)
* Strip drop on neighbouring ATCs to hand over
* Radar background images and hand drawings (integrated EuroScope/[http://www.vatsim.net VATSIM]/IVAO .sct sector file import)
* Link strips to flight plans and radar contacts to merge editable details and inform radar display
* Ground elevation maps (can be generated automatically with a provided script)
* Conflicts between linked elements reported
* Real world magnetic declination lookup
* Work with local FPL copies and manage sync with online publication


Routes, vectors, conflicts:
GUI features:
* Route parsing and drawing
* Multiple window workspace (radar screens, strip racks and bays) saved by location
* Current leg and next waypoint display with geodesic calculations of headings and distances
* Floatable/dockable panels and toolbars (see [[:File:ATC-pie-screenshot-toolbars.png|screenshot]]) and layout save/restore
* Assign vectors and change routes with direct mouse gestures
* Customisable colours
* Anticipated route conflict warning and separation incident alarm
* Notification system combining selectable sounds, status bar messages and time-tagged history
* Visible mismatches between assigned vectors and picked up positions


=== Communications ===
Misc. tools:
Radio:
* Quick point-to-point heading and distance measuring tool
* [[FGCom]] integration, incl. echo test and possible use of externally running client
* Multiple weather station monitor
* ATIS recording with information letter and pre-filled preparation notepad
* Direct text annotation of radar screen
* Multiple and single frequency transmissions
* World airport, map navpoint and AD parking position browsing/indicating
* Frequency-specific sound level selection
* Aeronautical unit conversion calculator
* Custom alarm clocks with quick keyboard timer start
* General and location-specific notes and settings saved on close and restored on restart


Text chat:
=== ATC surveillance ===
* Custom preset message list and automatic line completion
Radar and transponders:
* Preset and custom text aliases for context-sensitive replacements
* SSR mode selection and primary radar activation
* Message history and single-click message recall
* Full transponder support and mode-dependant radar behaviour
* Hardcore communication sim possible by disabling unknown senders' callsigns
* Traffic identification assistant
* Runway occupation/incursion detection
* Position/track vs. assignment mismatch warning system


== Screenshots ==
Tower viewing for airport mode (requires FlightGear):
* Renders view of airport, aircraft, weather, time of day
* Internally started or through an externally running instance
* Control panel to orient/zoom view or follow aircraft
* Additional views can be connected (for multiple camera angles)


{{Gallery
=== Traffic management ===
|ATC-pie-screenshot-soloMode.png|Playing solo mode with three coloured racks
Strips and racks:
|ATC-pie-screenshot-towerViewing.png|Tower viewing, following a departing aircraft
* User-defined racks with configurable colours for linked radar contacts and ATCs to collect strips from
|ATC-pie-screenshot-radarIdentification.png|Radar identification marked in blue
* Strip auto-print for expected departures or arrivals
|ATC-pie-screenshot-LFPGcloseUp.png|Depiction of airport tarmac and objects
* Runway boxes with automatic RWY separation timers
|ATC-pie-screenshot-backgroundPixmapDrawing.png|Background image display
* Loose strip bays with customisable backgrounds
|ATC-pie-screenshot-backgroundHandDrawing.png|Hand drawing for LSGG procedures
|ATC-pie-screenshot-courseAndAssignmentsGraphics.png|All-in-one display of assignments
|ATC-pie-screenshot-separationRings.png|Horizontal separation rings
|ATC-pie-screenshot-routeConflictDetection.png|Route conflict warning
|ATC-pie-screenshot-stripDetailSheet.png|Strip detail sheet with editable route
|ATC-pie-screenshot-ATISdialog.png|ATIS recording feature with scrap notebook
}}


== Working principles ==
Routes, vectors, conflicts:
* World route suggestions, presets, analysis, radar drawing and world map view
* Convenient mouse input for vectors, taxi instructions and waypoint changes
* Current leg and next waypoint display with geodesic calculations of headings and distances
* Route/vector conflict anticipation and separation incident alarm
* Approach spacing hints for inbound sequences


=== General ===
Communications:
You are the air traffic controller, and players will connect to the network (or AI traffic be simulated in solo mode) with different types of aircraft and [[transponder]] equipment. As in real life, the radar is [http://en.wikipedia.org/wiki/Secondary_surveillance_radar SSR], hence will show you only (unless you cheat) what you pick up from on-board ''transponders'' in your range. That means:
* [[FGCom]] radio integration for multi-player and tutoring sessions (possible use of externally running client), incl. ATIS recording (see [[:File:ATC-pie-screenshot-ATISdialog.png|feature dialog]] with pre-filled preparation notepad), multiple frequency transmissions and monitoring, frequency-specific sound level selection
* If a transponder is off or on standby, you will not see the aircraft on your radar screen.
* Radio direction finding (RDF) and integration to radar
* If a transponder is on, you will at least be able to see its position and read the transponder code, possibly its altitude and even its type and callsign, depending on the mode set by the pilot.
* Controller-pilot data link communication (CPDLC)
* Public text chat in MP with preset messages, auto-completion, predefined and custom aliases for context-sensitive replacements, sender blacklist to filter out trolls


=== Strips ===
ATC coordination:
Your basic traffic flow and sequence working unit is the '''strip''', each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved along and across ''racks'' until handed over to a different controller or discarded. Strip details include:
* Private messaging with other ATCs (text "landlines")
* most importantly, the aircraft's ''callsign'', to be used on the radio;
* General ATC chat room
* information like aircraft type, airspeed, route... that can be specified by the pilots themselves when filing ''flight plans'';
* "Who has?" requests
* transponder code and flight parameter assignments (or vectors: heading, altitude/FL, speed).


=== Linking strips ===
=== Session environments ===
Strip details can be manually edited, but every strip can also be '''linked''' to a flight plan and/or a visible radar contact on the scope screen—a strip can only be linked to one flight plan and one radar contact. Linking to a strip will automatically:
FlightGear multi-player sessions:
* make the strip display the missing elements made available by the linked aircraft transponder or flight plan;
* Strip exchange: handovers with other ATC-pie and [[OpenRadar]] instances in range
* label the radar contact dot with the more informed linked details, e.g. assigned altitude.
* Weather: real world METAR retrieval
Any detail mismatch between a strip and its linked flight plan or radar contact will be reported for you to resolve.
* Flight plans: interface with [http://flightgear-atc.alwaysdata.net Lenny64's data base] (the ''de facto'' FG standard), incl. run-time retrieval, opening, closing, filing and editing (work on local copies and manage sync with online status)
* In-app announcement of ATC sessions on Lenny64's event page


=== Radar identification ===
Solo sessions (AI traffic):
To ''identify'' an aircraft and link the right radar contact to a strip, an ATC can rely on different things. He can read an aircraft's callsign straight away if its transponder has mode S turned on, tell from reported positions and altitudes, or use a transponder code. For instance, say a VFR traffic makes an initial radio contact giving his callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for '''radar identification''' of aircraft–strip pairs such that:
* Strip exchange: handovers to/from virtual ATCs
* the strip is assigned a transponder code;
* Weather: randomised
* no other strip is assigned the same code;
* Voice instruction recognition (with Sphinx)
* the aircraft is the only one squawking that code in radar range.
* Pilot read-back speech synthesis (with pyttsx)
* Airline choice and custom aircraft appearence
* Configurable airspace rules
* Adjustable difficulty (traffic density)


ATC-pie identifies such pairs automatically and reports them to you so you can properly link the two and get back to the pilot: "radar identified".
Tutoring sessions (teacher with student):
* Strip exchange: configurable ATC neighbours and handover supervision by teacher
* Weather: controlled by teacher
* Traffic snapshots and recall to repeat situations with the student


== Using ATC-pie ==
== Using ATC-pie ==
To download the program and learn more about how to use it, read the [[ATC-pie user guide]].


To download the program and learn more about how to use it, read the ATC-pie [[ATC-pie installation guide|installation]] and [[ATC-pie user guide|user]] guides. If you have a question, check the [[ATC-pie FAQ|FAQ]] for help or try the forum.
[[Category:ATC-pie]]
[[Category:ATC clients]]
[[Category:ATC clients]]
[[Category:Air Traffic Control]]

Revision as of 13:50, 22 March 2020

ATC-pie
ATC-pie logo
Tower viewing, following a departing aircraft
Tower viewing, following a departing aircraft
Developed by Michael Filhol
Initial release February 1, 2015
Latest release 1.6.4 (March 15, 2020)
Written in Python3
OS Any
Platform Qt5
Development status Active
Type ATC client
License GNU GPL v3
Website

ATC-pie is an air traffic control simulation program featuring:

  • solo sessions, incl. voice instruction recognition and pilot speech synthesis;
  • multi-player network connections through FGMS;
  • tutorial sessions for teacher supervision of an ATC student.

It can simulate en-route centre control (CTR) as well as airport-based services (TWR, APP, GND...), and allows 3D tower viewing through FlightGear. It is essentially designed for realism and simulates many tasks and situations of real-life ATC such as:

  • strip rack and sequence management;
  • radar monitoring and transponder identification;
  • handovers to/from neighbouring controllers;
  • routing and conflict anticipation;
  • flight plan filing and editing...

The program is free and open source, and programmed in Python3 for Qt5 hence system-independant. Only Python3 and its Qt5 bindings must be installed. That done, it is meant to work straight away, with no make/compile command to run or external resource to install. The whole world is immediately available on radar. Tower viewing requires the appropriate FlightGear aircraft and scenery.

Screenshots

Visit the ATC-pie screenshot category for more.

Working principles

General

You are the air traffic controller, working with or without a tower window or radar scope, depending on your position and local facility. Players will connect to the network (multi-player), AI traffic be simulated (solo), or student traffic generated and controlled by the teacher, all with different types of aircraft, transponder equipment and intentions.

As in real life if you use a radar, your main technology is SSR, hence unless you cheat or activate the primary radar, it will show you only what you pick up from on-board transponders in its range. This means:

  • if a transponder is off or out of range, you will not see the aircraft on your radar screen;
  • if a transponder is on and in range, you will at least be able to see its position and read the transponder code, possibly its altitude and even its type and callsign, depending on the mode set by the pilot and your radar capabilities.

Strips

The ATC-pie strip detail sheet

Your basic traffic flow and sequence working unit is the strip, each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved across racks and bays until handed over to a different controller or shelved. Strip details can all be manually edited, and include:

  • most importantly, the aircraft's callsign, to be used on the radio;
  • information like aircraft type, airspeed, route... that can be provided by the pilots themselves when filing flight plans;
  • transponder code and flight parameter assignments (heading, altitude/FL, air speed).

Linking strips

Every strip can be linked to a flight plan and/or a radar contact. A linked strip will automatically:

  • display its missing elements when available from the linked flight plan or aircraft transponder;
  • populate the linked aircraft radar tag with useful details, e.g. assigned altitude.

Any detail mismatch between a strip and its linked elements will be reported for you to resolve.

Radar identification

Radar identification: both matched strip and radar contact marked in blue

When using radar, ATCs can rely on different things to identify an aircraft and link the right contact to its strip. They can read an aircraft's callsign straight away if its transponder is squawking mode S, tell from reported positions, or use a transponder code.

For instance, say a transponder-equipped VFR traffic makes radio contact giving their callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for radar identification of aircraft–strip pairs such that:

  • the strip is assigned a transponder code;
  • no other strip is assigned the same code;
  • the aircraft is the only unidentified traffic squawking that code in radar range.

ATC-pie identifies such pairs automatically and reports them to you so you can properly link the two and get back to the pilot: "radar identified".

Detailed feature list

General

Available session types:

  • FlightGear multi-player network connections
  • Solo sessions (simulated IFR traffic)
  • Teacher–student tutoring (teacher spawns and manipulates the traffic visible to the student)

For all session types:

  • Airport mode (for ATC positions such as TWR, GND, APP, DEP at a selected airfiled)
  • En-route centre (free positioning of radar, no base airport or runway-related options)

Common data sources:

  • Airport and navigation data retrieved from X-Plane sources (whole world default file set included)
  • Editable aircraft data base (ICAO designators, cruise speeds, WTC, etc.)
  • Radar background images and hand drawings (integrated EuroScope/VATSIM/IVAO .sct sector file import)
  • Ground elevation maps (can be generated automatically with a provided script)
  • Real world magnetic declination lookup

GUI features:

  • Multiple window workspace (radar screens, strip racks and bays) saved by location
  • Floatable/dockable panels and toolbars (see screenshot) and layout save/restore
  • Customisable colours
  • Notification system combining selectable sounds, status bar messages and time-tagged history

Misc. tools:

  • Quick point-to-point heading and distance measuring tool
  • Multiple weather station monitor
  • Direct text annotation of radar screen
  • World airport, map navpoint and AD parking position browsing/indicating
  • Aeronautical unit conversion calculator
  • Custom alarm clocks with quick keyboard timer start
  • General and location-specific notes and settings saved on close and restored on restart

ATC surveillance

Radar and transponders:

  • SSR mode selection and primary radar activation
  • Full transponder support and mode-dependant radar behaviour
  • Traffic identification assistant
  • Runway occupation/incursion detection
  • Position/track vs. assignment mismatch warning system

Tower viewing for airport mode (requires FlightGear):

  • Renders view of airport, aircraft, weather, time of day
  • Internally started or through an externally running instance
  • Control panel to orient/zoom view or follow aircraft
  • Additional views can be connected (for multiple camera angles)

Traffic management

Strips and racks:

  • User-defined racks with configurable colours for linked radar contacts and ATCs to collect strips from
  • Strip auto-print for expected departures or arrivals
  • Runway boxes with automatic RWY separation timers
  • Loose strip bays with customisable backgrounds

Routes, vectors, conflicts:

  • World route suggestions, presets, analysis, radar drawing and world map view
  • Convenient mouse input for vectors, taxi instructions and waypoint changes
  • Current leg and next waypoint display with geodesic calculations of headings and distances
  • Route/vector conflict anticipation and separation incident alarm
  • Approach spacing hints for inbound sequences

Communications:

  • FGCom radio integration for multi-player and tutoring sessions (possible use of externally running client), incl. ATIS recording (see feature dialog with pre-filled preparation notepad), multiple frequency transmissions and monitoring, frequency-specific sound level selection
  • Radio direction finding (RDF) and integration to radar
  • Controller-pilot data link communication (CPDLC)
  • Public text chat in MP with preset messages, auto-completion, predefined and custom aliases for context-sensitive replacements, sender blacklist to filter out trolls

ATC coordination:

  • Private messaging with other ATCs (text "landlines")
  • General ATC chat room
  • "Who has?" requests

Session environments

FlightGear multi-player sessions:

  • Strip exchange: handovers with other ATC-pie and OpenRadar instances in range
  • Weather: real world METAR retrieval
  • Flight plans: interface with Lenny64's data base (the de facto FG standard), incl. run-time retrieval, opening, closing, filing and editing (work on local copies and manage sync with online status)
  • In-app announcement of ATC sessions on Lenny64's event page

Solo sessions (AI traffic):

  • Strip exchange: handovers to/from virtual ATCs
  • Weather: randomised
  • Voice instruction recognition (with Sphinx)
  • Pilot read-back speech synthesis (with pyttsx)
  • Airline choice and custom aircraft appearence
  • Configurable airspace rules
  • Adjustable difficulty (traffic density)

Tutoring sessions (teacher with student):

  • Strip exchange: configurable ATC neighbours and handover supervision by teacher
  • Weather: controlled by teacher
  • Traffic snapshots and recall to repeat situations with the student

Using ATC-pie

To download the program and learn more about how to use it, read the ATC-pie installation and user guides. If you have a question, check the FAQ for help or try the forum.