Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel
titlePage Table of Content

Table of Contents

Although this is the typical construct for arcs used in the definition of airspace borders in the AI domain, it is recommended to avoid, as much as possible, the use of arcs by centre points.

...

The closest GML construct that can be used for encoding this type of arcs is ArcByCenterPoint. This requires calculating the start/end angles from the centre to the start/end points. Before calculating these angles, it is important to specify the angle measuring convention in AIXM, as GML seems to leave some degree of interpretation for this aspect.

Measuring angles in GML

GML explicitly implements  implements (see Note 1 below) the semantics of ISO 19107. The  The startOfArc  and endOfArc are defined in terms of bearings. The definition of “bearing” states that

Bearing is a data type used to represent direction in the coordinate reference system. In a 2D coordinate reference system, this can be accomplished using a “angle measured from true north” or a 2D vector point in that direction.

Info
titleNote 1

Note that this is true for classes of spatial primitives (e.g. GM_Arc) but in general not their operations. In the ISO 19107, startOfArc and endOfArc are operations, aka constructors which derive other values from the GM_Arc. However, GML/ISO 19136 defines the UML Class ArcByCenterPoint in a GML profile of ISO 19107 where startOfArc and endOfArc are attributes. Although not explicitly stated in the GML standard, we can infer that the ISO 19107 semantics for operations carry over to the identical semantics for the corresponding attributes with the same name in the GML profile of ISO 19107 (ISO 19136, Annex D).

There are two variants mentioned in ISO 19107 for 19107 for expressing bearings: angle and direction.The semantics for angle is

...

Although it may not be obvious, this definition matches the needs of the AI domain, as angles are usually expressed in degrees measured clockwise from the True North. The diagrams below explain why the “counter clockwise” convention stated in the ISO 19107 standard19107 standard, when combined with left-handed geodetic CRS (see also page Right-handed vs. Left-handed CRS) actually corresponds to a clockwise rotation in the AI domain.

...

The order of the axes determines where 0° is located (on the positive part of the coordinate system's first axis).

Arc Direction

Once the startAngle and endAngle are known, it is still necessary to establish how the arcs are interpolated/drawn. The semantics of the words “start” and “end” indicate that arcs shall be interpolated/drawn from the start angle to the end angle, similarly to a line that is always interpolated/drawn from its start to its end. However, this still leaves some room for interpretation, e.g. an arc that has startAngle =90 (East) and endAngle =180 (West) should be interpolated/drawn through South or through North?

The following convention shall apply in the aviation domain: if the start angle is smaller than the end angle then the arc direction is the direction in which the angle values increase. If the opposite is true, then the arc direction is the one in which the angle values decrease. Depending upon the coordinate system that applies to a given ArcByCenterPoint, this results in a clockwise (left-handed system) or counter-clockwise (right-handed system) directed arc. The arguments for this convention are detailed in Annex Bon the ArcByCenterPoint Interpretation Summary page.

Applied with the EPSG:4326 CRS, this means that arcs are drawn:

...

Code Block
languagexml
linenumberstrue
collapsetrue
...
        <aixm:Surface gml:id="S01" srsName="urn:ogc:def:crs:EPSG::4326">
            <gml:patches>
                <gml:PolygonPatch>
                    <gml:exterior>
                        <gml:Ring>
                            <gml:curveMember>
                                <aixm:Curve gml:id="C01">
                                    <gml:segments>
                                        <gml:GeodesicString>
                                            <gml:posList>lat_Px long_Px lat_Py long_Py</gml:posList>
                                        </gml: GeodesicString>
                                        <gml:ArcByCenterPoint gml:id="A01">
                                            <gml:pos>lat_Pc long_Pc</gml:pos>
                                            <gml:radius uom="m">radius</gml:radius>
                                            <gml:startAngle uom="deg">calculated_start_angle</gml:startAngle>
                                            <gml:endAngle  uom="deg">calculated_end_angle</gml:endAngle>
                                        </gml:ArcByCenterPoint>
                                        <gml:GeodesicString>
                                            <gml:posList>lat_Pz long_Pz lat_Pw long_Pw</gml:posList>
                                        </gml:GeodesicString>
                                        ...
                                    </gml:segments>
                                </aixm:Curve>
                            </gml:curveMember>
                        </gml:Ring>
                    </gml:exterior>
                </gml:PolygonPatch>
            </gml:patches>
        </aixm:Surface>
        ...

Units of measurement

The previous XML encoding example also shows recommended values for the uom attributes of gml:radius and gml:start(end)Angle. According to GML, “in an instance document, on elements of type gml:MeasureType the mandatory uom attribute shall carry a value corresponding to either:

...

  • 'm' – when the radius is expressed in meters

  • 'km' – when the radius is expressed in kilometers
  • '[nmi_i]' – when the radius is expressed in Nautical Miles

The symbol “deg” shall be used for the uom attribute of gml:startAngle and gml:endAngle elements.References