Most of us know the IGC file (en: International Gliding Commission) as a file that a vario creates, in which the flight path is recorded and which can be uploaded to one of the Internet portals, such as the DHV-XC or XContest, after the flight. When opening the file with a normal text editor, you can recognise some information in plain text, but most of the data is very cryptic. However, it is worth taking a closer look at what is hidden behind it in order to better understand the background to airspace violations, for example.
The IGC format was originally developed for our big colleagues, the glider pilots, but is now used by various aviation disciplines. A very comprehensive specification, which is not easy to read, can be downloaded from the FAI homepage along with further information and software. In the following, only the part of the specification that is actually used by the Varios of the manufacturers analysed, i.e. the so-called records used, will be discussed.
IGC record
The IGC file consists of the so-called records, which are labelled at the beginning of each line with a letter A to N, followed by the information and data corresponding to the record. Details of the respective records can be found in the Technical Specification for IGC-approved GNSS Flight Recorders Appendix A, which is available here under IGC-approved Flight Recorders – Technical Specification. The use of the records may vary depending on the manufacturer, as not all of them are mandatory and manufacturers have not adhered to the specification. I took a closer look at the IGC file of my XC Tracer, the Skytraxx of a club colleague and the XC Track app.
XC Tracer
The content of the IGC file of the XC Tracer Vario is as follows (only the beginning and end of the B-records are shown):
AXTR5A08E563067B
HFDTE300425
HFFXA100
HFPLTPILOTINCHARGE:Oliver Thomae
HFCM2CREW2:
HFGTYGLIDERTYPE:Advance IOTA DLS
HFGIDGLIDERID:NVOT
HFDTM100GPSDATUM:WGS84
HFRFWFIRMWAREREVISION:XC_Tracer_II_FLARM_R10
HFRHWHARDWAREVERSION:1.0
HFFTYFRTYPE:XC_Tracer_II_FLARM
HFGPSRECV:u-Blox,ZOE-M8B,22,9999
HFPRSPRESSALTSENSOR:STMicroelectronics,LPS22H,9999
HFALG:GEO
HFALP:ISA
B0940094646616N01308990EA0175201889
B0940104646613N01308993EA0175401889
B0940114646610N01308995EA0175301889
B0940124646608N01308998EA0175301889
.
.
B1335494644779N01311525EA0051400596
B1335504644778N01311526EA0051400596
B1335514644778N01311526EA0051400596
B1335524644778N01311525EA0051400596
G64F46C8B7A4581CFE0991CDF4E9F9549FB2AC8D567977F82AF45A913AFDEC2E0
The information and data from the IGC file are shown in italics below.
A-Record
The A-record is mandatory and must be in the first position in the file. The letter A is followed by the manufacturer code(XTR = XCTracer) and the device serial number(5A08E563067B).
H-Record
The H record indicates the file header and is mandatory. The F in the second position stands for Flight Recorder, in our case the vario. This is followed by a three-digit letter code. In addition, further information may follow for certain H-records before the actual settings are visible:
DTE: Stands for the date and the following number for the day of the flight in the format day, month and year, each with two digits, in this example 30 April 2025(300425). This should actually be followed by the flight number for this day, but it is missing. Apparently, the specification has not been fully adhered to.
FXA: The satellite fix accuracy.
PLTPILOTINCHARGE: The letter code stands for the pilot in charge. The information was taken from the Vario’s config file(Oliver Thomae).
CM2CREW2: The code could be followed by the name of the guest if you are flying in tandem.
GTYGLIDERTYPE: The paraglider manufacturer and model can be specified after the letter code (from the config file)(Advance IOTA DLS).
GIDGLIDERID: In this case my callsign in the aeronautical radio. Presumably the Swiss enter the registration of their paraglider here (from the config file) (NVOT).
DTM100GPSDATUM: This parameter is always based on WGS84, the World Geodetic System 1984, according to which the position on the earth is determined.
RFWFIRMWAREREVISION: The letter code stands for the firmware revision of the Vario (XC_Tracer_II_FLARM_R10).
RHWHARDWAREVERSION: The letter code stands for the hardware revision of the Vario (1.0).
FTYFRTYPE: Manufacturer name and model number (XC_Tracer_II_FLARM).
GPSRECV: Receiver and manufacturer of the GNSS (satellite receiver for position determination) (RECV:u-Blox,ZOE-M8B,22,9999)
PRSPRESSALTSENSOR: Manufacturer and type of pressure sensor (STMicroelectronics,LPS22H,9999)
ALG:(G:GEO), GNSS altitude. GEO is the setting for WGS84.
ALP:(P:ISA), pressure level. ISA is mandatory for IGC sensors.
B-Record
The B-record is the most interesting data record for us. The B-record is written to the file at intervals of one second.
The first six-digit number indicates the current UTC time in the format hours, minutes and seconds, each with two digits; this data record was created at 9:40:09(094009).
The following two sets of numbers indicate the current position in the WGS84 geodetic system, followed by the letters for north / south latitude or west / east longitude. The B-record has the coordinates 46 degrees, 46.616 minutes north and 013 degrees, 08.990 minutes east(4646616N01308990E). The minutes are given in three-digit fractions for more precise positioning.
The letter A means that there is a valid 3D fix, i.e. the altitude information is valid. V means that there is only a 2D fix or no valid GPS data.
The following figure is the QNH altitude, in this case 1752 metres(01752). The QNH is based on the ICAO standard atmosphere, so the GPS altitude information differs if the additional errors in the GPS altitude are disregarded.
The second altitude is the altitude above WGS84, which is determined by the GPS system, in this case 1889 metres(01889). As Georg Bube explained in his seminar, it is important to understand the background to the altitude information with regard to possible airspace violations.
G-Record
As the IGC file is also used for competitions, it is important that the file is not manipulated afterwards. The G-Record contains a signature that becomes invalid as soon as the file has been changed manually.
Skytraxx
The content of the IGC file of the Skytraxx Vario is as follows (shortened):
AXSX003 SKYTRAXX V3.0.17 SN:00004402
HFPLTPILOT:First name Last name
HFGTYGLIDERTYPE:PHI ALLEGRO X-alps 24
HFDTM100GPSDATE:WGS-84
HFCIDCOMPETITIONID:0000
HFCCLCOMPETITION CLASS:PG Sport
HFSITSITE:Brauneck
HFDTE110622
B0903214739809N01131315EA0141901504
B0903224739808N01131315EA0141901504
B0903234739808N01131315EA0141901504
B0903244739808N01131315EA0141901504
.
.
B1454454735015N01135561EA0068700783
B1454464735015N01135561EA0068700782
B1454474735015N01135560EA0068700782
B1454484735015N01135560EA0068700782
LXSX;GF:1.6
G831F242CBD5414AE683436D8B0B57BCD
The header of a Skytraxx Vario is not quite as extensive as that of the XC Tracer. There is only one additional record, the L-record.
L-Record
Any comment is hidden behind the L-record at the end of the file. The meaning of XSX;GF:1.6 may have to be requested from the manufacturer.
XC Track
The content of the IGC file of the XC Track app is as follows (abbreviated):
AXCT5410b2c3-9cf2-4152-8b4a-bb7ed81810f2
HFFTYFRTYPE:Xiaomi 22111317G 14
HFRFWFIRMWAREVERSION:0.9.12.2-beta
HFPLTPILOTINCHARGE:Oliver Thomae
HFCCLCOMPETITIONCLASS:FAI-3
HFGTYGLIDERTYPE:ADVANCE Iota DLS
HODTM100GPSDATUM:WGS-84
HFALPALTPRESSURE:ISA
HFALG:GEO
HFDTEDATE:300425,01
LXCTDEVICE eyJhcHAiOnsibmFtZSI6IlhDVHJhY2siLCJ2ZXJzaW9uQ29kZSI6OTEyMjAsInZlc
.
.
LXCTSENSOR Sensors: GPS: h Bluetooth LE Baro: h Bluetooth LE
I023636LAD3737LOD
B0939474646624N01308981EA017590189403
.
B0940094646616N01308991EA017580189010
B0940104646613N01308993EA017580189042
.
B1334524644777N01311526EA005130059998
LXCTSTATS eyJzdGF0cyI6eyJHUFMiOnsiYWx0Rml4TWV0aG9kIjp7ImRpZmZBcGlHZW9pZCI6MC
.
LXCTSTATS fX19
LXCTFAICIVLCOMPLIANT false
G1256C6B9E4FAAA47D9DA3EF055CA496CA89D6CD366A6090993892D5C44AA58B8
.
The XC Track app makes extensive use of the comment function (L-Record). Here too, the content is unclear and would have to be requested from the developers of XC Track.
The IGC file above is from the same flight as the one from my XC Tracer above. When analysing the B-records in more detail, there are differences in both the position and the altitude data, which surprises me somewhat, as I have configured the XC Tracer sensor in the XC Track. I would therefore have expected exactly the same data with the same time stamp.
Conclusion
At first glance, the IGC format seems very complicated, but as mentioned above, it is still worth looking into it in order to understand the reasons why, for example, an airspace violation is unexpectedly reported when uploading to the DHV-XC server. The manufacturers analysed do not fully adhere to the specification, as either certain records are missing or the parameters are not fully specified.