Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Optimizations in IGC File

1 Optimization Block
The Optimization Block is a mechanism for storing flight optimization details in the IGC file and is a replacement for the Post Flight Claim L record (LPFC). Individual optimizations are written as a specially formatted L record known as an Optimization Record, which describes the flight type and includes the indexes of the B records used in the optimization. A collection of Optimization Records forms the Optimization Block. The format of the Optimization Record is shown below, with spaces shown between each element and optional elements in square brackets: L OPT MMM FT BBBBB BBBBB [BBBBB] [: RULES] [&]
Element Size L OPT MMM FT 1 byte Description L-Record identifier Remarks

3 bytes Optimization identifier New CCC to signify an Optimization Record. 3 bytes Manufacturer (program) Three-character code allocated to software program. Classifies Distance and Circuit flights - see Para 1.1 Number with leading zeros (00000 - 99999) of the B-Record index of each trackpoint used in the optimization, listed in Start, [Turnpoints], Finish order. The first B-Record in the file is index 0. Optional, colon-prefixed, comma-separated list of rules for the flight type, if required, defining a minimum leg distance or a circuit-flight gap for example. See Para 1.2 Optional, ampersand character placed at the end of a line to signify that the record continues on the next line. The continuation line starts with the same LOPTMMM as used in the first line. See Para 1.7 for an example.

2 bytes Flight type identifier

BBBBB 5 bytes B-Record index

As :RULES Flight type rules required

&

1 byte

Line-wrap identifier

Optimization Block created by program XYZ

LOPTXYZD00099202723 LOPTXYZD30000000992027210458605284 LOPTXYZC1017450272105218:GAP800 LOPTXYZC30000000992027210458605221:GAP25,LEG28 LOPTXYZC30000000992027210458605221:GAP25 The following rules must be followed: 1. All the elements in the table above are required, except for the optional flight type rules and line-wrap elements, and there must not be any white-space between them.

Optimizations in IGC File

2. Only one Optimization Record is allowed for each flight type/rule combination. 3. All Optimization Records must be grouped together in a single Optimization Block. The order of the optimization records within the block is not specified. 4. Only one Optimization Block is allowed in the file. Programs should check for an existing block before adding their own data - see Para 1.4 5. Each line must conform to the 76-character per line limit, using the line-wrap mechanism where an Optimization Record exceeds this length - see Para 1.7.

1.1 Flight type identifier


The FT element of the Optimization Record comprises two single characters denoting the flight type (F) and the number of turnpoints (T).
Element Size F T Description Remarks Either D or C: where D is a Distance flight, and C is a Circuit flight returning to the Start point. Valid characters 0-9. If more than 9, use A = 10, B = 11 etc. Does not include the Start or Finish points.

1 byte Flight Type 1 byte Number of turnpoints

1.2 Flight type rules


The flight type rules element is optional. It is required for circuit flights but not always for distance flights. It comprises a colon, followed by comma-separated list of individual rules. Note that the colon is present to help file parsing and that the order of the rules is not defined. A rule is formatted as follows: CCC [VALUE]
Element CCC VALUE Size 3 bytes As required Description Three-character code identifying the rule Optional value required by the rule

The following rules are currently defined:


Code Value Description Minimum leg distance - a percentage of the total distance if Value is less than 100, otherwise a distance in metres. Usage: LEG28 - minimum leg 28% of total distance LEG10000 - minimum leg distance 10k (10,000m) Circuit gap - a percentage of the total distance if Value is less than 100, otherwise a distance in metres. Usage:

LEG

Number

GAP

Number

Optimizations in IGC File

GAP25 - circuit gap 25% of total distance GAP3000 - circuit gap distance 3k (3000m) CNV Convex polygon. Usage: CNV - polygon must be convex

1.3 Flight type/rules examples


Common optimizations are shown below. Note that Gliders refers to FAI class D aircraft and HPG refers to FAI class O aircraft (hang gliders and paragliders).
Flight type Best Distance Turnpoint Flight Turnpoint Flight Turnpoint Flight Identifier Rule D0 D3 D3 D5 GAP800 LEG10000 Description Distance flight, with start and finish points Distance flight, with start, finish and 3 turnpoints (HPG) Distance flight, with start, finish and 3 turnpoints. 10km minimum distance between turnpoints Distance flight, with start, finish and 5 turnpoints (Gliders) Circuit flight, with start, finish and 1 turnpoint. Circuit gap 800m Circuit flight, with start, finish and 3 turnpoints. Circuit gap 25% of total distance. Minimum leg 28% of total distance. Circuit flight, with start, finish and 3 turnpoints. Circuit gap 800m

Out and Return C1 FAI Triangle (OLC) Flat Triangle (UK XC League) Quadrilateral (French CFD)

C3

GAP25,LEG28

C3

GAP800

C4

Circuit flight, with start, finish and 4 turnpoints. Circuit GAP3000,LEG15,CNV gap 3km. Minimum leg 15% of total distance. Convex polygon

1.4 Position in IGC file


The Optimization Block can safely be written to the IGC file and will not be included in the vali check. The Optimization Block must be placed after the last B-Record and before the start of the G-Record, but after any existing L-Records.

1.5 What optimizations to include


Optimizations are not always relevant for all flight types, as small circuits may be found in a longer distance flight and the program has no way of knowing the relevance of these. As a

Optimizations in IGC File

general rule of thumb, if a flight type distance is greater than 20% of the longest distance found, then it should be included.

1.6 Playing nicely


It is expected that other flight analysis programs may read optimization records and compare these with their own results. Programs are allowed to add new records, or update existing ones with a better Distance. 1. Distance is defined as the sum of the distances between Start, [Turnpoints], Finish waypoints and must be calculated using the WGS84 Ellipsoid. 2. Programs adding or updating records must obviously follow this specification, so as not to corrupt an Optimization Block written correctly by another program. 3. Programs must only update records if their optimization is better than the original. 4. Programs must not delete existing records unless they are duplicates

1.7 Optimization record examples


The following examples show the format of the Optimization Record for different flight types.
Spaces between elements are shown for clarity and must not used

L OPT XYZ D0 00095 01383


Distance flight (start, finish) Points: 95, 1383

L OPT XYZ D3 00050 00095 00891 01324 01383


Distance Flight (start, 3 turnpoints, finish) Points: 50, 95, 891, 1324, 1383

L OPT XYZ C3 00010 00385 00621 00845 01023 : GAP25, LEG28


FAI Triangle (start, 3 turnpoints, finish) with 25% circuit gap Points: 10, 385, 621, 845, 1023

L OPT XYZ C3 00004 00299 00369 00467 00528 : GAP25


Free Triangle (start, 3 turnpoints, finish) with 25% circuit gap Points: 4, 299, 369, 467, 528

LOPTXYZ CA 00023 00375 00799 01203 01546 01937 02456 02712 03192 & LOPTXYZ 03482 : GAP10000, LEG10000
Example of line-wrapping (start, 8 turnpoints, finish) with 10km circuit gap and minimum legs Points: 23, 375, 799, 1203, 1546, 1937, 2456, 2712, 3192, 3482

You might also like