World Traffic
World Traffic
World Traffic
Concept by Francesco Missarino of Aircraft3D and Greg Hofer of Classic Jet Simulations. Software
developed by Classic Jet Simulations.
Credits:
Austin Meyer – for X-Plane and permission to use modified version of X-Plane aircraft with World Traffic.
Sandy Barbour and Ben Supnik – for the X-Plane SDK and answering all of my questions.
Brett Sumpter – for permission to use the Bell 206.
Capt. Jens E Borberg - for the Bell 412 SP.
Tiago Ribeiro – for the most excellent Flight Plan editor (still in progress).
Thanks to all the beta testers, especially Anton Goldmann and James Gillies for their extensive testing help.
Thanks to BlueBell and Chopinet for all their help during testing version 2.0 and support with aircraft and
ground routes.
1 Introduction
World Traffic is an application designed to fill the skies and taxiways of your favourite airports with
lots of planes. You can even land and sea traffic. Flight paths are defined through flight plans which
are simple to create by specifying the aircraft in the flight, some flight parameters, and the steerpoints
that the aircraft will follow. Arrivals and departures are controlled by World Traffic based on wind and
aircraft type info so that aircraft will land and takeoff from suitable runways.
Flight Plans
• Random Flight Plan Generator to create hundreds of flight plans for your favourite airports.
• User-defined flight plans to specify the flight path of an aircraft or a formation of aircraft.
• Flight plans can be for air (including helicopters), ground, or sea traffic.
• Selectable departure types for normal takeoffs or vertical departures if the aircraft thrust:weight
ratio is sufficient and the first flight plan waypoint is high enough to warrant a vertical
departure.
• Selectable arrival types for straight-in approaches, overhead breaks, or low approaches.
• Settable start times specified in zulu time or instant start meaning the flight will start as soon as
X-Plane starts.
• Various formation configurations.
• Formation joinups after takeoff.
• Settable altitudes for each steerpoint in the flight plan where altitude can be in feet above sea
level or feet above ground level for terrain following flights.
• Flight plans can be defined for specific aircraft tail numbers so that a specific aircraft can be
defined to follow a multi-leg route.
Ground Routes
• User-defined ground routes to specify specific parking locations for aircraft.
• Ground routes can be specific to a general type of aircraft, a type of aircraft, or a specific tail
number so you can have planes park in the parking spots you want.
• Runway intersections are defined in ground routes to specify hold lines and to determine when
planes are on or crossing runways.
Flight Model
• Simple flight model using aerodynamics and ballistics equations from the NASA web site to
provide a flight models accurate enough so that you can follow the World-Traffic controlled
aircraft. You can define drag coefficient, cross-sectional area, and thrust to tune aircraft
performance.
• Wind and turbulence affect aircraft so that they will bounce around in turbulence and crab into
the wind in flight.
• Afterburner thrust is settable so afterburner-equipped aircraft can accelerate quickly when
required, perform vertical departures, and fly supersonic.
• Larger aircraft have slower roll rates and pitch rates compared to smaller aircraft.
• Angle of Attack (AOA) increases as speed decreases and flap deployment will decrease AOA.
Cruise AOA and landing/takeoff AOA can be specified for each aircraft to give reasonable AOA
through the aircraft's speed range.
Note: If you are using X-Plane 9.7, delete or rename AIplane.acf in the X-Plane/Aircraft/Classic Jet
Simulations/World Traffic folder. Then rename AIplaneXP9.acf to AIplane.acf.
2.2 Activation
After you install the WorldTraffic application, it will run in evaluation mode which only allows the
plugin to run 15 flight plans. After you purchase it, you will be e-mailed a key file called
WorldTrafficKey.txt. The file goes into your X-Plane/Resourse/Plugins/WorldTraffic folder.
2.3 Support
If you have any questions about the plugin or need help, please contact me by e-mail at
greg@classicjetsims.com ... You may also check out the support forum at X-Plane.org located here:
http://forums.x-plane.org/index.php?showforum=176
3 Setup
With X-Plane running, select the Settings – Joystick & Equipment menu. From that menu, click the
Keys tab on top. Click the Add New Key Assignment box in the bottom-middle of this window to
setup the first WorldTraffic key as shown below:
Now, click on the new button labelled <NONE> on the bottom-left of the window if it is not already
highlighted in green. Press the key that you want to associate with the WorldTraffic function you are
currently configuring. The <NONE> text will get replaced by the key that you press.
A function selection box is now available in the top-right of this window with a default selection of
“sim/none/none”. Click on the box to the left of that text. A new window will appear as shown below:
Illustration 3: World Traffic Custom Key Setup
Click on the cjs folder and then the world traffic folder to expand the options. You will see a list of
key functions available from the WorldTraffic application. Click the function that you want to assign to
your new key and click the Open button to complete the assignment. Repeat this procedure for each of
the key functions.
4 How Does it All Work
This section describes how a flight works from end to end. The subsequent sections in chapter 5
describe the file formats in detail that are referenced in this section.
4.1 Initialization
When X-Plane is started and World Traffic is initialized, it looks through all of the active route files in
the enabled regions and determines which flights are in progress and which flights have ended based on
the start times of the flights as defined in the flight plans, the speeds, and the route distance. For flights
that are in progress, it will determine about where the flight should be and place the aircraft in flight at
the calculated position, speed, and altitude. If it is determined that a flight is on approach, it will place
the aircraft somewhere in the middle of a STAR approach if defined for that airport and if the aircraft
has a FMS. If it is determined that a flight has landed, it will find a suitable unused ground route for
the aircraft and place the aircraft on the ground route's parking spot.
The Flight Plans can all be found in the X-Plane/ClassicJetSimUtils/WorldTraffic/RouteFiles folders
with the region name being identical to one of the sub-folders here. See Appendix A1 – Flight Plan
File Format for a description of the flight plan file format and section 5.1 Region for a description on
regions.
4.6 Arrivals
If an aircraft has a FMS, it will start looking for a STAR when getting close (50Nm to 120Nm) of its
destination. The aircraft will be assumed to have a FMS if not a light prop. This can be overridden in
the aircraft definition file. For aircraft without a FMS, it will start looking for a Custom Arrival when
getting close to its destination. If more than one STAR exists, it will select a STAR entry point closest
to its current position. STARs may be entered mid-way through as well. If a suitable STAR is found, it
will be loaded. If the the preference “Ground Routes Required for Arrival Runways” is set to ON,
aircraft will only use arrival runways with ground routes if they exist. If no ground routes exist, then
any runway of suitable length can be used.
For any out and back flight where the departure and arrival airports are the same, a STAR or Custom
Arrival will only be searched for on the last leg of the route. If no STAR or Custom Arrival is defined
for the airport, an automatic arrival is calculated for the aircraft which simply points the aircraft to a
suitable arrival runway with the final approach point being between 1 to 7 Nm from the runway
depending on aircraft size.
During the arrival phase of flight, World Traffic tries to provide separation between arriving aircraft.
Each aircraft's arrival time onto a runway is continuously calculated. If an aircraft's arrival time is less
than 90 seconds behind another aircraft's arrival time, it will be requested to slow down. It will also
consider distances between arriving aircraft for aircraft not heading for the same runway. Again if it
determines that if an aircraft in front is less than 90 seconds in front, the aircraft will be asked to slow
down. Finally, an aircraft may asked to continue on its current heading where the STAR waypoint is of
type VECTORS if the aircraft's arrival time is too close to the aircraft in front of it.
STARs are provided with the included Navigraph data and are found in the
Xplane/ClassicJetSimUtils/NavigraphData folder with the file being named after the airport. The user
may also define custom arrivals for airports in the same file using the special section for Custom
Arrivals. These are useful for flights in mountainous areas where a complex arrival route may be
required to provide terrain avoidance.
4.6 Landing
Once an aircraft has landed, it will try and find an Arrival Ground Route for the aircraft. If no ground
route file is found, the aircraft will disappear once coming to a stop on the runway.
Arrival ground routes are all found in the
XPlane/ClassicJetSimUtils/WorldTraffic/GroundRoutes/Arrival folder with one folder existing for each
airport. See Appendix A2 – Ground Route File Format for a description of the Ground Route file
format.
5 World Traffic Files and Folders
5.1 Region
Note that the file containing the enabled/disabled status of the regions is called
WorldTrafficRegions.prf and is written to the X-Plane/Output/preferences folder. Deleting this file will
disable all regions which may be necessary if you are trying to load too many regions and are having
memory problems running the 32 bit version of X-Plane.
A region is a folder under the X-Plane/ClassicJetSimUtils/WorldTraffic/RouteFiles folder. It is where
all of the flight plans are stored. The purpose of having separate region folders is to help organize your
flight plans. A region can be an airport, a state or province, or a country, whatever size that gives you a
manageable number of flight plans. It may also be used if you want to create set of flight plans for
planes of different eras. For example you could have one region with flight plans for modern aircraft
and another region with flight plans for historic aircraft and the disable the region not in use.
Having the option to enable and disable regions will also optimize the operation of the application. It
will improve the start time and reduce memory usage. There is no point in having a region enabled for
an area in Australia if you are flying in the U.S. and don't plan on flying there.
One important thing to note is that you may put identical flight plans in more that one region folder.
For example, you may have a flight plan defined for a flight from KLAX to KSEA. If you have region
folders for KSEA and KLAX, you can put this flight plan in both of those folders. Only one copy of
the flight plan will get loaded. The purpose of this is that if you are flying from KSEA to the eastern
U.S., you can disable the KLAX region. The flight plan from KSEA to KLAX will still get run since
it's in the KSEA region folder but all other flight plans in the KLAX folder will not get run. Again this
saves loading time and memory usage. This is the recommended method of using the application
especially when you have lots of flight plans defined.
5.7.1 OPERATIONS
This section defines the various modes of operation based on wind speed/direction and time of day.
Associated with the the mode of operation will be a set of runways that will be in use which is defined
in another section.
INDEX Low Wind Speed High Wind Speed Low Wind Dir High Wind Dir Time Time Comments (not parsed)
---------------------------------------------------------------------------------------------------------------------
START_OPERATIONS
0 0 5 0 360 00:00 24:00 East Ops A
1 5 1000 183 3 00:00 24:00 East Ops B
2 5 1000 3 183 00:00 24:00 West Ops
END_OPERATIONS
The “INDEX” field must be unique starting from zero. In this example, operation “0” (East Ops A) is
in effect when the wind is from 0 to 5 knots in any direction during all times of the day. Operation “1”
(East Ops B) is in effect when the wind is above 5 knots on a heading of 183 degrees to 3 degrees with
the wind direction moving clockwise. Operation “2” (West Ops) is in effect when the wind is above 5
knots on a heading of 3 degrees to 183 degrees.
5.7.2 RUNWAY_OPS
This section specifies which runways are in use for takeoff and arrival for each unique operation
defined above.
Ops 1 2 Start End
Index Active Runway Arr Dep Time Time Comments (not parsed)
-----------------------------------------------------------------------------------------------------
START_RUNWAY_OPS
0 28 1 00:00 24:00 East Ops A
0 28 2 00:00 24:00
1 28 1 00:00 24:00 East Ops B
1 28 2 00:00 24:00
2 10 1 00:00 24:00 West Ops
2 10 2 00:00 24:00
END_RUNWAY_OPS
The “Ops Index” field corresponds to the “INDEX” field in the OPERATIONS section above. For
Operation “0” and Operation “1”, runway 28 is configured as the runway for both arrival and departure
during all times of the day. For Operation “2”, runway 10 is configured as the runway for both runway
and departure during all times of the day.
5.7.3 RUNWAYS
Supported AC Types Supported Approaches Final Approach Final Approach
Runway 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 Angle Distance Nm
-----------------------------------------------------------------------------------
START_RUNWAYS
10 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 5.5 3.4
28 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 5.5 3.4
END_RUNWAYS
Final Approach Angle and Final Approach Distance fields should normally be left blank so that the
default values are used. You can set these for airports where the final approach requires a steeper
descent angles in case there is terrain blocking the runway for example. The valid values for
Final approach angle are between 2 and 12 degrees. The valid values for final approach distance are
between 1 and 5 nautical miles.
5.8 SIDs, STARs, Custom Approaches, and Custom Departures
These files while not required can be used to route planes on specific SID/STAR approaches or other
custom routes that may be required for flights into mountainous areas where the automatically-
calculated approaches and departures are not adequate. Data specific to World Traffic can be purchased
from the Navigraph web site here:
https://www.navigraph.com/
A SID is a Standard Instrument Departure. All departing aircraft with a FMS will follow a SID if
available.
A STAR is a Standard Terminal Arrival Route. All arriving aircraft with a FMS will follow a STAR if
available.
The aircraft will be assumed to have a FMS if not a light prop. This can be overridden in the aircraft
definition file.
The SID/STAR data is provided in xml format with the included Navigraph data and is found in the
Xplane/ClassicJetSimUtils/NavigraphData folder with the file being named after the airport. Do not
add custom approaches or departures to the Navigraph data as these files are maintained by Navigraph
so can be overwritten at any time. You may change the specific attributes though to set enable or
disable a route or set the time of operation. Navigraph data may not be shared or distributed
amoug users.
Custom Arrivals and Departures are used by aircraft without a FMS or by aircraft with a FMS if no
SIDs or STARs are defined. The custom approach/departure data is found in the
Xplane/ClassicJetSimUtils/CustomAirportRoutingData folder. The user may edit these files to define
custom approaches and departures. For examples of Custom Arrivals and Custom Departures, look at
the included LOWI.xml file. Any custom data can be shared among users as long as the files don't
contain any routing data provided by Navigraph.
The Navigraph files specify a single route using latitude and longitude coordinates, speed limitations,
and altitude limitations. Published SID/STAR diagrams often show a path to all runways. The
Navigraph data breaks the SID/STAR into separate routes for each runway in these cases. Here is an
example of a STAR for Vancouver (CYVR) for the Canuck Arrival Procedure for runways 8R and 8L.
You can see a bigger image online here:
http://www.classicjetsims.com/images/CanuckArr.png
You can view the raw xml file for CYVR by opening the file
XPlane/ClassicJetSimUtils/NavigraphData/CYVR.xml. If you double-click on it, it will probably open
in your web browser. You can also open it in a text editor. To see if most easily, open it using an online
xml editor/viewer, such as this one: http://xmlgrid.net/
In xmlgrid, select the file to open and click the submit button to open the file. Clicking on any of the
black triangles will expand the node to see more data. To look at the Canuck approach, click on the
triangles to open the ProceduresDB / Airport / Star path which should give you a list of all STARs.
There are columns next to the STAR name that provide the following information:
• Runways – the runways that the STAR should be applied to. This can be a comma-delimited
list, or can be set to All for all runways.
• JetsOnly – the data from Navigraph has this field defaulted to false. It can be edited by the user
if it is determined that the approach should only be used by jets.
• PropsOnly – the data from Navigraph has this field defaulted to false. It can be edited by the
user if it is determined that the approach should only be used by propeller aircraft.
• Enabled – this can be set by the user to disable an approach
• StartTime/EndTime – these values can be set by the user to make an approach only available
during certain hours.
• Comments – not used by the application at this time.
Now click on the triangle next to the CANUC3.08L “Star_Waypoint” section to see all of the
waypoints for this approach. You'll see a form like the one below, and again here is a larger image if
that is too small to see:
http://www.classicjetsims.com/images/CanuckArrNavigraph.png
You'll see that the Name field corresponds to the waypoint name on the chart. The lat/lon coordinates
are provided.
Altitudes are left blank in the file unless there is a restriction to follow. On the chart you'll see that at
VITEV, there is an altitude listed of 21,000 feet (FL210). There is a line above it which means that you
must be below this altitude. If the line were below that altitude, you'd have to be above it. If there was
a line above and below that altitude, you'd have to be at that exact altitude. In this case, we have to be
below that altitude so the “AltitudeRestriction” field in the file is set to “below”.
Speeds are also left blank unless there is a restriction to follow. On the chart you'll see that at
LANINE, there is a speed listed as 250 knots. You must be at this speed or slowed during the
approach. You must also be at an altitude between 10,000 and 14,000 feet.
The second last waypoint is just shown as VECTORS with the Type field set as “Vectors”. This
indicates that ATC will send you out on the specified heading which in this case is 263 degrees until
you are able to turn to the last waypoint EMKAM.
World Traffic will parse this file and have the aircraft arrive following this route and following the
altitude and speed restrictions. For the VECTORS waypoint, the plane continues on its heading until
the arrival ETA on the runway fits into a slot with other arriving aircraft allowing 90 seconds of
separation at a minimum.
In the above example aside from the Vectors waypoint, all other waypoints are of type Normal in which
case the aircraft flies directly to that waypoint. There are other types as well as described below:
Waypoint Types:
• Normal – fly to the specified waypoint
• Vectors – fly on the specified heading until traffic separation requirements are met to proceed to
the next waypoint and to continue the approach.
• Intc – fly on the specified heading until intercepting the specified radial from a give location
• ConstHdgtoAlt – fly on the specified heading until reaching the specified altitude
• VorRadialIntc – same as Intc
• DmeIntc – fly on the specified heading until reaching the specified distance from the specified
location.
6 World Traffic Operation
This section describes how to use the menu structure and what the various functions do.
One thing to note is that bringing up this menu will close the ATC menu and bringing up the ATC menu
will close the Key Command menu. It is not possible to have both menus function at the same time
since it's not possible to determine what menu the user's key presses are destined for.
6.2.1 Display Flight Info
Press the Enter key with the cursor on the top line to go to the Flight Information window. A window
now appears as shown below:
This window shows a list of all enabled flight plans defined along with the Flight Plan Identifier
number which may be used to correlate the flight plans in this window with the specific Flight Plan
Identifier shown for the aircraft when using the Track Camera . The first flight is always the “user”
flight. This is information about the plane the user is currently flying in X-Plane. Other flight plans
are shown in green, blue, and red. Plans shown in blue indicate that the plane/s in the flight are
currently moving. Plans shown in green indicate that the plane/s in the flight are currently parked.
Plans shown in red indicate that the flight plan defined is invalid or incomplete. Use the up and down
arrows to scroll though the list. At the bottom of the display in white, is information on the currently
selected flight plan. Information includes the following:
• Flight Plan Name – Name of the file including the sub-folder name which can be found in the
ClassicJetSimUtils/WorldTraffic/RouteFiles folder.
• Speed – Speed of the aircraft in indicated airspeed, true airspeed, ground speed, and Mach.
• Altitude – Altitude of the aircraft in feet above sea level
• Heading – Heading of the aircraft in degrees true.
• Position – Position of the aircraft in latitude/longitude decimal coordinates.
• Waypoint Info – The last waypoint in the waypoint list that the plane has passed. The waypoint
list will either be the flight plan, the ground route file, or intermediate waypoint lists the plane is
given for approach waypoints, takeoff waypoints, holding pattern waypoints, or overshoot
pattern waypoints.
• Waypoint Distance – The distance in Nm to the next waypoint.
Pressing the Enter key on a flight information window will cause the track camera to display that
aircraft if the aircraft is in a valid state and in range of the user (10 to 80 Nm depending on what the
user has the track camera display range set to).
Illustration 6:
Enable/Disable Regions
Regions shown in red are disabled. Ones shown in green are enabled. Pressing the Enter key will
toggle the state between enabled and disabled.
6.2.3 Preferences
Use the up and down arrow keys to change the maximum draw distance. This distance specifies the
maximum distance away from the user's aircraft that World Traffic will draw aircraft. The value can be
between 10 and 80 Nm. Aircraft outside this range are not drawn but their position is still updated once
a second.
AI Aircraft Volume
If you wish to change the engine volume of the aircraft, controlled by World Traffic, use the up and
down arrow keys in that menu to change the volume as desired.
A stick plane will be drawn on the X-Plane showing showing the location of closest 20 planes. The
plane used is a generic stick plane that you installed in section 2.1 Installation.
If this option is set, only runways that have ground routes defined for the landing aircraft will be used.
If no ground routes are defined, then any runway of suitable length may be used for arriving aircraft.
If this option is set, it will cause aircraft to appear and takeoff on a departure runway if no ground route
files are available, suitable (eg. correct aircraft type), or defined for the departure airport. If the option
is turned off, aircraft will only depart if suitable ground route files are found for the airport.
If this option is set, aircraft will try and not run into each other. This only applies to aircraft
approaching other from behind. For aircraft approaching head-on, they will not stop for each other as
they have no way of going around each other. Ground collision avoidance may be disabled to resolve
deadlocks if they should occur.
Every once in a while aircraft may end up in a deadlocked state if there is lots of ground traffic, where
no aircraft are able to move. After an aircraft is stopped, due to ground conflicts a timer will start
which is equal to that set in this menu. When the timer expires, the stopped aircraft will ignore
conflicting ground aircraft for 25 seconds. This should resolve deadlock issues.
In the top-left of the radar window, you can enter the 3 or 4-character code of the airport you are
interested in, in upper or lower case. Note that you can only enter an airport for which there is a loaded
flight plan to or from as WorldTraffic only knows about these airports. You also should normally select
an airport within 80Nm of your current position. Beyond this range, aircraft positions are only
calculated periodically.
The radar range may be selected by checking one of the boxes for 10, 20, 40, or 80 Nm.
On the top left of the radar display are three fields:
• AIRPORT: The selected airport at the center of the display.
• RANGE: The range selected from one of the range check boxes.
• OPERATIONS: The number corresponding to what airport operations are in effect if there is an
airport operations file defined for the selected airport. Otherwise this will display N/A.
Reading the Aircraft Data:
• Aircraft highlighted in blue are arriving at the airport you have selected.
• Aircraft highlighted in green are departing the airport you have selected
• An aircraft highlighted in red is one that you have clicked on. Clicking the Track Camera
button on the top right of the window will activate the track camera for this aircraft if it's within
80 Nm of the user. Clicking an aircraft again will toggle the information text above the aircraft
or below it.
• The aircraft symbol is representative of the aircraft type. A big fat aircraft symbol represents
and heavy or super-heavy aircraft. A cool looking F-18 symbol represents any fighter aircraft.
• The aircraft text is decoded as follows:
• The text on the top left is the aircraft callsign, eg. UA719. The aircraft callsign is read
from the flight plan. If not defined in the flight plan, the callsign is derived from the
Operator IATA code and using a random number inside the flight plan number range
defined in the aircraft definition file.
• The text in the top middle is the aircraft name as read from the aircraft definition file.
• The number on the top right is the flight plan number which can be correlated against
that displayed in the Flight Information window or in the Track Camera information.
• The number on the bottom-left is the aircraft's Flight Level (altitude divided by 100
feet).
• The number on the bottom right is the aircraft's speed in knots indicated.
6.4 Air Traffic Control (ATC)
This menu allows the user to interact with the World Traffic Air Traffic Controller that routes its own
planes around the X-Plane skies. The user aircraft is treated as just another aircraft by the plugin and it
will perform routing functions and runway allocation and deallocation. The interface is simple and
allows for STAR and visual approaches and SID departures. Pressing the key function that you defined
in section 3 Setup brings up the ATC menu which gets displayed in the top-center in X-Plane.
One thing to note is that bringing up this menu will cause the Key Command menu if open to lose
focus and bringing up the Key Command menu will close the ATC menu will cause the ATC menu to
lose focus. The window with focus has a black border drawn around the perimeter. The window in
focus will be the one processing the user's keystrokes.
The ATC menu is context sensitive and has several states. When you call it for the first time on the, it
will ask you for your aircraft information. Also note, that ATC will only be operative for airports that
you have flight plans defined for as these are the only ones that World Traffic is concerned about.
Note that if you missed an ATC command, you can use the previous ATC command key which you
defined during setup. This will display the last command given to you by ATC as well as ATC's current
state.
The ATC state machine is defined in the following sections. Note that the state machine will not rely
on the user following procedure so will transition to whatever state is most applicable. For example if
the user requests taxi to an active runway, but then takes off without clearance, ATC will transition to
an in-air state once the user's plane in airborne.
If you are following a ground route, a list of taxiway names to follow will be displayed. The SID that
you will be following is also displayed in case you want to program your FMS now.
If the user's plane is en-route, ATC will transition to the ATC_ENROUTE_STATE and wait for user
input.
If the user cancels takeoff, ATC will transition back to the Idle state. If the user says they are holding
short, ATC gets quite busy. If there is a plane on final approach to 16L, ATC will display the below
message and transition to the state “Wait for no plane on final”:
If there is another plane further down the runway, this message will be displayed and ATC will
transition to the state “Wait for no plane on runway”:
KSEA to N199UA – Taxi to position 16L and hold
If there is no plane on the runway, the takeoff runway is allocated and this message will be displayed
and ATC will transition to the state, “Wait for user takeoff”:
KSEA to N199UA – Cleared for takeoff 16L
You can now program the STAR into your FMS and ATC will also give you vectors along the
approach.
When the approach type is selected, ATC will transition to a state, “Display Approach Directions”.
ATC will allocate the approach runway for your aircraft keeping other planes safely away from you.
After the initial approach clearance, you will receive steering directions such as this
Turn right to heading 040
Descend to 1500
Slow to 220
When the user aircraft has reached the final approach fix, ATC will transition to the “Display Landing
Directions” state.
From this state, ATC transitions to the “Wait for User Landed” state.
Aircraft types are also given the runway classifications that they are allowed to land on. They
will first try and pick their runway class or higher and if they can’t find one, they will try and
pick a runway with one classification lower. If none is found (or if the crosswind is too high),
they will probably circle for ever. Aircraft types use the following runway classifications as
follows:
AIRCRAFT_TYPE_FIGHTER - 1
AIRCRAFT_TYPE_SUPER_HEAVY_JET – 1
AIRCRAFT_TYPE_HEAVY_JET- 1
AIRCRAFT_TYPE_LARGE_JET – 2
AIRCRAFT_TYPE_LARGE_PROP – 3
AIRCRAFT_TYPE_MEDIUM_JET – 2
AIRCRAFT_TYPE_MEDIUM_PROP – 3
AIRCRAFT_TYPE_LIGHT_JET – 2
AIRCRAFT_TYPE_LIGHT_PROP – 4
So a fighter jet will try and land on a runway that is 8900 feet or longer. If none is found it will
try and find a runway between 6900 and 8900 feet. For the C-130 (MEDIUM_PROP), it will try
and find runways 4700 to 6900 feet of length or longer and if none found, it should will be
happy with a runway less than 4700 feet in length.
6.6 Airport Definition File and Random Flight Plan Generation
To open the Airport Definition window, select the World Traffic option from the X-Plane Plugins
menu as shown below:
Selecting that option will bring up the Airport Definition Selection window as shown below:
You may add a new airport for editing by typing the airport name next to the Add Airport Definition
button and then clicking that button. The airport name must be entered in upper case letters and must
be the name of an existing airport existing in the main X-Plane apt.dat airport database. The
application does not yet read airports from custom scenery packages.
The Delete Selected Airport option is currently not functional but you may delete the airport definition
manually by deleting the airport definition file found in the
XPlane/ClassicJetSimUtils/WorldTraffic/Airports folder.
You may select an airport to edit by clicking on an airport name in the left selection window and then
clicking the Edit Selected Airport option. That brings up the main Airport Definition window as
shown below:
This window is used to setup the types of aircraft flying in and out of the selected airport as well as the
connecting airports. Random flight plans can then be created based on the data filled in.
Zulu Offset Hours
X-Plane time is in Zulu or UTC time. For this field enter the offset time for the airport being edited. If
you are not sure of the offset, this web site has a list of them:
http://www.timeanddate.com/library/abbreviations/timezones/military/z.html
Valid values are between +12 and -12 hours. Times west of Greenwich have negative offsets and time
east of Greenwich have positive offsets.
Airport Classification
This is only used to determine if an airport is a military airport or a civil airport. If a military airport,
arriving planes may use the overhead break arrival pattern and departing fighter aircraft may perform
vertical departures. In the next update, classification will also be used to route military and civil
aircraft to appropriate airports. Airports will also be matched by corresponding operators for
connecting airports in the next version.
NOTE: These values may be overwritten be editing the file “GeneratorConfig.txt” in the “X-
Plane/ClassicJetSimUtils/WorldTraffic” folder.
Aircraft Type Min Range (Percentage Min Runway Length Chance of out
of Aircraft Range) at Home and and back flight
Connecting Airports
Fighter 15.00% 7000 ft 80.00%
Super-Heavy (Civil) 9.00% 7500 ft 0.00%
Super-Heavy (Military) 5.00% 7500 ft 40.00%
Heavy (Civil) 7.00% 7000 ft 0.00%
Heavy (Military) 4.00% 7000 ft 40.00%
Small/Light Jet (Civil) 15.00% 5000 ft 0.00%
Small/Light Jet (Military) 15.00% 5000 ft 50.00%
Medium/Small Prop (Civil) 15.00% 3500 ft 0.00%
Medium/Small Prop (Military) 15.00% 3500 ft 60.00%
Light Prop (Civil) 15.00% 2000 ft 50.00%
Light Prop (Military) 15.00% 2000 ft 80.00%
In addition to the above criteria, there are some extra criteria for Super-Heavy and Heavy aircraft.
These aircraft are required to fly to big airports only. A big airport is defined simply as one having 2 or
more runways.
Flights that are one-way are split evenly between either originating from the home airport and flying to
the connecting airport, or originating from the connecting airport and flying to the home airport.
If either of the range or minimum runway length requirements can not be met for any connecting
airport, the flight plan will not be generated.
Out-and back flights are set to average between 45 minutes and 2 hours.
A flight plan is a file defining the path of an aircraft, vehicle or boat. It specifies the aircraft in the
flight, and the flight characteristics. The flight plan files go in any of the region folders under the
XPlane/ClassicJetSimUtils/WorldTraffic/RouteFiles folder. Note that the flight definition commands
as described below can be defined in any order in the file. Several commands are optional.
A) Start Time
Specify the start time as follows:
STARTTIME
HH:MM TimeIntervalHours (Optional)
ENDTIME
Where the time is in entered in Zulu time. Set this value to -1 if you wish the flight to start
immediately as soon as the plugin starts. If the optional time interval is set and the time is not set to -1,
flight plans will be cloned using the start time and adding the time interval to generate flights for a day.
If the time interval is 1.0 hours, for example, 23 flights will be generated for the day at 1 hour intervals.
The minimum value for the time interval is 0.25 hours (15 minutes) and the maximum value is 23.75
hours.
Where the days are 0 to 6 with 0 being Sunday. One or more days can be entered in this section.
Where AircraftNameN is the name of one of the available aircraft in the AircraftTypes folder and where
TailNumber is an optional tail number of the aircraft. Enter up to 4 aircraft if you want a formation
flight.
D) Callsign (optional)
The callsign entered in the flight plan will be used on the radar display. It is recommended for airliner
flights that this be set to the flight number for the aircraft, eg. UAL1022 for United Airlines flight 1022.
For civilian aircraft, it can be set to the aircraft's tail number and for a military flight, they often have
cool names like Hammer or Viper or whatever you think sounds typical. If no callsign is set here, the
callsign will be derived using the operator ICAO code and the flight plan range as defined in the
aircraft definition file.
STARTCALLSIGN
callsign
ENDCALLSIGN
Where AirportId is the 4 letter airport identifier as defined in the X-Plane airport database. If the
departure airport is defined, the plane will take off from this airport if it can find a suitable departure
ground route file. If the departure airport is not defined, the plane will start in flight at the position
defined in the first steerpoint.D) Arrival Airport
The arrival airport is defined as shown below:
STARTDESTAIRPORT
AirportId
ENDDESTAIRPORT
Where AirportId is the 4 letter airport identifier as defined in the X-Plane airport database. If the
arrival airport is defined, the plane will attempt to land at this airport if it can find a suitable runway. If
no suitable runway is found, in the case where it is in use by another plane, or if the airport does not
have a runway long enough, the plane will enter a holding pattern. Once the plane has landed, it will
try and find a suitable ground route to a parking spot. If none are available or not defined, the plane
will disappear once it comes to a stop.
F) Departure Type (optional)
The departure type can be defined as follows:
STARTDEPARTTYPE
DepartureType
ENDDEPARTTYPE
I) Fly To Completion
Normally for a one-way flight, the aircraft will start searching for a STAR approach within 50 to 100
Nm of the destination airport. If you want the aircraft to follow its route to completion before looking
for a STAR, set this field to 1.
START_FLY_TO_COMPLETION
FlyType
END_FLY_TO_COMPLETION
START_LANDING_LIGHT_ALT
Altitude
END_LANDING_LIGHT_ALT
K) Steerpoints
Define the steerpoints as follows:
STARTSTEERPOINTS
lat lon alt alt_type speed_kias max_bank_angle heading unused formation_type description
ENDSTEERPOINTS
The ground route files are created for specific airports. They go in any of the airport folders under the
Xplane/ClassicJetSimUtils/WorldTraffic/GroundRoutes/Arrival and
Xplane/ClassicJetSimUtils/WorldTraffic/GroundRoutes/Departures folders. Create a new folder under
those folders for a new airport. The folder name must match the airport name as defined in the X-Plane
airport database. Note that the ground route definition commands as described below can be defined in
any order in the file.
You can specify a ground route for a general aircraft type (eg. fighter, heavy), a specific type (eg. 747),
an aircraft tail number, or an aircraft operator. You use one the following 4 command blocks. You can
either specify one tail number, one aircraft name, or one or both aircraft type/s and operator. This is
useful for many airports where a block of gates are used by a single airline for various aircraft types
For example Concourse H at KORD consisting of several gates is used exclusively by American
Airlines and its various aircraft types. Note that if you specify both type and operator, both values must
match the arriving aircraft or it will not use that ground route.
STARTTAILNUM
TailNum
ENDTAILNUM
Where TailNum is a specific tail number matching that defined in the flight plan.
Where PlaneName is the name of the aircraft (eg. 747, F-14), matching the name of one of the aircraft
defined in the AircraftTypes folder.
So you could create a ground route for one aircraft type or you could make it for all aircraft types.
After selecting one of the above 3 blocks, specify the landing runway that the ground route is for using
this command:
STARTRUNWAY
runwayName
ENDRUNWAY
Where runway is the runway name, eg 16L, 34R. The runway name may be entered with or without a
trailing zero. For example either 03L or 3L will work.
After selecting one of the above 3 blocks, specify the landing runway that the ground route is for using
this command:
START_PARKING_CENTER
NOSEWHEEL or MAINWHEEL (default)
END_PARKING_CENTER
If you want the location of the parking spot to specify the location of the aircraft's nose wheel, use the
NOSEWHEEL option. If you want the location of the parking spot to specify the center of the main
wheels, use the MAINWHEEL option. When taxiing, the steerpoint coordinates always specify the
position of the center of the aircraft which is between the main wheels. Selecting the NOSEWHEEL
option is quite useful when placing dissimilar aircraft at a gate where you want the nose of the plane to
be in the same place for various aircraft types.
D) Specify Ground Route Priority
Ground routes are normally prioritized by their distance so a ground route with a shorter distance will
normally be given priority. You can override the ground route priorities, however. Note, that if you
must prioritize all or none of them. Use this command:
START_PRIORITY
priority_number
END_PRIORITY
STARTSTEERPOINTS
lat lon speed heading runway_name runway_control_id taxiway_name
ENDSTEERPOINTS
For an arrival ground route, the first steerpoint must be set to the runway threshold position. For a
departure ground route, the last waypoint indicates the position where the plane is on the runway and
ready for takeoff. This can be the start of the runway for a large plane or the middle for a light aircraft
not requiring the full runway length to take off in.
Steerpoints should be placed at a minimum of about 30 feet apart when the aircraft is travelling quickly
(above 8 knots) and at a minimum of 15 feet when the aircraft is travelling slowly. Any closer, and the
waypoint may get skipped. WorldTraffic aircraft anticipate the corners and will attempt to stay on the
lines connecting waypoint to waypoint so you can define square corners for sharp turns. For long
turns, you may need to have a coupe of waypoints throughout the turn. A waypoint will be considered
as passed if the relative angle to it from the aircraft is more than 90 degrees and the distance to it is
inside of the aircraft's calculated turn radius.
There are some 3rd party tools now for creating flight plans and ground routes. Check them out here:
http://forums.x-plane.org/index.php?showtopic=89399
These procedures also work well if you want to create them manually:
A) Creating Ground Routes inside of X-plane.
- Open an aircraft in X-Plane of roughly the same type that you want to create a ground route for.
- In the Flight Information window, select the User aircraft, highlighted in red. This will show the
lat/lon position for your aircraft.
- Put your plane on the landing runway threshold. The first waypoint in a ground route should always
be the landing runway threshold. Set the speed of your first waypoint to a decent runway cruise speed
like 30 knots.
- Now record waypoint lat/lon positions for your next waypoints all the way to your parking spot
- You need to use slow taxi speeds for sharp turns but for high speed exits you can use faster speeds.
- Don’t put waypoints too close together (a few feet), otherwise it will ignore them.
B) Using WED
- Use WED to open your airport area and get the lat/lon coordinates from the editor.
Appendix A3 – Aircraft File Format
Note: All files are space-delimited (no TABS allowed) and file names can not include spaces.
The aircraft definition file is used to provide data used in the World Traffic flight model. It also has
some information used in aircraft animations.
To define an aircraft to work with World Traffic, you need both an Aircraft Definition File and an
Aircraft Object File. They both must have the same name with the Aircraft Definition file having a .txt
suffix and the Aircraft Object file having a .obj suffix. An optional damaged aircraft model can also be
provided with the suffix “_damaged.obj” appended to the name of the aircraft. If the aircraft is
destroyed using the “destroy_ac” dataref, this object is drawn instead of the normal one.
The plane may be animated using the datarefs as listed in Appendix A4.
The aircraft definition is defined between the START and END key words. All other text outside of
this block can be used for description. Again, note that all files are space-delimited (no TABS allowed)
and file names can not include spaces. Fields can be in any order in the file. Fields may be excluded if
they are not applicable. For example boats don't require AOA values and helicopters don't require wing
spans. The following are the supported aircraft definition fields:
15) MainGearWheelRadius – Radius in meters of the main gear wheels, used for animation.
16) MainGearMaxComp – Distance in meters that the main gear compresses on the ground if
any.
17) NoseGearWheelRadius - Radius in meters of the nose gear wheel/s, used for animation.
18) NoseGearMaxCompression - Distance in meters that the nose gear compresses on the ground
if any.
19) NoseGearParkedCompression – not used
20) DistanceToNoseWheel – Distance in meters between the the Y axis and the center of the nose
wheel.
21) MainGearTrack – Distance in meters between the left and right main gear.
22) GearRetractTime – Time in seconds for the gear to retract.
23) FlapExtensionTime – Time in seconds for the gear to extend fully.
24) NumberFlapSettings – If FBWflaps below is set to zero, enter the number of distinct flap
positions available.
25) FBWflaps – Set to 1 (true) if the flaps are controlled by a FBW system and change position
continuously in an infinite number of positions.
26) VariableSpeedBrakes – Set to 1 (true) if the speed brakes can be set to any position between
retracted and extended, otherwise they will be open or closed only.
27) Ceiling – Max altitude in feet that the aircraft can fly at.
28) Range – The maximum range of the aircraft in Nm.
29) ClimbSpeed – Typical climb speed in knots (kias) that the plane will fly at in a normal climb
(not max climb speed).
30) CrusieMach – The typical cruise Mach speed of the aircraft at its cruising altitude.
31) CruiseSpeed – The speed (kias) at which the CruiseAOA value is defined for, not necessarily
the real aircraft's cruise speed. This is used only for for AOA calculations.
32) MaxSpeed – The maximum speed (kias) that the aircraft can fly at in level flight.
33) MaxMach – The maximum Mach value that the aircraft can fly at in level flight.
34) LandingSpeed – The normal final approach speed (kias) of the aircraft.
35) TakeoffSpeed – The normal takeoff speed (kias) of the aircraft.
36) NoseDownSpeed – The speed at which the nose gear drops during landing. This is normally
equal to LandingSpeed except where the aircraft sits on its main gear during landing for
aerodynamic braking. Planes like the F-16 and F-15 use aerodynamic braking with nose down
speeds of around 100 kias.
37) MaxLandingFlapSpeed – The speed (kias) at which the flaps move to their full extension.
38) MaxTakeoffFlapSpeed – The speed (kias) at which the flasp move to their takeoff position
which is 30% of full travel. The gear extension speed is set to 5 knots below this value.
39) Weight – Set to (MTOW – fuel weight).
40) MTOW – Maximum takeoff weight of the aircraft.
41) TakeoffDistAtMTOW – Entered in feet. This value can usually be found in wikipedia for
most aircraft. It's the takeoff distance at sea level, no wind, and standard conditions at the
aircraft's maximum takeoff weight.
42) LandingDist – This is the landing distance in feet of the aircraft with a light fuel load.
43) AfterburnerThrust (optional) – Total engine thrust of all engines combined with the
afterburner on.
44) MaxThrust – Maximum, non-afterburning thrust of all engines combined. For prop planes,
determine an effective thrust from the prop. A plane like a Lancair Columbia has a
thrust:weight ratio of 0.28. A plane such as the C-130 Hercules has a thrust:weight ratio of
0.27. You can adjust thrust to increase or decrease acceleration and climb rate.
45) RadarType – for future use in X-Combat.
46) HasSpeedBrakes – Set to 1 (true) if the aircraft has speed brakes (used for drag calc and
animation).
47) HasRetractableGear – Set to 1 (true) if the aircraft has retractable gear (used for drag calc
and animation).
48) NavSystemNPA – Set to 1 (true) if the aircraft has basic navigation equipment to perform
Non-Precision Approaches.
49) NavSystemRNAV – Set to 1 (true) if the aircraft has navigation equipment to perform RNAV
approaches.
50) NavSystemILS – Set to 1 (true) if the aircraft has navigation equipment to perform ILS
approaches.
51) NavSystemILS_CAT_I – Set to 1 (true) if the aircraft has navigation equipment to perform
ILS CAT I approaches.
52) NavSystemILS_CAT_II – Set to 1 (true) if the aircraft has navigation equipment to perform
ILS CAT II approaches.
53) NavSystemILS_CAT_IIIa – Set to 1 (true) if the aircraft has navigation equipment to
perform ILS CAT IIIa approaches.
54) NavSystemILS_CAT_IIIb – Set to 1 (true) if the aircraft has navigation equipment to
perform ILS CAT IIIb approaches.
55) NavSystemILS_CAT_IIIc – Set to 1 (true) if the aircraft has navigation equipment to
perform ILS IIIc approaches.
Other Guidelines:
– The Nav Systems defined for the aircraft are used in conjunction with the nav systems
supported by the various runways as defined in the Airport Operations file. Using the current
weather ceiling and visibility and the aircraft nav systems and the nav systems supported by the
runways, World Traffic determines if the aircraft can land or not.
– Wikipedia is a great place to get aircraft specs from. For example all the numbers required for a
787 can be found here: http://en.wikipedia.org/wiki/Boeing_787_Dreamliner
– To reiterate, the aircraft object should be placed so that the z axis goes through the center of
gravity on the aircraft as shown in the figure above. This is the axis that the aircraft will be
rotated around when banking.
– The cruise AOA that is set is used at the aircraft cruise speed and should normally be around 0
to 2 degrees. Lower this value if the aircraft seems to be flying with the nose excessively high
or set the aircraft cruise speed lower. The cruise speed is only used for determining AOA.
– Cruise speed and max speed are in knots indicated and should be set using the published cruise
Mach and max Mach numbers as published with the altitude set to 25,000 feet. Use this
calculator here to determine the cruise speed and max speed in knots:
http://www.hochwarth.com/misc/AviationCalculator.html In the very bottom section, set the
altitude as 25,000 feet, enter the Mach number and press the “Compute CAS/TAS/EAS” button.
Use the CAS speed. The cruise speed is used mostly for calculating the AOA. The plane is
limited by the lesser of max speed and max Mach.
– Aircraft weight should be set to the aircraft's MTOW minus the fuel weight.
– Thrust should be set to the maximum available thrust so for the 787-8, this value would be
64,000 lbs X 2 = 128,000 lbs. Afterburner thrust if defined should be set to thrust if the aircraft
has no afterburner.
Here is the work flow I follow when creating aircraft definition files:
• Set takeoff speed to Vr at MTOW in the aircraft definition file. If it can't be found, use a value
from a comparable aircraft.
• Set climb speed to a normal value. I think I use 290 knots for most of the jetliners.
• Cruise speed is only used for AOA calcs and should be set to 295 for jetliners or about 80%
max speed.
• Set MaxSpeed to Vmo.
• Set MTOW to data found online
• Set Weight to MTOW minus fuel capacity in pounds.
• Set LandingSpeed equal to landing speed at Weight value above (not MTOW)
• Set NoseDownSpeed to LandingSpeed for most planes except planes like F-15s or F-16s that
use aerodynamic braking.
• Set TakeoffDistAtMTOW to data found online
• Set LandingDist equal to landing distance data for the aircraft weight set to the weight value
above (not MTOW).
• Create a flight plan with departure and arrival airports as far apart as possible so that aircraft
will takeoff at MTOW. Make sure that the departure airport is at sea level and the winds are
calm. Test that the aircraft takes off at the specified takeoff distance at MTOW. If it's taking off
in too little runway, reduce the thrust a bit. If it's taking too much runway to takeoff, increase
thrust slightly, but not more than 10%. If still using too much runway, set the
"GroundDragFactor" from 0 to -3.0 min to reduce calculated drag. This seems to be required
for some prop planes like the Dash-8 for which I have this value set to -2.5.
• Check out the landing distance for the aircraft to make sure it's close to specs. If the plane takes
too much runway, increase BrakingFactor. It's often at around 0.4 for the smaller jets.
• Create a flight plan such that an AI plane is level at 35,0000 feet and flying at its cruise Mach
Speed. Adjust Cd so that engine speed is at around 88%.
• Make sure that the type is correct. This table below shows how aircraft should be classified:
Fighter - Any jet with a thrust:weight ratio greater than 0.5:1 - Type 0
SR-71, Mig-31, F-15, F-16, SU-27, Bae Hawk, Alpha Jet, etc.
These datarefs are as follows and are all single floating point numbers unless otherwise specified.
All ratios vary between 0.0 and 1.0 with 0.0 being closed or retracted.