[AIXM-587] Add accuracy attributes for all numerical values
ID: | AIXM-587 |
target version: | AIXM 5.2 |
version: | 1.0 |
last updated: | 31 JAN 2023 |
status: | APPROVED |
Description
Accuracy attributes are added in the model to all data types that are used by numerical value properties, for which accuracy can be specified in the ICAO PANS-AIM.
Rationale for change
See https://aixmccb.atlassian.net/browse/AIXM-269 and https://aixmccb.atlassian.net/browse/AIXM-287
The PANS-AIM data catalogue contains accuracy requirements for many dimensional values, such as magnetic variation, length/width of a runway, Localizer course, etc. In addition, the PANS-AIM requires in 5.1.3 that “the identification of geographical coordinates whose accuracy does not meet the requirements may be made either with an annotation or by explicitly providing the actual accuracy value.” In order to support this requirement, an explicit accuracy attribute is proposed to be added for all positional and numerical values, if it does not already exist in AIXM.
In the current model, only some dimensional or positional properties have a complementary attribute that can be used to express the accuracy. For example, verticalAccuracy in ElevatedPoint/Curve/Surface, fieldElevationAccuracy in AirportHeliport, as highlighted in the following examples:
Because the accuracy is directly related to the data type, the most efficient solution is to specify it, where possible, as an attribute of the corresponding data type. However, an exception needs to be made for the horizontal accuracy of geographical positions (latitude and longitude values), because GML data types are used. Only in this case separate attributes will continue to be necessary.
As for any data value in AIXM, it might also be necessary to have the possibility of indicating that the accuracy is “unknown”. This is proposed to be supported by defining the accuracy data types with a pattern that allows both the numerical format and values for nilReason that are realistically applicable for an accuracy value. This would allow the accuracy to be coded as indicated in the following XML examples:
<aixm:fieldElevation uom="M" accuracy="1.5">18.0</aixm:fieldElevation>
or
<aixm:fieldElevation uom="M" accuracy="unknown">18.0</aixm:fieldElevation>
Note: ICAO requires that all numerical data is provided with a 95% confidence level, except for obstacle data, for which the required confidence level is only 90%. In some places in the current AIXM model, the definition of the horizontalAccuracy and verticalAccuracy attributes explicitly mentions "95% confidence level", which is incorrect for obstacle data. This is corrected in the Change Proposal AIXM-424.
Impact assessment
[FWD_MAP_1:1] Data mapping is possible and no data loss occurs when data is exchanged from a system (A) that uses AIXM 5.1.1 for output towards a system (B) that uses AIXM 5.2 for input.
[BWD_MAP_LOSS] Data mapping is possible, but some data would be lost (or converted into Notes) when data is exchanged from a system (B) that uses AIXM 5.2 for output towards a system (A) that uses AIXM 5.1.1 for input.
Change Proposal details
In the UML model:
- Add a new data type class NumericalWithNilReason as a specialisation of the xsd:string, with the stereotype <<Data Type>>, defined as “A data type that takes either a positive decimal value or a pre-defined NIL reason.”
- pattern = “\d*[.\d]*|missing|unknown|withheld”
- Extend the data type classes ValAngleType, ValBearingType, ValDepthType, ValDistanceType, ValDistanceSignedType, ValDistanceVerticalType, ValMagneticVariationType, ValMagneticVariationChangeType, ValSlopeType, ValTemperatureType with the following attribute:
- accuracy of type NumericalWithNilReason and definition “The degree of conformance (expressed as a maximum difference) between the estimated or measured value and the true value, based on the confidence level specified for the corresponding property in the ICAO PANS-AIM.”
- Delete the following attributes
Class
attributes to be deleted
AirportHeliport
fieldElevationAccuracy
magneticVariationAccuracy
NavaidEquipment
magneticVariationAccuracy
Azimuth
trueBearingAccuracy
Elevation
angleAccuracy
ElevatedPoint
verticalAccuracy
ElevatedCurve
verticalAccuracy
ElevatedSurface
verticalAccuracy
Glidepath
angleAccuracy,
rdhAccuracy
Localizer
magneticBearingAccuracy
trueBearingAccuracy
widthCourseAccuracy
RadarEquipment
rangeAccuracy,
magneticVariationAccuracy
PrecisionApproachRadar
slopeAccuracy
RunwayDirection
trueBearingAccuracy
elevationTDZAccuracy
Runway
lengthAccuracy, widthAccuracy
NavaidEquipmentDistance
distanceAccuracy
RunwayDeclaredDistanceValue
distanceAccuracy
VerticalStructurePart
verticalExtentAccuracy
The following UML class diagram highlights the new data type and changes in existing data types:
The following UML class diagram shows the deleted attributes:
Mapping AIXM 5.1.1 to AIXM 5.2 (forward)
[MAPC-01] See the following table. For each of the “AIXM parent object” that has a value for the descendant “element to be removed”:
- copy the value of the “element to be removed’’ in the “related element”.@accuracy attribute.
Note: Although there exist business rules that try to prevent such situations, the following additional mapping actions need to be considered, where applicable:
- if the unit of measurement is different, convert the value into the same unit of measurement
- if the “related element” does not exist, it shall be added
- remove the “element to be removed”
AIXM parent object | element to be removed | related element (@accuracy) |
AirportHeliport | fieldElevationAccuracy | fieldElevation |
AirportHeliport | magneticVariationAccuracy | magneticVariation |
Azimuth | magneticVariationAccuracy | magneticVariation |
Azimuth | trueBearingAccuracy | trueBearing |
DirectionFinder | magneticVariationAccuracy | magneticVariation |
DME | magneticVariationAccuracy | magneticVariation |
ElevatedCurve | verticalAccuracy | elevation |
ElevatedPoint | verticalAccuracy | elevation |
ElevatedSurface | verticalAccuracy | elevation |
Elevation | magneticVariationAccuracy | magneticVariation |
Elevation | angleAccuracy | angleNominal |
Glidepath | magneticVariationAccuracy | magneticVariation |
Glidepath | angleAccuracy | slope |
Glidepath | rdhAccuracy | rdh |
Localizer | magneticVariationAccuracy | magneticVariation |
Localizer | magneticBearingAccuracy | magneticBearing |
Localizer | trueBearingAccuracy | trueBearing |
Localizer | widthCourseAccuracy | widthCourse |
MarkerBeacon | magneticVariationAccuracy | magneticVariation |
NavaidEquipmentDistance | distanceAccuracy | distance |
NDB | magneticVariationAccuracy | magneticVariation |
PrecisionApproachRadar | rangeAccuracy | range |
PrecisionApproachRadar | magneticVariationAccuracy | magneticVariation |
PrecisionApproachRadar | slopeAccuracy | slope |
Runway | lengthAccuracy | nominalLength |
Runway | widthAccuracy | nominalWidth |
RunwayDeclaredDistanceValue | distanceAccuracy | distance |
RunwayDirection | trueBearingAccuracy | trueBearing |
RunwayDirection | elevationTDZAccuracy | elevationTDZ |
SDF | magneticVariationAccuracy | magneticVariation |
SurveillanceRadar | rangeAccuracy | range |
SurveillanceRadar | magneticVariationAccuracy | magneticVariation |
TACAN | magneticVariationAccuracy | magneticVariation |
VerticalStructurePart | verticalExtentAccuracy | verticalExtent |
VOR | magneticVariationAccuracy | magneticVariation |
Mapping AIXM 5.2 to AIXM 5.1.1 (backward)
[MAPC-01] See the following table. For each of the “AIXM parent object” that has a value for the @accuracy attribute of the “element”:
- add the “element to be added”
- if the @accuracy is a numerical value, then copy its value the “element to be added” and also copy the value of the @uom attribute of the “element” into the “element to be added”
- if the @accuracy has one of the values “missing”, “unknown” or “withheld”, then leave the “element to be added” empty, copy the @accuracy value into its @nilReason attribute and set its @xsi:nil attribute to ‘true’.
- remove the @accuracy attribute
AIXM parent object | element (@accuracy) | element to be added |
AirportHeliport | fieldElevation | fieldElevationAccuracy |
AirportHeliport | magneticVariation | magneticVariationAccuracy |
Azimuth | magneticVariation | magneticVariationAccuracy |
Azimuth | trueBearing | trueBearingAccuracy |
DirectionFinder | magneticVariation | magneticVariationAccuracy |
DME | magneticVariation | magneticVariationAccuracy |
ElevatedCurve | elevation | verticalAccuracy |
ElevatedPoint | elevation | verticalAccuracy |
ElevatedSurface | elevation | verticalAccuracy |
Elevation | magneticVariation | magneticVariationAccuracy |
Elevation | angleNominal | angleAccuracy |
Glidepath | magneticVariation | magneticVariationAccuracy |
Glidepath | slope | angleAccuracy |
Glidepath | rdh | rdhAccuracy |
Localizer | magneticVariation | magneticVariationAccuracy |
Localizer | magneticBearing | magneticBearingAccuracy |
Localizer | trueBearing | trueBearingAccuracy |
Localizer | widthCourse | widthCourseAccuracy |
MarkerBeacon | magneticVariation | magneticVariationAccuracy |
NavaidEquipmentDistance | distance | distanceAccuracy |
NDB | magneticVariation | magneticVariationAccuracy |
PrecisionApproachRadar | range | rangeAccuracy |
PrecisionApproachRadar | magneticVariation | magneticVariationAccuracy |
PrecisionApproachRadar | slope | slopeAccuracy |
Runway | nominalLength | lengthAccuracy |
Runway | nominalWidth | widthAccuracy |
RunwayDeclaredDistanceValue | distance | distanceAccuracy |
RunwayDirection | trueBearing | trueBearingAccuracy |
RunwayDirection | elevationTDZ | elevationTDZAccuracy |
SDF | magneticVariation | magneticVariationAccuracy |
SurveillanceRadar | range | rangeAccuracy |
SurveillanceRadar | magneticVariation | magneticVariationAccuracy |
TACAN | magneticVariation | magneticVariationAccuracy |
VerticalStructurePart | verticalExtent | verticalExtentAccuracy |
VOR | magneticVariation | magneticVariationAccuracy |
[MAPC-02] See the following table. For each of the “AIXM parent object” that has a value for the @accuracy attribute of the “element”:
From the three backward mapping options applicable in this case, the first two (discard the attribute value or use an extension) are straightforward and do not need any further details. The 3rd option (backward mapping into a Note) is detailed in order to provide a complete description of this case and its conversion option. The following mapping into Note algorithm is proposed:
- Remove the @accuracy attribute
- Add an annotation.Note associated with the “AIXM Parent object” class having:
- purpose=“OTHER:BACKWARD_MAPPING”
- LinguisticNote.note=”accuracy: <value of height @accuracy> <value of @uom>”.
AIXM parent object | element (@accuracy) |
Azimuth | angleProportionalLeft |
Azimuth | angleProportionalRight |
Azimuth | angleCoverLeft |
Azimuth | angleCoverRight |
Elevation | angleMinimum |
Elevation | angleSpan |
Obstruction | slopePenetration |
PrecisionApproachRadar | slope |
RadioFrequencyArea | angleScallop |
SegmentLeg | bankAngle |
SegmentLeg | verticalAngle |
SurveillanceRadar | tiltAngle |
VisualGlideSlopeIndicator | slopeAngle |
VisualGlideSlopeIndicator | displacementAngle |
Data Types to be analyzed and full mapping to be documented after the final publication of AIXM 5.2 - : ValAngleType, ValBearingType, ValDepthType, ValDistanceType, ValDistanceSignedType, ValDistanceVerticalType, ValMagneticVariationType, ValMagneticVariationChangeType, ValSlopeType, ValTemperatureType.
Mapping example
(Note: for mapping test data see: https://github.com/aixm/mapping_52_511/tree/master/AIXM-xxx)
AIXM Input | AIXM Output |
---|---|