One dataset to rule them all
In X-Plane 11 and later, one single database is used for all purposes of navigational data in the simulator. All items defined in this common database will be used for the scenery, the map, ATC, AI and the GPS/FMS and radio navigation avionics. In X-Plane 10, it was possible to have a discrepancy between what you saw in the X-Plane world and what was available for GPS navigation. This lack of data integrity is no longer possible. X-Plane 11 has a redesigned navdata hierarchy and new formats, that strongly enforce referential integrity and correctness. Note that the format is not backwards-compatible to any of the old datasets, X-Plane 11 will only load data in the X-Plane 11 format.
X-Plane 12 loads navdata conforming to the 11.50 or later spec, for supporting all features, navdata conforming to the 12 spec is preferred.
No more duplicate airport information
Furthermore, all data about airports and runways is taken from the apt.dat, which has been extended so it can carry information necessary for the avionics. Previously, a separate airports.txt was used to hold information like transition level, longest runway length, etc. Now all this information is taken from apt.dat, which uses the 1302 row code for key-value pairs, which can be edited in WED. The following key-value pairs are part of the apt.dat 1050 specification and are used in X-Plane 11:
- region_code, this must specify the region according to ICAO document No 7910
- datum_lat, datum_lon, those specify the location of the airport reference point (ARP) in decimal degrees, North and East positive
- transition_alt, this must specify the transition altitude in feet
- transition_level, this must specify the transition level in feet
Note that this data is already populated for most airports in the scenery gateway. If you find an airport with these values missing or incorrect, use WED 1.5 or later to add/edit these values and upload your change to the scenery gateway.
As of X-Plane 12, the airport data is located in $X-Plane/Global Scenery/Global Airports/Earth nav data/apt.dat and is the one and only source for both scenery and GPS data, so what you see is what you get.
Correct roles and regions, please
X-Plane 11 and 12 distinguish between global and terminal fixes and navaids. Terminal fixes and navaids must specify the arpt/heli ident of their terminal area, according to the 424.20 5.6 Airport/Heliport Identifier. All fixes and navaids must specify the region ICAO code according to the 424.20 5.14 ICAO code. Note especially the seven regions defined for the continental United States. See ICAO document No 7910 for details.
By classification into terminal vs global items and assigning the correct parent terminal area or ICAO region, each item in the database is addressable by a globally unique identifier. Only then it is possible to build the layered structure. X-Plane enforces integrity of this unique index, because it is needed to build the graph of the airway network.
Two supported formats
X-Plane 11 and 12 support two formats in which the global database can be provided:
- ARINC 424 supplements 18 up to 20, with the exceptions noted in the FAA/Aeronautical Information Services CIFP Readme
- XPNAV1100, 1150 and 1200, as explained further down
Sim-wide ARINC424 override
Professional customers with access to 424 master files can use them to override the X-Plane global database.
Upon sim start, X-Plane will examine the $X-Plane/Custom Data/ folder of its installation for a file named earth_424.dat . If this file is found, it will be interpreted according to the ARINC 424.18 standard with the FAA CIFP exceptions, and will be used to load the following information into X-Plane:
- Fixes (EA and PC records)
- Navaids (D, DB and PN records)
- Airways (ER records)
- Published Holdings (EP records)
- Minimum Sector Altitude (PS records)
- Minimum Off Route Altitudes (AS records)
- ILS (PI records)
- Markers (PM records)
- Airport data (PA records)
- Airport gate/parking locations (PB records)
- Airport terminal procedures (PD, PE, PF records)
- Airport runway information (PG records)
- Path points (PP records)
- GLS stations (PT records)
- GBAS path points (PQ records)
After this file has been read, X-Plane will not load any other information from other text files. It is assumed that when the installation is provided with a global 424 file, no data of any other format needs to be loaded. In particular, X-Plane will then NOT load any of the files described in the following as “Global data”.
Global data
If no global 424 file is present, X-Plane will instead load files of the XPNAV1150/XPFIX1101/XPAWY1100/XPHOLD1140 format. These look superficially similar to the data files of previous versions, but they are fundamentally different in that referential integrity is required, and globally uniqueness with respect to type, code, and region code is enforced at load time. Full file format specifications are available below.
The layered hierarchy of global data
It is important to understand that rather than a full replacement of data, X-Plane 11 and 12 allow the data to be organized in layers with increasing priority, where higher priority data overrides the data from all layers below.
The base – what is shipped with X-Plane:
X-Plane 11/12 ships with a global base layer of data that enables IFR navigation world-wide. The data cycle represented by those files will remain the same over the lifetime of X-Plane 12.
These files are:
- earth_fix.dat
- earth_awy.dat
- earth_nav.dat
- earth_hold.dat
- earth_mora.dat
- earth_msa.dat
- CIFP/#ICAO.dat (where #ICAO is each airport with instrument procedures)
they are located in $X-Plane/Resources/default data/ .
Starting with X-Plane 12, these files are also part of the default distribution:
- Resources/default data/airspaces/airspace.txt (starting with X-Plane 12)
- Resources/default scenery/1200 atc data/Earth nav data/atc.dat (starting with X-Plane 12)
The updated base – what is supplied by third-party providers
This layer is what advanced hobbyist users care about. They want updated data, because they want to fly online. Participation in the online networks usually requires fairly recent data. Aerosoft and Navigraph offer newest data by a monthly subscription. This data consists of the files:
- earth_fix.dat
- earth_awy.dat
- earth_nav.dat
- earth_hold.dat (starting with X-Plane 11.40)
- earth_mora.dat (starting with X-Plane 11.50)
- earth_msa.dat (starting with X-Plane 11.50)
- CIFP/#ICAO.dat (where
- is each airport with instrument procedures)
- airspaces/airspace.txt (starting with X-Plane 12)
- 1200 atc data/Earth nav data/atc.dat (starting with X-Plane 12)
they must be located in $X-Plane/Custom Data/
These files completely replace the base layer of X-Plane. If these files are present, the X-Plane base layer is ignored. Note that because of the referential integrity, it is not possible to update just the earth_fix.dat and not the earth_awy.dat. Upon load, it is checked that all files are of the same cycle number. Mix-matching different cycles is not supported.
The updated approaches – what we get from the FAA for free
The FAACIFP file is an ARINC424.18 file provided by the Federal Aviation Administration free of charge and can be downloaded from their website.
In X-Plane 11/12, this file is used to replace P* records with the latest from the FAA. The following data is read from this file, and overrides data loaded from the global layer:
- Terminal Fixes (PC records)
- Terminal Navaids (D records where the 5.6 field is not empty, PN records)
- ILS (PI records)
- Markers (PM records)
- Airport data (PA records)
- Airport gate/parking locations (PB records)
- Airport terminal procedures (PD, PE, PF records)
- Airport runway information (PG records)
- Path points (PP records)
- GLS stations (PT records)
- GBAS path points (PQ records)
The file
- FAACIFP18
must be located in $X-Plane/Custom Data/
This file is not shipped with X-Plane but can be obtained from the FAA website free of charge.
Note that no enroute waypoints, VHF enroute navaids, or enroute airways are loaded from this file. These cannot be replaced safely as it would affect the referential integrity of the airway network.
Note that for integrity reasons, the cycle number of the FAA data must always match the cycle number of the underlying layer. Terminal procedures do reference waypoints out of the terminal area, therefore, the data source for global waypoints must be at the same cycle number.
Note also that when FAACIFP is in effect, terminal procedures are overridden on a per-airport basis. No attempt is made to mix-match terminal procedures from global data with those loaded from FAACIFP. As terminal procedures reference terminal waypoints, trying to build terminal procedures from global data with points loaded from FACCIFP could lead to unpredictable results. Therefore, once FAACIFP is in effect, Custom Data/CIFP/#ICAO.dat is overridden for each #ICAO with PD/PE/PF records in FAACIFP.
Hand-placed localizers – manual corrections
Starting with X-Plane 11.50, curated localizer data is only applied to a small number of airports. X-Plane is instead relying on the earth_nav.dat of the XPNAV1150 or newer variety for almost all airports. Such data is shipped with X-Plane 11.50 by default, and also available from Navigraph and Aerosoft. Please be sure to select “11.50 and later” as the data download format if you are on X-Plane 11.50 or later. Data made for X-Plane 11.41 or earlier will not assure 1000th-of-a-degree accuracy for localizers and can thus lead to ILS signals guiding the aircraft beside the runway.
With this data, we have currently identified 5 airports for which the necessary data quality is not assured. These will continue to be supplied from the X-Plane scenery gateway. The file
- Custom Scenery/Global Airports/Earth nav data/earth_nav.dat (X-Plane 11)
- Global Scenery/Global Airports/Earth nav data/earth_nav.dat (X-Plane 12)
contains these manual corrections for 5 airports. This number might increase if we find more airports with sub-par data quality.
User data – per-user overrides
The last layer is the user-defined layer.
These files are where all custom waypoints are saved. Whenever a custom waypoint is created (through the default FMS) it is saved in the user_fix.dat file, which overrides previously loaded information. The user_nav.dat can hold custom navaids, though there is no way in the X-Plane UI to create them directly.
The files
- user_nav.dat
- user_fix.dat
are located in $X-Plane/Custom Data/
and are non-existent in a default installation of X-Plane and not touched by the updater.
The user_fix.dat is first created once a pilot-defined waypoint was stored in the FMS. They are the highest layer and ensure user modifications are preserved even with updates from Aerosoft or Navigraph.
ONLY in these user_fix.dat/user_nav.dat can you add or edit the X-Plane world data without being at risk of breaking data integrity. So if you want to add custom fixes or navaids to X-Plane, this is the only safe place to do it.
Note that this does not work for deleting objects that were loaded in a lower layer. You can no longer delete a fix from the UI in a persistent way. If we’d allow for selective deletion of fixes or navaids, airways that might be referencing them would break.
From 424 to XPNAV1100
We provide a simple command line tool called convert424toxplane that is available free of charge. With this tool, data providers can convert 424.18+ files into navdata guaranteed to be compatible with X-Plane 12 and X-Plane mobile.
Do not try to create or edit XPNAV1100/XPFIX1100/XPAWY1100/XPHOLD1140 files by hand. While the format is reasonably human-readable, the data integrity assumptions that are inherent are easily overlooked. Always edit the data in a 424 file, using a tool like the ARINCDecoder v4.3, to ensure validity. Then export the data to X-Plane using the convert424toxplane command line tool.
PQ records are synthesized from the scenery
X-Plane supports tuning GBAS receivers to obtain GLS final approach course and glidepath information. If the Final Approach Segment for a GLS approach is not supplied in an ARINC424 PQ-record, the final approach segment is generated from the runway data in the scenery, with a TCH of 50 feet and a splay angle depending on runway length. This allows flying GLS approaches with ILS-like accuracy.
How do I make my own approach? No hand editing, please!
In the past, we have been asked how to edit existing procedures or create own, fictional procedures – maybe you want to prototype a future LPV approach into your own backyard airstrip?
Terminal Procedure description follows the coding rules laid out in ARINC 424.20, Attachment 5, “Path and terminator”. Correctly coding procedures obeying all those rules by hand is next to impossible, which is why industry tools have been developed to work with these files.
For X-Plane 10, no tools existed to design custom approaches, and attempts to hand-code them in text were extremely difficult and didn’t work most of the time.
With X-Plane 11/12, you have the full power of the ARINC424.18+ at your disposal. To evaluate, edit, or even design a new procedure, we strongly recommend the ARINCDecoder v4.3 program, which is an incredibly powerful tool.
Global Data Formats
The files are designed to be easily parsed, have low overhead (no XML!) and will look inherently familiar in structure if you’re familiar with the files for X-Plane 10 already. The file format changes to X-Plane 10 are clearly lined out at the beginning of each document.
Please consider the following file format specifications as a guide how to parse X-Plane 11/12 navdata, not to generate it (see warning above).
- XPFIX1101: XP FIX1101 Spec
- XPNAV1150: XP NAV1150 Spec
- XPAWY1100: XP AWY1101 Spec
- XPHOLD1140: XP HOLD1140 Spec
- XPCIFP1101: XP CIFP1101 Spec
- XPMSA1150: XP MSA1150 Spec
- XPMORA1150: XP MORA150 Spec
Starting with X-Plane 12:
- XPFIX1200: XP FIX1200 Spec
- XPNAV1200: XP NAV1200 Spec
- OpenAIR airspace files: This is not an X-Plane format. Kindly refer to the original documentation for WinPilot.