This information is historic and only relevant to X-Plane 8 and earlier
This document describes the file format and codes used in X-Plane’s apt.dat file, 715 version.
This data file format is usable with X-Plane version 7.15 – 8.06. It was superseded by airport file format 810 in March 2005.
This is the “official” definition of the X-Plane file formats. The apt.dat file defines all airport data in X-Plane, including runways, taxiways, and other airport features.
Navigation aids at an airport (such as ILS components) are not defined in this file, but are contained in the nav.dat file.
The file structure is similar to all other X-Plane data files, with the exception that the sequencing of the data within the apt.dat file is important. Runway, taxiway, location and ATC data for an airport must immediately follow the header data for the parent airport.
- The first line of each file indicates if the file was generated on a PC (“I” for Intel or IBM) or Macintosh (“A” for Apple). X-Plane uses this code to help deal with the different ways in which PCs and Macs manipulate carriage returns in text files, and big-endian/little-endian issues. The second line contains a version number used by X-Plane. This usually implies the first version of X-Plane that can utilise the file format (eg. “715 version” implies that this file format was first available for use in X-Plane version 7.15). The version number is followed by my own long copyright message that also includes the sequential build number of the data and my own internal code for the metadata that drives the formatting). This copyright message is very long, and includes a reference to the GNU General Public Licence under which this data is published as modifiable freeware, and also an acknowledgement and a disclaimer for the US Department of Defense NIMA for the DAFIF data. The terms of this license require that this copyright message must be left intact if this file is modified and/or redistributed.
- The very last line of each file is marked by a “99”.
Here is an example of the two header lines, one airport, one runway and the file termination line:
715 Version – DAFIF data cycle 200502, build 1871, metadata AptXP715, Copyright © 2004, Robin A. Peel (firstname.lastname@example.org). This data is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program (“AptNavGNULicence.txt”); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. This product was developed using DAFIF (the Defense Aeronautical Flight Information File), a product of the US National Imagery and Mapping Agency (NIMA). NIMA requires the following warranty statements: (A) Under 10 U.S.C. 456, no civil action may be brought against the United States on the basis of the content of a navigational aid prepared or disseminated by either the former Defense Mapping Agency (DMA) or the National Imagery and Mapping Agency (NIMA). (B) The DAFIF product is provided “as is,” and no warranty, express or implied, including, but not limited to the implied warranties of merchantability and fitness for particular purpose or arising by statute or otherwise in law or from a course of dealing or usage in trade, is made by NIMA as to the accuracy and functioning of the product. (C): Neither NIMA nor its personnel will be liable for any claims, losses, or damages arising from or connected with the use of this product. The user agrees to hold harmless the United States National Imagery and Mapping Agency. The user’s sole and exclusive remedy is to stop using the DAFIF product.
1 1242 0 0 89TX Aero-Bee Ranch Airstrip
10 30.879343 -098.416976 17x 170.00 2800 0.0000 0.0000 50 111111 04 0 0 0.25 0
Each airport has a header line and one or more runway/taxiway lines, followed by lines for an airport tower viewpoint location, a startup location on the airport , airport light beacon location and windsocks, and airport ATC (Air Traffic Control) frequencies.
Note the following sequence of the airport data:
- The runway data for each airport must follow the airport header line.
- Taxiways should follow the runways.
- Tower viewpoints and startup locations.
- Airport light beacons and windsocks.
- ATC frequencies should be the final entries for an airport.
- A blank line can be used to separate different airports – this helps improve readability, but it is not mandatory.
- The previous file version for apt.dat was 703 version.
- A flag now controls if a control tower object will be drawn in X-Plane at the location of the control tower (line code 14).
The limitations on the number of airports within a region (an X-Plane “region” is a dynamic area of 2 degrees latitude by 3 degrees longitude) changed for X-Plane 7.40. So more recent files generated in this file format (715) are only usable in X-Plane versions 7.40 – 8.06.
Here is a simplified fragment for part of an airport in apt.dat:
1 5355 1 0 KABQ Albuquerque Intl Sunport
10 35.044209 -106.598557 08x 90.44 13749 1000.0000 0.1000 150 252231 02 0 3 0.25 1
10 35.031995 -106.618838 03x 44.66 9993 0.0000 0.0000 150 352321 02 0 3 0.35 1
10 35.044021 -106.611984 17x 183.36 10014 890.0000 0.0000 150 231231 01 0 2 0.25 1
10 35.038364 -106.612950 12x 128.98 5992 0.0000 0.0000 150 121331 02 0 2 0.25 1
10 35.042778 -106.598572 xxx 90.44 13737 0.0000 0.0000 100 161161 02 0 0 0.25 0
10 35.045609 -106.595635 xxx 90.44 11220 0.0000 0.0000 110 161161 02 0 0 0.45
14 35.047215 -106.608162 100.00 1 Tower viewpoint
15 35.047005 -106.618576 0.000 Gate B1 (American Airlines)
15 35.047005 -106.615000 0.000 Gate A1 (United Airlines)
18 35.045031 -106.598549 1 Light beacon
19 35.045176 -106.621581 1 Windsock
19 35.043241 -106.575534 1 Windsock
53 12190 GND
54 11830 TWR
This shows one airport header line, four runways, two taxiways, a tower viewpoint, two gate starting locations, an airport beacon, two windsocks and two ATC frequencies. The meaning of the data in the above example data is:
of example airport data (apt.dat)
|1||Identifies this as an airport header line. Note
that a code 16 will identify this as a seaplane/floatplane
base, and a code
17 will identify it as a heliport.
|5355||Airport elevation (in feet above
|1||Airport has a control tower (1=yes, 0=no).
Used by X-Plane’s ATC system. Not used to draw the
default ATC tower building (despite what is stated in WorldMaker!).
|0||Display X-Plane’s default airport buildings (1=yes, 0=no).
This is usually ‘no’ if any custom taxiways have been defined.
|KABQ||Identifying code for the airport (the ICAO code, if one exists).
It is helpful if these are unique, but this may not be possible in all cases.
|Albuquerque Intl Sunport||Airport name.
Usually, the city name is first followed by the airport name (eg.
|Runways and taxiways||Example Usage|
|10||Identifies this as a data line for a runway or taxiway segment.|
|35.044209||Latitude (in decimal degrees) of runway or taxiway segment center.|
decimal degrees) of runway or taxiway segment center.
|08x||Runway number (eg “25x” or “24R”). If there is no runway suffix (eg. “L”, “R”, “C”
or “S”), then an
“x” is used. “xxx” identifies the entry as a taxiway.
Helipads at the same airport are numbered sequentially as
|90.439||True (not magnetic) heading of the runway in degrees.
Must be between 0.00 and 360.00.
|13749||Runway or taxiway segment length in feet.|
|1000.0000||Length of displaced threshold (1,000 feet) for runway 08 and for the reciprocal runway 26 (0 feet). The length of the reciprocal runway’s displaced threshold is expressed as the fractional part of this number. Take the runway 26 displaced threshold length (in feet) and divide it by 10,000, then add it to the displaced threshold length for runway 08. For example, for displaced threshold lengths of 543 feet and 1234 feet, the code would be 543.1234.Note that the displaced threshold length is included in the overall runway length but that the stopway length is excluded from the overall runway length. This code should be 0.0000 for taxiway segments. FYI, the displaced threshold is usually marked (in the real world) with long white arrows pointing toward the threshold. The displaced threshold is not available for use by aeroplanes landing, but may be used for take-off (in practice, if you use these last few feet of the runway for take-off, you are probably in serious trouble!).|
|0.1000||Length of stopway/blastpad/over-run at the approach end of runway 08 (0 feet) and for runway 26 (1,000 feet), using the same coding structure defined
above. FYI, in the real world the stopway/blastpad/over-run is usually marked with large yellow chevrons, and aeroplane movements are not permitted.
|150||Runway or taxiway segment width in feet.|
|252231||Runway or taxiway segment lighting codes.
The first three digits (“252”) define the lighting for the runway as seen when approached from the direction implied by the runway number (08 in our example).
The final three (“231”) define the lighting for the runway as seen when approached from the opposite end (26 in our example).
In order, these codes represent:
Runway end “A” (08): Visual approach path (VASI / PAPI etc.) lighting. Here, code 2 corresponds to a VASI.
Runway end “A” (08): Runway lighting. Here, code 5 corresponds to TDZ lighting, which also implies centre-line lighting, REIL and edge lighting.
Runway end “A” (08): Approach lighting. Here, code 2 corresponds to SSALS.
Other runway end (26): Visual approach path (VASI / PAPI etc.) lighting. Here, code 2 corresponds to a VASI.
Other runway end (26): Runway lighting. Here, code 3 corresponds to REIL, which also implies edge lighting.
Other runway end (26): Approach lighting. Here, code 1 implies no approach lighting.
|02||Runway or taxiway surface
code for the runway or taxiway segment. The leading zero is
optional – but I always use it to keep all the columns neatly lined up.
code. These are only available in file version
701 and later. Here, code 0 implies that there is no runway
(the white painted markings on the surface of the runway. Here,
code 3 implies precision runway markings (ie. there is an associated
precision approach for the runway, either an ILS or MLS).
smoothness. Used to cause bumps when taxying or rolling along the
runway in X-Plane. It is on a scale of 0.0 to 1.0, with 0.0 being
very smooth, and 1.0 being very, very rough. X-Plane determines a
baseline smoothness based upon the runway surface type, and then uses
this factor to determine the ‘quality’ of the runway surface. The
default value is 0.25.
|1||Runway has ‘distance
remaining’ signs (0=no signs, 1=show signs). These are the white
letters on a black background on little illuminated signs along a
runway, indicating the number of thousands of feet of usable runway that
remain. They are inappropriate at small airports or on most dirt,
gravel or grass runways.
|15||Identifies this as a
data line for an airport startup
location (code 15). Multiple startup locations
are allowed as separate data lines.
(in decimal degrees) of the viewpoint or startup location.
decimal degrees) of the viewpoint or startup location.
|0.00||Elevation of the viewpoint, or the heading of the aeroplane when placed at the
|Gate B1 (American
a startup location (used in X-Plane 7.10 and later).
|14||Identifies this as a data line for a tower viewpoint (code 14).Only a single tower viewpoint is permitted.|
(in decimal degrees) of the viewpoint.
decimal degrees) of the viewpoint.
|100||Height (in feet)
above ground level of viewpoint.
|1||Flag to indicate if
a control tower object should be drawn at this location in
X-Plane. 0=no tower, 1=draw tower.
|Tower viewpoint||Name of this
|Airport light beacons||Example Usage|
|18||Identifies this as a
data line for an airport light beacon (code 18). Note that if custom data is not defined, then appropriate data will be
generated automatically and included in apt.dat. The light beacon
types available (see list below) are in accordance with the US AM
(Aeronautical Information Manual) – other types may be added to cater
for other light beacons used in other countries.
|35.045031||Latitude (in decimal degrees) of the light beacon.|
decimal degrees) of the light beacon.
colours of the light beacon. Here code 1 implies a standard
white-green flashing light. Options are:
Code 1: white-green flashing light (land airport).
Code 2: white-yellow flashing light (seaplane base).
Code 3: green-yellow-white flashing light (heliports).
Code 4: white-white-green flashing light (military field).
Code 5: white strobe light.
Code 0: no beacon (can be used at ‘closed’ airports). I
|Light beacon||Name for this light beacon
(not used by X-Plane).
|19||Identifies this row
as an airport windsock (code 19). Note that:
If custom data is not defined, then appropriate data will be generated
automatically by may data export algorithms and included in apt.dat
alongside the threshold of each runway.
If at least one windsock is explicitly defined at an airport, then
Multiple windsocks are
If you do not want any windsocks at an airport, then let
(in decimal degrees) of the airport windsock.
decimal degrees) of the airport windsock.
(1=illuminated, 0=not illuminated).
|Windsock||Name for this
windsock (not used by X-Plane).
|53||Identifies this as an
frequency line. Codes in the 50 – 59 range are
used to identity different ATC types.
|12190||Airport ATC frequency, in Megahertz
multiplied by 100 (ie. 121.90 MHz in this example).
|GND||Name of the ATC frequency.
This is often an abbreviation (such as GND for
The codes used to define the data are:
|Codes used in
apt.dat (715 version)
|50||AWOS (Automatic Weather
Observation System), ASOS (Automatic Surface Observation System) or ATIS
(Automated Terminal Information System).
|51||Unicom or CTAF (USA), radio (UK)
– open channel for pilot position reporting at uncontrolled airports.
|06||Asphalt helipad (big “H” in
|07||Concrete helipad (big “H” in
|08||Turf helipad (big “H” in the
|09||Dirt helipad (big “H” in the
|10||Asphalt taxiway with yellow hold
line across long axis (not available from WorldMaker).
|11||Concrete taxiway with yellow
hold line across long axis (not available from WorldMaker).
|12||Dry lakebed runway (eg. at KEDW
|13||Water runways (marked with
bobbing buoys) for seaplane/floatplane bases (available in X-Plane 7.0
approach path indicator codes
|1||No visual approach path lighting.|
|2||VASI (Visual Approach Slope Indicator).|
|3||PAPI (Precision Approach Path Indicator).|
|4||Space Shuttle Landing PAPI (steep 20 degree glide path) – its use is very rare!|
Meaning of code
|1||No runway lighting.|
|2||Runway edge lights
|3||Also has REIL (Runway End Identification Lights – the flashing strobes at
the approach end of the runway.
|4||Also has CLL (Center Line Lighting).|
|5||Also has TDZ (Touch Down Zone) lighting.|
|6||Only has blue taxiway edge lights (use on
|1||No approach lights.|
|2||SSALS (Simplified short approach light system).|
|3||SALSF (Short approach light system with sequenced flashing
|4||ALSF-I (Approach light system with sequenced flashing lights).|
|5||ALSF-II (Approach light system with sequenced flashing lights and red side bar
lights the last 1000’).
|6||ODALS (Omni-directional approach light system).|
|7||Calvert (a British design) category 1.|
|8||Calvert (a British design) categories 2 and 3.|
|0||No runway shoulder.|
|1||Asphalt runway shoulder.|
|2||Concrete runway shoulder.|
|0||No runway markings. Also used for helipads (X-Plane will automatically draw the
big “H” based on the runway surface code), taxiways and water
runways. The runway markings available (see list below) are in accordance with
the US AIM (Aeronautical Information Manual) – other types may be added to cater
for different types of runway markings that may be used in other countries.
|2||Non-precision approach markings|
|3||Precision approach markings.|
© Robin Peel,
2005. Last updated March 29, 2005