X-PLANENAVIGATION DATA FOR NAVAIDS (USER_NAV.DAT & EARTH_NAV.DAT) FILE SPECIFICATIONVERSION 1200
REVISION HISTORY
10 Aug 201610 Oct 201629 Nov 2018
12 Mar 2020
13 Jul 2021
28 Jul 2022

Spec updated for X-Plane 11
Added encoding for SBAS service provider in LTP name
Added documentation for NDB and VHF service volumes or ranges
Added magnetic front course information to ILS localizers
Added Ref Path Identifier to FTP/LTP records
Added BFO operation to NDB record

APPLICABILITY
This specification (XP NAV1200) is supported in X-Plane 12.00b1 and later. It is identified in the data files as “1200 Version” on the second row of the file.
The prior specification for navaid data was XP NAV1150, which is compatible with X-Plane 11.50 – 11.99. Changes in the spec for XP NAV1200 were:•••Added Ref Path Identifier as the name of the vertical component of FTP/LTP records.
Added BFO operation flag to the NDB record
Updated list of recognized name suffixes on VOR/VORTAC/DME records (documentation update only, no functional change)

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 1 of 91200 Version, 28-Jun-22

OVERVIEW & SCOPE
This specification defines all radio navigation data for X-Plane, including NDBs (DB-records), VORs (D-records, incl. VORTACs and VOR-DMEs), ILS components(PI- and PM-records, localizers, glideslopes, marker beacons), GBAS correction stations and SBAS/GBAS approach path point data (PP-, PQ-, and PT-records).
The effect of this data is to:
•
•
•
•
•

Allow these radio navigation facilities to be used when flying in X-Plane.
Display the navigation facilities on X-Plane’s chart.
Render objects in the X-Plane scenery system to represent each physical facility.
Allow these navaids to be selected in X-Plane’s GPS and FMC systems.
Allow path points be used by X-Plane’s GPS and FMC systems.

BASIC CONCEPTS
•
•
•
•
•

Latitudes and longitudes are described in a decimal notation (e.g. 20.12345678).
o A latitude of 50 degrees 30 minutes south would be defined as -50.50000000
North latitudes and east longitudes are positive. South latitudes and west longitudes are negative.
All headings are referenced to true north (not magnetic north). X-Plane has an internal model of magnetic variation.
Terminal NDBs, ILS components and approach path points must specify the airport whose terminal area they belong toEnroute navaids must specify the ICAO region code according to ICAO document No. 7910

FILE CHARACTERISTICS
The earth_nav.dat (and nav.dat) files are plain text files:
•
•
•
•
•
•

Fields in the data can be separated by one or more white space (space, tab) characters.
By default, the files are generated so that columns of data are consistently aligned, but this is not required.
Glideslope records must come later in the file than their associated localizer
LTP/FTP records must come later in the file than their associated FPAP
Paired DME records must come later in the file than their associated VOR or TACAN
The above can also be achieved by sorting the file strictly using the first column

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 2 of 91200 Version, 28-Jun-22

