ID: | AIXM-432 |
target version: | AIXM 5.2 |
version: | 1.0 |
last updated: | 24 OCT 2019 |
status: | APPROVED |
Description
Modify the pattern imposed on ValDistanceVerticalBaseType to allow more than 4 decimals.
Rationale for change
See https://aixmccb.atlassian.net/browse/AIXM-375
Obstacle elevations are sometimes published with decimals - especially in electronic sources. Inherited from AIXM 4.5, the pattern imposed on ValDistanceVerticalBaseType does not allow more than 4 decimals: “((+|-){0,1}[0-9]{1,8}(\.[0-9]{1,4}){0,1})|UNL|GND|FLOOR|CEILING”
Although from an operational point of view it does not make much sense to provide elevation values with millimeter resolution, it is better to not impose resolution limitations in the AIXM schema. The other 'distance' data types do not have such limitations.
Removing this limitation would allow coding the data in AIXM as received from the originator/surveyor, who usually provides between 5-6 decimals. Auditing the data would be easier in terms of traceability.
Impact assessment
There is no impact on existing implementations as the current AIXM 5.1.(.1) data remains fully valid against AIXM 5.2.
When receiving data from AIXM 5.2 implementations, current AIXM 5.1(.1) systems will have to be able to map back the “vertical distance” elements that have values with more than 4 decimals, as described in the mapping rules further in this document. The mapping is straightforward.
Change Proposal details
The regular expression for ValDistanceVerticalBaseType is modified to allow unlimited decimals.
In the UML model:
- Modify the ValDistanceVerticalBaseType pattern as follows:
- ((\+|\-){0,1}[0-9]{1,8}(\.[0-9]{1,}){0,1})|UNL|GND|FLOOR|CEILING
Mapping AIXM 5.1.1 to AIXM 5.2 (forward)
Not applicable.
Mapping AIXM 5.2 to AIXM 5.1.1 (backward)
[MAPC-06] The following algorithm shall be applied:
- For each of the following elements values with more than 4 decimals shall be rounded to the nearest (half up) to 4 positions behind the decimal point:
- AerialRefuellingAnchor/refuellingBaseLevel ,
- AirportHeliport/fieldElevation,
- AirportHeliport/ fieldElevationAccuracy
- AirportHeliport/transitionAltitude
- AirspaceLayer/upperLimit ,
- AirspaceLayer/lowerLimit ,
- AirspaceVolume/upperLimit ,
- AirspaceVolume/maximumLimit ,
- AirspaceVolume/lowerLimit ,
- AirspaceVolume/minimumLimit ,
- AltitudeAdjustment/altitudeAdjustment ,
- AngleIndication/minimumReceptionAltitude ,
- ApproachAltitudeTable/altitude,
- ApproachDistanceTable/valueHAT ,
- ArrivalLeg/upperLimitAltitude ,
- ArrivalLeg/lowerLimitAltitude ,
- ArrivalLeg/altitudeOverrideATC ,
- ArrivalFeederLeg/upperLimitAltitude ,
- ArrivalFeederLeg/lowerLimitAltitude ,
- ArrivalFeederLeg/altitudeOverrideATC ,
- CheckpointINS/upperLimit ,
- CheckpointINS/lowerLimit ,
- CheckpointVOR/upperLimit ,
- CheckpointVOR/lowerLimit ,
- CircleSector/upperLimit ,
- CircleSector/lowerLimit ,
- DepartureArrivalCondition/minimumEnrouteAltitude ,
- DepartureArrivalCondition/minimumCrossingAtEnd ,
- DepartureArrivalCondition/maximumCrossingAtEnd ,
- DepartureLeg/minimumObstacleClearanceAltitude ,
- DepartureLeg/upperLimitAltitude ,
- DepartureLeg/lowerLimitAltitude ,
- DepartureLeg/altitudeOverrideATC ,
- DistanceIndication/minimumReceptionAltitude ,
- ElevatedCurve/elevation ,
- ElevatedPoint/elevation ,
- ElevatedSurface/elevation ,
- EquipmentUnavailableAdjustmentColumn/visibilityAdjustment ,
- FlightRestrictionLevel/upperLevel ,
- FlightRestrictionLevel/lowerLevel ,
- FinalLeg/upperLimitAltitude ,
- FinalLeg/lowerLimitAltitude ,
- FinalLeg/altitudeOverrideATC ,
- Glidepath/rdh ,
- Glidepath/rdhAccuracy ,
- HoldingAssessment/upperLimit ,
- HoldingAssessment/lowerLimit ,
- HoldingPattern/upperLimit ,
- HoldingPattern/lowerLimit ,
- HoldingUse/instructedAltitude ,
- InitalLeg/upperLimitAltitude ,
- InitalLeg/lowerLimitAltitude ,
- InitalLeg/altitudeOverrideATC
- IntermediateLeg/upperLimitAltitude ,
- IntermediateLeg/lowerLimitAltitude ,
- IntermediateLeg/altitudeOverrideATC
- Minima/altitude ,
- Minima/height ,
- Minima/militaryHeight ,
- Minima/radioHeight ,
- MissedApproachGroup/alternateClimbAltitude ,
- MissedApproachLeg/heightMAPT ,
- MissedApproachLeg/upperLimitAltitude,
- MissedApproachLeg/lowerLimitAltitude ,
- MissedApproachLeg/altitudeOverrideATC ,
- NavigationArea/minimumCeiling ,
- NavigationSystemCheckpoint/upperLimit ,
- NavigationSystemCheckpoint/lowerLimit ,
- ObstacleAssessmentArea/assessedAltitude ,
- ObstacleAssessmentArea/slopeLowerAltitude ,
- Obstruction/minimumAltitude,
- RouteSegment/upperLimit ,
- RouteSegment/lowerLimit ,
- RouteSegment/minimumObstacleClearanceAltitude ,
- RouteSegment/minimumEnrouteAltitude ,
- RouteSegment/minimumCrossingAtEnd ,
- RouteSegment/maximumCrossingAtEnd,
- RunwayDirection/elevationTDZ,
- SectorDesign/terminationAltitude ,
- SegmentLeg/upperLimitAltitude,
- SegmentLeg/lowerLimitAltitude,
- SegmentLeg/altitudeOverrideATC
- StandardLevel/verticalDistance ,
- SurveillanceRadar/verticalCoverageAltitude ,
- UnplannedHolding/authorizedAltitude,
- VisualGlideSlopeIndicator/minimumEyeHeightOverThreshold
- Add an annotation.Note associated to the affected feature
- purpose=“OTHER:BACKWARD_MAPPING”;
- propertyName = affected property
- translatedNote.LinguisticNote.note= “Value has been rounded. Original value is: [original value].”
Mapping example
Maping example to be added...
(Note: for mapping test data see: https://github.com/aixm/mapping_52_511/tree/master/AIXM-xxx)
AIXM 5.2 | AIXM 5.1(.1) |
---|---|