IGC Data Format Notes. ====================== Refer to Appendix 1 of http://www.fai.org:81/gliding/gnss/tech_spec_gnss.asp for the specification of the IGC data format. A sample list of software applications that use data in IGC format can be found at http://www.fai.org:81/gliding/gnss/gnss_analysis_software.pdf 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 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 The same can be acheived 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 or: gpsbabel -i baroiq -f com1 -i igc -f my2D.igc -o igc,timeadj=auto -F my3D.igc Chris Jones Aug 2004