FILE STRUCTURE
In common with most other X-Plane data file specification, header rows of data define the origin (“I” = Intel byte order or “A” = Motorola byte order) of aparticular copy of a file and define the file specification version. The file specification must include the four-digit AIRAC cycle date (e.g. 1602 for the AIRAC cycle
effective 4-Feb-16, refer to https://www.nm.eurocontrol.int/RAD/common/airac_dates.html for cycle dates), an 8-digit build date and the reference to thisdocument. A copyright message may be added, while the total length of this line is not to exceed 1024 characters:
I
1200 Version - data cycle 2106, build 20210713, metadata NavXP1200. Copyright © 2021, Robin A. Peel (robin@xsquawkbox.net)...

Subsequent rows of data define each navaid, sequence as defined under “File Characteristics”.
The file is terminated by a ‘99’:
99

ROW CODES
Each row of data begins with an integer code that defines the type of data:
Row
Code

Meaning

Comment

2
3
4
5
6
7
8
9
12
13
14

NDB (Non-Directional Beacon)
VOR (including VOR-DME and VORTACs)
Localizer component of an ILS (Instrument Landing System)
Localizer component of a localizer-only approach
Glideslope component of an ILS
Outer markers (OM) for an ILS
Middle markers (MM) for an ILS
Inner markers (IM) for an ILS
DME, including the DME component of an ILS, VORTAC or VOR-DME
Stand-alone DME, or the DME component of an NDB-DME
Final approach path alignment point of an SBAS or GBAS approach path

Includes NDB component of Locator Outer Markers (LOM)
Includes VORs, VOR-DMEs, TACANs and VORTACs

15
16

GBAS differential ground station of a GLS
Landing threshold point or fictitious threshold point of an SBAS/GBAS approach

Will not appear in X-Plane’s charts
Will not appear in X-Plane’s charts

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 3 of 9

Includes for LDAs and SDFs
Frequency shown is paired frequency, not the DME channel
Includes outer maker component of LOMs

Paired frequency display suppressed on X-Plane’s charts
Paired frequency will be displayed on X-Plane’s charts
Will not appear in X-Plane’s charts

1200 Version, 28-Jun-22

EXAMPLE DATA
Here is some example data for the Seattle, Washington, USA area (note the separate data row for the DME component of the Seattle VORTAC):
2
3
12
4
6
9
12
14
16

47.632522222 -122.389516667
47.435372222 -122.309616667
47.435372222 -122.309616667
47.428408333 -122.308063889
47.460816667 -122.309394444
47.466013889 -122.307733333
47.434333333 -122.306300000
47.437969722 -122.311211111
47.463809028 -122.310985000

0
0
0
425
425
0
369
429
429

362
11680
11680
11030
11030
0
11030
61010
61010

25
0.000
BF ENRT K1 NOLLA/KBFI LMM RW13R NDB
13019.000 SEA ENRT K1 SEATTLE VORTAC
130
0.000 SEA ENRT K1 SEATTLE VORTAC DME
25 59220.343 ISNQ KSEA K1 16L ILS-cat-III
25 300180.343 ISNQ KSEA K1 16L GS
00.000 ISNQ KSEA K1 16L IM
25
0.000 ISNQ KSEA K1 SEATTLE-TACOMA INTL DME-ILS
0.0
180.339 R16CY KSEA K1 16C LPV
56.6 300180.339 R16CY KSEA K1 16C W16B

DEFINITION OF DATA FIELDS
Each column in each row is defined below, using the example data from Seattle shown above. Note that:••

Some row codes store data in an identical specification, and these have been grouped together in the table below (e.g. the marker beacons).
The specification aims to be internally consistent. For example, the format or latitudes and longitudes is always the same, and allheadings/orientations are defined as true (not magnetic) degrees.

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 4 of 91200 Version, 28-Jun-22

Row

2

Meaning
Example value

Comment
Explanation

NDB

Non-directional beacon
2

0
362
50
0.0
BF

Row code for an NDB
Latitude of NDB in decimal degrees
Longitude of NDB in decimal degrees
Elevation in feet above MSL
Frequency in kHz
NDB class (formerly reception range in nautical miles)
Flags for NDBs
NDB identifier2
Eight decimal places supported
Eight decimal places supported
Integer. Used to calculate service volumes.
Integer. Decimal frequencies not supported.
15 = locator, 25 = low power, 50 = normal, 75 = high power NDB
1.0 if use of BFO is required for ID. 0.0 otherwise
Up to four characters. Unique within ICAO region

ENRT

NDB terminal region identifier or ENRT for enroute NDBs

Airport code for terminal NDBs, ENRT otherwise

K1

ICAO region code of enroute NDB or terminal area airport

NOLLA NDBNDB nameMust be region code according to ICAO document No. 7910
For terminal NDBs, the region code of the airport is used
Text, suffix with “NDB”

47.63252778-122.38952778

3

Valid values

VOR

Includes VOR-DMEs and VORTACs
3

354
11680
130

Row code for a VOR
Latitude of VOR in decimal degrees
Longitude of VOR in decimal degrees
Elevation in feet above MSL
Frequency in MHZ (multiplied by 100)
VOR class (formerly reception range in nautical miles)

19.0
SEA
ENRT
K1
SEATTLE VORTAC

Slaved variation for VOR, i.e. direction of the 0 radial measured in true degrees
VOR identifier
ENRT for all VORs
ICAO region code
VOR name

47.43538889-122.30961111

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 5 of 9

3
Eight decimal places supported
Eight decimal places supported
Integer. Used to calculate service volumes.
Integer - MHz multiplied by 100 (e.g. 123.45MHz = 12345)
25 = terminal, 40 = low altitude, 130 = high altitude, 125 =unspecified but likely high power VOR. Uses the higher of 5.35
class and 5.149 figure of merit.
Up to three decimal places supported
Up to four characters. Unique within ICAO region
Always ENRT
Must be region code according to ICAO document No. 7910
Text, suffix with “VOR”, “VORTAC”, “TACAN” or “VOR/DME”

1200 Version, 28-Jun-22

Row

Meaning
Example value

Comment
Explanation

4, 5

LOC

Includes localizers (incl. LOC-only), LDAs and SDFs
4

338
11030
25
59220.343

Row code for a localizer associated with an ILS
Latitude of localizer in decimal degrees
Longitude of localizer in decimal degrees
Elevation in feet above MSL
Frequency in MHZ (multiplied by 100)
Maximum reception range in nautical miles
Localizer bearing in true degrees prefixed by integer magnetic front course times 360

ISNQ

Localizer identifier

KSEA
K1
16L
ILS-cat-III

Airport ICAO code
Airport ICAO region code
Associated runway number
Localizer name47.42939200-122.30805600

6

Glideslope
6

4=ILS localizer, 5=stand-alone localizer (incl. LOC, LDA & SDF)
Eight decimal places supported.
Eight decimal places supported.
Integer.
Integer - MHz multiplied by 100 (e.g. 123.45MHz = 12345)
Integer - Terminal range is 25nm by default
Up to three decimal places supported.
Magnetic Front Course in integer degrees multiplied by 360 andadded (e.g. front course of 164 degrees magnetic on localizer
true bearing of 180.343 degrees becomes 59,040 + 180.343 =
59,220.343). This allows the true front course to be readaccurately by clients unaware of the magnetic part, because
fmod(59220.343, 360)==180.343.
Up to four characters. Usually start with “I”. Unique within
airport terminal area
Up to four characters. Must be valid airport code
Must be region code according to ICAO document No. 7910
Up to three characters
Use “ILS-cat-I”, “ILS-cat-II”, “ILS-cat-III”, “LOC”, “LDA” or “SDF”

Glideslope associated with an ILS

425
11030
25
300180.343

Row code for a glideslope
Latitude of glideslope aerial in decimal degrees
Longitude of glideslope aerial in decimal degrees
Elevation in feet above MSL
Frequency in MHZ (multiplied by 100) (paired frequency, not channel)
Maximum reception range in nautical miles
Associated localizer bearing in true degrees prefixed by glideslope angle times 100,000

ISNQ

Glideslope identifier

KSEA
K1
16L
GS

Airport ICAO code
Airport ICAO region code
Associated runway numberName

47.46081700-122.30939400

Valid values

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 6 of 9

6
Eight decimal places supported
Eight decimal places supported
Integer.
Integer - MHz multiplied by 100 (e.g. 123.45MHz = 12345)
Integer - Terminal range is 25nm by default
Up to three decimal places supported.
Glideslope angle multiplied by 100,000 and added (e.g.
Glideslope of 3.25 degrees on heading of 123.456 becomes
325123.456)
Up to four characters. Usually start with “I”. Unique within
airport terminal area
Up to four characters. Must be valid airport code
Must be region code according to ICAO document No. 7910
Up to three characters“GS”

1200 Version, 28-Jun-22

Row

Meaning
Example value

Comment
Explanation

7, 8, 9Marker beacons

Outer (OM), Middle (MM) and Inner (IM) Markers

847.47223300-122.31102500
433
00180.343
ISNQ
KSEA
K1
16L
MM

12, 13DME

Row code for a middle marker
Latitude of marker in decimal degrees
Longitude of marker in decimal degrees
Elevation in feet above MSL
Not usedNot used
Associated localizer bearing in true degrees (also known as “minor axis”)
Associated approach identifier
Airport ICAO code
Airport ICAO region code
Associated runway numberName

Row code for a DME

47.43433300-122.30630000

Latitude of DME in decimal degrees
Longitude of DME in decimal degrees
Elevation in feet above MSL
Frequency in MHZ (multiplied by 100) (paired frequency, not channel)
DME service volume (formerly maximum reception range)

0.000
ISNQ
KSEA
K1
SEATTLE-TACOMAINTL DME-ILS

7=OM, 8=MM, 9=IM
Eight decimal places supported
Eight decimal places supported
Integer00Up to three decimal places supported
Identifier of localizer or ILS approach associated with marker
Up to four characters. Must be valid airport code
Must be region code according to ICAO document No. 7910
Up to three characters“OM”, “MM” or “IM”

Distance Measuring Equipment

12

369
11030
25

Valid values

DME bias in nautical miles.
Identifier
Airport ICAO code (for DMEs associated with an ILS)
ENRT for DMEs associated with VORs, VORTACs, NDBs or standalone DMEs
ICAO region code of enroute DME or terminal area airport
DME Name

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 7 of 9

12=Suppress frequency in charts. Used for paired DMEs,
13=display frequency in charts. Used for NDB/DMEs andunpaired DMEs
Eight decimal places supported
Eight decimal places supported
Integer
Integer - MHz multiplied by 100 (e.g. 123.45MHz = 12345)
40, 70, 120 or 150, where 150 means 120 or more for D-OSV or
25, 40, 130, 125 like VOR. When provided, use 5.277 D-OSV,otherwise 5.35 class or 5.149 figure of merit, whichever ishigher.
Default is 0.0 - Up to one decimal place supported
Up to four characters. Unique within terminal or ICAO region.
Up to four characters. Must be valid ICAO code
ENRT otherwise
Must be region code according to ICAO document No. 7910
For terminal DMEs, the region code of the airport is used
Text, suffix with “DME” or “DME-ILS”
Suffix “DME” to navaid name for VOR/DMEs, VORTACs & NDBDMEs (e.g. “SEATTLE VORTAC DME” in example data)
For standalone DMEs just use DME name1200 Version, 28-Jun-22

Row

Meaning
Example value

Comment
Explanation

14

FPAP

Final Approach Course Alignment point of SBAS or GBAS path point

14
47.437969722-122.311211111
429
61010
0.0
180.339
R16CY
KSEA
K1
16C
LPV

16

LTP/FTP16
47.463809028-122.310985000
429

Row code for FPAP
Latitude of FPAP in decimal degrees
Longitude of FPAP in decimal degrees
Orthometric height of FPAP in feet. Use 4.1.28.2/4.1.35.2 continuation record.
If unavailable, use EGM2008 geoid to convert from WGS84 ellipsoid height
WAAS channel (SBAS) or GLS channel (GBAS)
Length Offset in meters, from stop end of runway to FPAP
Final approach course in true degrees
Approach procedure identifier
Airport ICAO code
Airport ICAO region code
Associated runway number
Approach performance indicator

Valid values
14
Eight decimal places supported
Eight decimal places supported
Integer, Feet
Integer
Up to one decimal place supported, meters
Up to three decimal places supported
Up to five characters
Up to four characters. Must be valid airport code
Must be region code according to ICAO document No. 7910
Up to three characters
Currently supported are “LP”, “LPV”, “APV-II” and “GLS”

Landing threshold point or fictitious threshold point of GBAS or SBAS path point

61010
56.6
300180.339

Row code for LTP/FTP
Latitude of LTP/FTP in decimal degrees
Longitude of LTP/FTP in decimal degrees
Orthometric height of LTP in feet. Use 4.1.28.2/4.1.35.2 continuation record.
If unavailable, use EGM2008 geoid to convert from WGS84 ellipsoid height
WAAS channel (SBAS) or GLS channel (GBAS)
Path point threshold crossing height, feet
Associated final approach course in true degrees prefixed by glidepath angle

R16CY
KSEA
K1
16C
W16B

Approach procedure identifier
Airport ICAO code
Airport ICAO region code
Associated runway number
Ref Path Identifier

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 8 of 9

16
Eight decimal places supported
Eight decimal places supported
Integer
Integer
Up to one decimal place supported, Feet
Up to three decimal places supported.
Glidepath angle multiplied by 100,000 and added (e.g.
Glidepath of 3.25 degrees on heading of 123.456 becomes
325123.456)
Up to five characters
Up to four characters. Must be valid airport code
Must be region code according to ICAO document No. 7910
Up to three characters
Provider of the SBAS service can be WAAS, EGNOS or MSAS, theRef Path Identifier usually uses the first letter to indicate theprovider, then the runway direction, and then a letter to allow
deduplication. If no Ref Path Identifier is specified, or thisbelongs to a GLS approach, use “GP”

1200 Version, 28-Jun-22

Row

Meaning
Example value

Comment
Explanation

15

GLS

Ground station of differential GPS used for GLS approaches
15-33.964605556
151.184791667
21
22790
0
300074.656

Row code for GLS
Latitude for differential GPS ground station in decimal degrees
Longitude for differential GPS ground station in decimal degrees
Elevation of differential GPS ground station in feet
GLS GBAS channel number
UnusedAssociated final approach course in true degrees prefixed by glidepath angle

G07A
YSSY
YM
07
GLS

Approach procedure identifier
Airport ICAO code
Airport ICAO region code
Associated runway number
Name

Valid values
15
Eight decimal places supported
Eight decimal places supported
Integer
Integer0
Up to three decimal places supported.
Glidepath angle multiplied by 100,000 and added (e.g.
Glidepath of 3.25 degrees on heading of 123.456 becomes
325123.456)
Up to five characters
Up to four characters. Must be valid airport code
Must be region code according to ICAO document No. 7910
Up to three characters“GLS”

FURTHER INFORMATION
Resources are available for airport designers at the X-Plane Scenery Gateway at http://gateway.x-plane.com/

X-Plane Navigation Data (user_nav.dat & earth_nav.dat) File Specification Page 9 of 91200 Version, 28-Jun-22