Note: This page describes the development version of GPSBabel. It may substantially differ from the latest released GPSBabel.

FAI/IGC Flight Recorder Data Format (igc)

This format can...

  • read and write tracks

  • read and write routes

This format has the following options: timeadj .

FAI/IGC Data File -- Used by the international gliding community to record gliding flights. IGC files can be converted to and from tracks representing recorded flights, and routes representing task declarations in other formats.

IGC Data Format Notes

Refer to Appendix 1 of for the specification of the IGC data format.

A sample list of software applications that use data in IGC format can be found at

GPSBabel can be used to translate data in IGC format to and from various other formats.

Routes in other formats are used to represent IGC task declarations.

Tracks in other formats are used to represent IGC recorded flights.

Converting to IGC format

IGC files generated by GPSBabel will NOT pass security validation tests since the data they contain cannot be proven to originate from an approved flight recorder. For most software applications that use IGC files this is not an issue but for competition scoring, record and badge claims the generated files will not be accepted as proof of a flight.

A track stored in another format (GPX for example) representing a recorded flight can be converted into an IGC file:

gpsbabel -i gpx -f mytrk.gpx -o igc -F myflight.igc

If multiple track segments are provided in the input file, the one with the most points will be used.

A route stored in another format representing a task declaration can be converted into an IGC file:

gpsbabel -i gpx -f myrte.gpx -o igc -F mytask.igc

A route and a track in other formats can be included into a single IGC file:

gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -o igc -F myflight.igc

A similar result can be obtained by downloading the track log and routes directly from a GPS device connected to a PC. For example to create an IGC file from data recorded in a Garmin GPS connected to the first serial port of a PC running Linux:

gpsbabel -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc

For Windows operating systems:

gpsbabel -t -r -i garmin -f com1 -o igc -F myflight.igc

A waypoint file in another format containing a waypoint whose short name is "PILOT" can be merged into an IGC file. The description field of the waypoint will be used for the pilot name in the IGC file header:

gpsbabel -i gpx -f mytrk.gpx -f myrte.gpx -f mywpt.gpx -o igc -F myflight.igc gpsbabel -w -t -r -i garmin -f /dev/ttyS0 -o igc -F myflight.igc

Some formats such as GPX allow routes, tracks and waypoints to exist in the same file and can be used to fully populate an IGC file:

gpsbabel -i gpx -f myall.gpx -o igc -F myflight.igc

Converting from IGC format

Data in an IGC file can be converted into other formats. For example to generate OziExplorer files containing tracks representing the recorded flight (myozi.plt) and routes representing declared tasks (myozi.rte):

gpsbabel -i igc -f myflight.igc -o ozi -F myozi

Or to GPX format:

gpsbabel -i igc -f myflight.igc -o gpx -F myflight.gpx

Header information from the IGC file will be written to the description field of the track(s).

If both pressure altitude and GNSS altitude are recorded in the IGC file, two tracks will be written to the new track file, representing the two altitude tracks. The latitude, longitude and timestamps in the tracks will be identical.

Merging into IGC format

A route stored in another format can be merged with an existing IGC file that has no task declaration, to generate a new IGC file with a task declaration:

gpsbabel -i igc -f myflight.igc -i gpx -f myrte.gpx -o igc -F mynew.igc

A two dimensional (lat/lon) track recorded during a flight by a GPS receiver can be merged with a one dimensional (altitude) track recorded during the same flight by a barograph instrument. The result is a three dimensional IGC file representing the flight:

gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc -F my3D.igc

The same can be achieved by downloading directly from a barograph instrument supported by GPSBabel. For example with a Brauniger IQ Comp GPS variometer:

gpsbabel -i baroiq -f /dev/ttyS0 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc


gpsbabel -i baroiq -f com1 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc

(Documentation contributed by Chris Jones, Aug 2004)

timeadj option

(integer sec or 'auto') Barograph to GPS time diff.

Sometimes there is a discrepancy between the internal clock in the barograph instrument and GPS time which can result in the altitude and ground positions not correlating correctly. This can be corrected manually by passing the time difference in seconds between the two time domains through the "timeadj" parameter. This can be any positive or negative integer:

gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=27 -F my3D.igc

GPSBabel can also attempt to deduce the time difference automatically. This is done by comparing the time that it thinks that you landed on the GPS track and the barograph and adjusting accordingly:

gpsbabel -i gpx -f baro.gpx -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc