Die IGC-Datei (en: International Gliding Commission) kennen die meisten von uns als Datei, die ein Vario erstellt, in der der Flugweg aufgezeichnet und die man nach dem Flug auf einem der Internet-Portale, wie dem DHV-XC oder XContest, hochladen kann. Beim Öffnen der Datei mit einem normalen Texteditor erkennt man einige Informationen im Klartext, aber der Großteil der Daten kommt sehr kryptisch daher. Ein genauer Blick auf das, was sich dahinter verbirgt, lohnt sich aber, um z.B. die Hintergründe von Verletzung von Lufträumen besser zu verstehen.
Das IGC-Format wurde ursprünglich für unsere großen Kollegen, den Segelfliegern, entwickelt, wird aber mittlerweile von verschiedenen Disziplinen der Fliegerei genutzt. Eine sehr umfangreiche Spezifikation, die aber nicht einfach zu lesen ist, kann auf der Homepage der FAI nebst weiteren Informationen und Software heruntergeladen werden. Im Folgenden wird nur auf den Teil der Spezifikation eingegangen, die auch tatsächlich von den Varios der untersuchten Hersteller genutzt wird, d.h. den verwendeten sogenannten Records.
IGC-Record
Die IGC-Datei besteht aus den sogenannten Records, die am Anfang jeder Zeile mit einem Buchstaben A bis N gekennzeichnet sind, gefolgt den Record entsprechenden Informationen und Daten. Details zu den jeweiligen Records können der Technical Specification for IGC-approved GNSS Flight Reorders Anhang A entnommen werden, die hier unter IGC-approved Flight Recorders – Technical Specification zur Verfügung steht. Die Verwendung der Records kann je nach Hersteller variieren, da zum einen nicht alle obligatorisch sind und zum anderen die Hersteller sich nicht an die Spezifikation gehalten haben. Ich habe mir die IGC-Datei meines XC Tracers, das Skytraxx eines Vereinskollegen und die App XC Track näher angeschaut.
XC Tracer
Der Inhalt der IGC-Datei des XC Tracer Varios sieht wie folgt aus (Dargestellt sind nur der Anfang und Ende der B-Records):
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
Die Informationen und Daten aus der IGC-Datei sind im Weiteren kursiv dargestellt.
A-Record
Der A-Record ist obligatorisch und muss an erster Stelle in der Datei stehen. Auf dem Buchstaben A folgt der Herstellercode (XTR = XCTracer) und die Geräte-Seriennummer (5A08E563067B).
H-Record
Der H-Record kennzeichnet den Fileheader und ist obligatorisch. Das F an der zweiten Position steht für Flight Recorder, also in unserem Fall das Vario. Darauf folgt ein dreistelliger Buchstabencode. Des Weiteren können bei bestimmten H-Records noch weitere Informationen folgen, bevor die eigentlichen Einstellungen ersichtlich sind:
DTE: Steht für das Datum und die folgende Zahl für den Flugtag im Format Tag, Monat und Jahr, jeweils zweistellig, in diesem Beispiel also der 30. April 2025 (300425). Darauffolgend sollte eigentlich die Flugnummer von diesem Tag folgen, die aber fehlt. Anscheinend hat man sich nicht ganz an die Spezifikation gehalten.
FXA: Die Satelliten-Fix-Genauigkeit.
PLTPILOTINCHARGE: Der Buchstabencode steht für den verantwortlichen Piloten. Die Information wurde aus der Config-Datei des Varios entnommen (Oliver Thomae).
CM2CREW2: Hinter dem Code könnte der Name des Gastes stehen, falls man mit einem Tandem fliegt.
GTYGLIDERTYPE: Hinter dem Buchstabencode kann der Gleitschirmhersteller und das Modell angegeben werden (aus der Config-Datei) (Advance IOTA DLS).
GIDGLIDERID: In diesem Fall mein Rufzeichen im Flugfunk. Vermutlich tragen die Schweizer hier die Registrierung ihres Gleitschirms ein (aus der Config-Datei) (NVOT).
DTM100GPSDATUM: Dieser Parameter steht grundsätzlich auf WGS84, dem World Geodetic System 1984, nach dem die Position auf der Erde bestimmt wird.
RFWFIRMWAREREVISION: Der Buchstabencode steht für die Firmware-Revision des Varios (XC_Tracer_II_FLARM_R10).
RHWHARDWAREVERSION: Der Buchstabencode steht für die Hardware-Revision des Varios(1.0).
FTYFRTYPE: Hersteller Name und Modellnummer (XC_Tracer_II_FLARM).
GPSRECV: Empfänger und Hersteller des GNSS (Satellitenempfänger zur Positionsbestimmung) (RECV:u-Blox,ZOE-M8B,22,9999)
PRSPRESSALTSENSOR: Hesteller und Typ des Drucksensors (STMicroelectronics,LPS22H,9999)
ALG: (G:GEO), GNSS Höhe. GEO ist die Einstellung für WGS84.
ALP: (P:ISA), Druckhöhe. ISA ist obligatorisch für IGC-Sensoren.
B-Record
Der B-Record ist der für uns interessanteste Datensatz. Der B-Record wird in Zeitabständen von einer Sekunde in die Datei geschrieben.
Die erste sechsstellige Zahl gibt die aktuelle UTC-Uhrzeit im Format Stunden, Minuten und Sekunden jeweils zweistellig an, dieser Datensatz ist um 9:40:09 erstellt worden (094009).
Die zwei folgenden Zahlenpakete geben die aktuelle Position im WGS84 Goedetic System an, mit den darauffolgenden Buchstaben für nördliche / südliche Breite oder westliche / östliche Länge. Der B-Record hat die Koordinaten 46 Grad, 46,616 Minuten Nord und 013 Grad, 08,990 Minuten Ost (4646616N01308990E). Die Minuten werden zur genaueren Positionsbestimmung in dreistelligen Bruchteilen angegeben.
Bei dem Buchstaben A liegt ein gültiger 3D-Fix vor, d.h. die Höhenangabe ist gültig. V bedeutet, dass nur ein 2D fix oder keine gültigen GPS-Daten vorliegen.
Die folgende Zahl ist die QNH-Höhenangabe, in diesem Fall 1752 Meter (01752). Die QNH richtet sich der ICAO-Standardatmosphäre, daher unterscheiden sich die Angaben zur GPS-Höhe, wenn man die zusätzlichen Fehler bei der GPS-Höhe außer Acht lässt.
Die zweite Höhenangabe ist die Höhe über WGS84, die durch das GPS-System ermittelt wird, in diesem Fall 1889 Meter (01889). Die Hintergründe der Höhenangaben sind bezüglich möglicher Luftraumverletzung wichtig zu verstehen, wie Georg Bube in seinem Seminar erläutert hat.
G-Record
Da die IGC-Datei auch für Wettbewerbe genutzt wird, ist es wichtig, dass die Datei im Nachhinein nicht manipuliert wird. Das G-Record beinhaltet eine Signatur, die ungültig wird, sobald die Datei manuell geändert wurde.
Skytraxx
Der Inhalt der IGC-Datei des Skytraxx Varios sieht wie folgt aus (gekürzt):
AXSX003 SKYTRAXX V3.0.17 SN:00004402
HFPLTPILOT:Vorname Nachname
HFGTYGLIDERTYPE:PHI ALLEGRO X-alps 24
HFDTM100GPSDATUM:WGS-84
HFCIDCOMPETITIONID:0000
HFCCLCOMPETITION CLASS:PG Sport
HFSITSITE:Brauneck
HFDTE110622
B0903214739809N01131315EA0141901504
B0903224739808N01131315EA0141901504
B0903234739808N01131315EA0141901504
B0903244739808N01131315EA0141901504
.
.
B1454454735015N01135561EA0068700783
B1454464735015N01135561EA0068700782
B1454474735015N01135560EA0068700782
B1454484735015N01135560EA0068700782
LXSX;GF:1.6
G831F242CBD5414AE683436D8B0B57BCD
Der Header eines Skytraxx Varios gestaltet sich nicht ganz so umfangreich wie im Vergleich zum XC Tracer. Es gibt nur einen zusätzlichen Record, den L-Record.
L-Record
Hinter dem L-Record am Ende der Datei verbirgt sich ein beliebiger Kommentar. Die Bedeutung von XSX;GF:1.6 müsste gegebenenfalls beim Hersteller erfragt werden.
XC Track
Der Inhalt der IGC-Datei der XC Track App sieht wie folgt aus (gekürzt):
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
.
Die XC Track App macht ausgiebig Gebrauch von der Kommentar-Funktion (L-Record). Auch hier ist der Inhalt unklar und müsste bei den Entwicklern von XC Track angefragt werden.
Die obige IGC-Datei ist vom gleichen Flug wie die von meinem XC Tracer weiter oben. Bei der genaueren Analyse der B-Records ergeben sich Unterschiede, sowohl von der Position als auch von den Höhenangaben, was mich etwas verwundert, da ich im XC Track den Sensor XC Tracer konfiguriert habe. Ich hätte deshalb genau die gleichen Daten bei gleichem Zeitstempel erwartet.
Fazit
Das IGC-Format mutet auf den ersten Blick sehr kompliziert an, aber wie schon weiter oben erwähnt sollte man sich trotzdem damit auseinandersetzen, um die Hintergründe zu verstehen, warum z.B. beim Hochladen auf den DHV-XC Server unerwartet eine Luftraumverletzung gemeldet wird. Die untersuchten Hersteller halten sich nicht komplett an die Spezifikation, da entweder bestimmte Records fehlen oder die Parameter nicht vollständig angegeben sind.