[AIXM-472] Alignment with PBN concepts
ID: | AIXM-472 |
target version: | AIXM 5.2 |
version: | 1.0 |
last updated: | 11 OCT 2021 |
status: | APPROVED |
Description
Additional navigationType and navigationAccuracy attributes are added in the AircraftCharacteristics class. The list of values for navigationSpecification is aligned with the PBN Manual. Local requiredNavigationPerformance, navigationType, RNAV, etc. attributes (as applicable) are removed from Procedure, SegmentLeg specialisations, RouteSegment, ApproachCondition and replaced with associations to the AircraftCharacteristics. The navigationAccuracy data type is updated to allow two decimals.
Rationale for change
See https://aixmccb.atlassian.net/browse/AIXM-135, https://aixmccb.atlassian.net/browse/AIXM-176, https://aixmccb.atlassian.net/browse/AIXM-190, https://aixmccb.atlassian.net/browse/AIXM-208.
The Performance Based Navigation (PBN) concept was introduced in order to ensure global standardisation of RNAV and RNP specifications and to limit the proliferation of regional navigation specifications. The ICAO Doc 9613 (PBN Manual) provides a high-level diagram of navigation specifications (copied below).
This is not fully supported in the current AIXM version, which has inherited a mix of RNAV and RNP related properties, as follows:
- RouteSegments may be coded as requiring RNAV versus CONV(entional) navigation techniques;
- Procedures may be coded as RNAV (Yes/No);
- the CodeRNPType data type (values from 0.0 to 99.9) may be used to indicate an RNP accuracy value being associated with a RouteSegment, ProcedureLeg specialisation (except for FinalLeg) or ApproachCondition (in association with a set of Minima);
- the CodeNavigationSpecificationType list of values (RNAV_10, RNAV_5, RNAV_2, RNAV_1, RNP_4, RNP_2, BASIC_RNP_1, ADVANCED_RNP_1, RNP_APCH, RNP_APCH_AR) can be used through AircraftCharacteristic in order to limit the use of a Procedure or to indicate the applicability of a set of Approach Minima;
The following issues have been identified with the current model:
- the CodeNavigationSpecificationType does not cover some of the navigation specifications from the ICAO PBN manual, while some codes are outdated;
- the CodeRNPType pattern does not allow accuracy values in increments of a hundredth (0.01) of a NM, while such values are allowed RNP APCH AR (per ICAO DOC 9905) and are used in practice for minima approach conditions;
- In the case of the InstrumentApproachProcedure, the RNAV attribute (inherited from the Procedure) is a duplicate of its own approachType list of values (that includes ‘RNAV’);
- overall, the current AIXM properties and list of values are not aligned with the ICAO PBN concept, as specified in the ICAO DOC 9613.
- the RNAV/RNP navigation requirements are not modelled in the same way for RouteSegment, Procedures and SegmentLegs. While some of these classes have specific attributes, some also have associations to the AircraftCharacteristic, which includes the navigationSpecification attribute.
In order to align the AIXM model with the PBN concept, it is proposed to add two additional attributes in the AircraftCharacteristic class and to use this class consistently where necessary to indicate a PBN navigation specification. Thus the AircraftCharacteristic class will have the following attributes:
- navigationType, allowing to discriminate between conventional navigation, PBN and also TACAN routes (for backwards compatibility);
- navigationSpecification, with a predefined list of values that includes all the RNP and RNAV navigation specifications summarised in the ICAO PBN Manual, such as RNAV_5, RNP_APCH, RNP_APCH_AR, etc and also generic RNAV and RNP codes (for forward/backward compatibility).
- navigationAccuracy, which allows to specify a navigation accuracy in relation with a PBN navigation specification (as a numerical value between 0.01 and 99.9).
As a consequence, the following attributes may be deleted and replaced with associations to the AircraftCharacteristic <<object>>:
- the navigationType and requiredNavigationPerformance in RouteSegment
- the navigationSpecification in AircraftCharacteristic
- the RNAV attribute in Procedure, for which no replacement is necessary as the Procedure class already has an association with AircraftCharacteristic. This is similar to the coding of the aircraft landing category (A/B/C/D/E) or aircraft type (such as "helicopter procedure").
- the requiredNavigationPerformance in the various SegmentLeg specialisations
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.
- In the CodeNavigationSpecificationBaseType <<CodeList>>
- add the following values:
- RNAV = “RNAV navigation specification (does not include the requirement for performance monitoring and alerting)
- RNP = “RNP navigation specification (includes the requirement for performance monitoring and alerting)”
- RNP_1 = “RNP with 1 NM navigation accuracy capability”
- A_RNP = “Advanced RNP”
- RNP_0_3 = “RNP with 0.3 NM navigation accuracy capability”
- delete the following values:
- BASIC_RNP_1
- ADVANCED_RNP_1
- add the following values:
- Rename the CodeRouteNavigationType <<DataType>> into CodeNavigationType
- Rename the CodeRouteNavigationBaseType <<CodeList>> into CodeNavigationBaseType and:
- change definition into “The type of air navigation (conventional or PBN)”
- add the value PBN = “Performance Based Navigation (PBN)”
- delete the value RNAV
Rename the CodeRNPType <<DataType>> into ValNavigationAccuracyType
Rename the CodeRNPBaseType <<CodeList>> into ValNavigationAccuracyBaseType and change its pattern into [0-9]{1,2}(\.[0-9]{12}){0,1}
- In the AircraftCharacteristic class:
- Add two new attributes:
- navigationType, data type CodeNavigationType, definition = “An indication if performance based navigation or conventional navigation is required”;
- navigationAccuracy, data type ValNavigationAccuracyType, definition=”The navigation accuracy value associated with the navigation specification.”
- Add two new attributes:
- In the RouteSegment class:
- Delete the navigationType attribute
- Delete the requiredNavigationPerformance attribute
- Add an association “isValidFor” AircraftCharacteristic with role name “aircraftCapability” and multiplicity 0…* on the AircraftCharacteristic <<object>> side, definition = “A combination of aircraft characteristics, equipment and capabilities that are required on the Route Segment”.
- In the Procedure class:
- Delete the RNAV attribute
- in the association with AircraftCharacteristic change the AircraftCharacteristic role name into “aircraftCapability”, definition = “A combination of aircraft characteristics, equipment and capabilities that are required on the Procedure”
- Delete the requiredNavigationPerformance attribute in the following classes:
- DepartureLeg
- ArrivalLeg
- ArrivalFeederLeg
- InitialLeg
- IntermediateLeg
- MissedApproachLeg
- In the SegmentLeg change the association to AircraftCharacteristic as follows:
- change the AircraftCharacteristic role name into “aircraftCapability”, definition = “A combination of aircraft characteristics, equipment and capabilities that are required on the Segment Leg”.
- In the ApproachCondition class:
- Delete the requiredNavigationPerformance attribute
- Add a new attribute navigationAccuracy, data type ValNavigationAccuracyType, definition=”The PBN navigation accuracy value associated with the minima.”
Note: AIXM-473 also removes the association to AircraftCharacteristic, which is moved to the Minima class. This is taken into consideration in the AIXM-473 forward/backward mapping and it is not discussed in this Change Proposal.
The following UML class diagram highlights the changes made in the model:
- deleted elements are highlighted in red
- new elements are highlighted in blue
Mapping AIXM 5.1.1 to AIXM 5.2 (forward)
The following algorithm shall be applied:
- [MAPC-00] For each RouteSegment that has assigned values for the navigationType and/or requiredNavigationPerformance:
- add a child aircraftCapability.AircraftCharacteristic element that applies the following mapping rules:
(AIXM 5.1.1) Route Segment
(AIXM 5.2) AircraftCharacteristic
navigationType
requiredNavigationPerformance
navigationType
navigationSpecification
navigationAccuracy
CONV
any value, but normally it is NIL
CONV
NIL
copy value of requiredNavigationPerformance
TACAN
any value, but normally it is NIL
TACAN
NIL
copy value of requiredNavigationPerformance
RNAV
Any value
PBN
RNAV
copy value of requiredNavigationPerformance
OTHER:RNP
Any value
PBN
RNP
copy value of requiredNavigationPerformance
OTHER:...
any value, but normally it is NIL
OTHER
OTHER:...
copy value of requiredNavigationPerformance
- add a child aircraftCapability.AircraftCharacteristic element that applies the following mapping rules:
- Remove the navigationType and the requiredNavigationPerformance, as applicable.
- [MAPC-00] For each InstrumentApproachProcedure, StandardInstrumentDeparture or StandardInstrumentArrival that has an assigned value for the RNAV attribute or that has a child aircraftCharacteristic element:
- if there exist child aircraftCharacteristic.AircraftCharacteristic elements
- rename any aircraftCharacteristic child element into aircraftCapability
- in each of the AircraftCharacteristic add navigationType, navigationAccuracy and modify or add navigationSpecification as follows:
(AIXM 5.1.1) SID/STAR/IAP
(AIXM 5.2) AircraftCharacteristic
RNAV
aircraftCharacteristic.AircraftCharacteristic.navigationSpecification
navigationType
navigationSpecification
navigationAccuracy
YES
RNAV_10, RNAV_5, RNAV_2, RNAV_1, RNP_4, RNP_2, RNP_APCH, RNP_AR_APCH, OTHER:...
PBN
keep the same value
NIL
YES
BASIC_RNP_1
PBN
OTHER:BASIC_RNP_1
NIL
YES
ADVANCED_RNP_1
PBN
OTHER:ADVANCED_RNP_1
NIL
NO, OTHER:...
RNAV_10, RNAV_5, RNAV_2, RNAV_1, RNP_4, RNP_2, RNP_APCH, RNP_AR_APCH, OTHER:...
PBN
keep the same value
(Note: the RNAV attribute value is disregarded)
NIL
NO, OTHER:...
BASIC_RNP_1
PBN
OTHER:BASIC_RNP_1
(Note: the RNAV attribute value is disregarded)
NIL
NO, OTHER:...
ADVANCED_RNP_1
PBN
OTHER:ADVANCED_RNP_1
(Note: the RNAV attribute value is disregarded)
NIL
YES
NIL
PBN
RNAV
NO
NIL
CONV
NIL
NIL
NIL
RNAV_10, RNAV_5, RNAV_2, RNAV_1, RNP_4, RNP_2, RNP_APCH, RNP_AR_APCH, OTHER:...
PBN
keep the same value
NIL
NIL
BASIC_RNP_1
PBN
OTHER:BASIC_RNP_1
NIL
NIL
ADVANCED_RNP_1
PBN
OTHER:ADVANCED_RNP_1
NIL
- Otherwise (no existing child aircraftCharacteristic.AircraftCharacteristic element), insert a new child aircraftCapability.AircraftCharacteristic element as follows:
(AIXM 5.1.1) SID/STAR/IAP
(AIXM 5.2) AircraftCharacteristic
RNAV
navigationType
navigationSpecification
navigationAccuracy
YES
PBN
RNAV
NIL
NO
CONV
NIL
NIL
OTHER:...
OTHER
OTHER:...
NIL
- if there exist child aircraftCharacteristic.AircraftCharacteristic elements
- Remove the RNAV attribute.
- [MAPC-00] For each ApproachCondition that has a child requiredNavigationPerformance element
- Rename the element into navigationAccuracy
- [MAPC-00] For each ConditionCombination, AirspaceActivation, CirclingArea, DepartureArrivalCondition, FlightConditionElement(Choice), ObstacleAssessmentArea that has a descendant AircraftCharacteristic with a navigationSpecification child element, although such situations are most likely an error, but they need to be covered for mapping completeness sake:
- add a child aircraftCapability.AircraftCharacteristic element as follows:
(AIXM 5.1.1) AircraftCharacteristic
(AIXM 5.2) AircraftCharacteristic
navigationSpecification
navigationType
navigationSpecification
navigationAccuracy
RNAV_10, RNAV_5, RNAV_2, RNAV_1, RNP_4, RNP_2, RNP_APCH, RNP_AR_APCH, OTHER:...
PBN
Keep the same value
NIL
BASIC_RNP_1
PBN
OTHER:BASIC_RNP_1
NIL
ADVANCED_RNP_1
PBN
OTHER:ADVANCED_RNP_1
NIL
Mapping AIXM 5.2 to AIXM 5.1.1 (backward)
- For each RouteSegment that has AircraftCharacteristic child elements:
- If there is a single aircraftCapability.AircraftCharacteristic child element that has assigned values only for the navigationType and/or navigationSpecification and/or navigationAccuracy elements, then apply the following mapping rules:
(AIXM 5.2) AircraftCharacteristic
(AIXM 5.1.1) Route Segment
navigationType
navigation Specification
navigation Accuracy
navigation Type
required Navigation Performance
annotation.Note
[MAPC-00]
CONV
NIL
NIL
CONV
NIL
NIL
[MAPC-00]
TACAN
NIL
NIL
TACAN
NIL
NIL
[MAPC-03]
PBN
value
value
OTHER:PBN
NIL
● purpose=“OTHER:BACKWARD_MAPPING”;
● translatedNote.LinguisticNote.note=”navigationSpecification: <value of navigationSpecification> <uom>; navigationAccuracy: <value of navigationAccuracy>”,
● propertyName = “requiredNavigationPerformance”
[MAPC-03]
OTHER:...
value
value
OTHER:...
NIL
● purpose=“OTHER:BACKWARD_MAPPING”;
● translatedNote.LinguisticNote.note=”navigationSpecification: <value of navigationSpecification> <uom>; navigationAccuracy: <value of navigationAccuracy>”,
● propertyName = “requiredNavigationPerformance”
[MAPC-03]
any other combination
OTHER
NIL
● purpose=“OTHER:BACKWARD_MAPPING”;
● translatedNote.LinguisticNote.note= “navigationType: <value of navigationType>; navigationSpecification: <value of navigationSpecification> <uom>; navigationAccuracy: <value of navigationAccuracy>”,
● propertyName = “navigationType”
- [MAPC-03] Otherwise, from the three backward mapping options available in this case, the first two (discard the 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:
- Add an annotation.Note associated with the RouteSegment having:
- purpose=“OTHER:BACKWARD_MAPPING”;
- LinguisticNote.note=“[1] navigationType: <value of navigationType>; navigationSpecification: <value of navigationSpecification> <uom>; navigationAccuracy: <value of navigationAccuracy>, [2] etc.”, where “[1]” indicates that this needs to be repeated as many times as necessary to cover all occurrences of the AircraftCharacteristic class
- Remove the AircraftCharacteristic child elements.
- Add an annotation.Note associated with the RouteSegment having:
- [MAPC-00] For each InstrumentApproachProcedure, StandardInstrumentDeparture, StandardInstrumentArrival that has AircraftCharacteristic child elements:
- rename any aircraftCapability child element into aircraftCharacteristic;
- [MAPC-00] For each ArrivalFeederLeg , ArrivalLeg , DepartureLeg , InitialLeg , IntermediateLeg , MissedApproachLeg that has AircraftCharacteristic child elements:
- rename any aircraftCapability child element into aircraftCharacteristic;
- [MAPC-03] For each AircraftCharacteristic that is children of any other element except RouteSegment and which has assigned values for navigationType and/or navigationAccuracy and/or navigationSpecification, apply the following mapping:
(AIXM 5.2) AircraftCharacteristic
(AIXM 5.1.1) AircraftCharacteristic
navigationType
navigation Specification
navigation Accuracy
navigation Specification
annotation.Note
[MAPC-00]
NIL
RNAV_10, RNAV_5, RNAV_2, RNAV_1, RNP_4, RNP_2, RNP_APCH, RNP_AR_APCH, OTHER:...
NIL
copy value of navigationSpecification
NIL
[MAPC-00]
NIL
RNAV, RNP, RNP_1, A_RNP, RNP_0_3
NIL
copy value of navigationSpecification prefixed with OTHER:
NIL
[MAPC-03]
any other combination
NIL
● purpose=“OTHER:BACKWARD_MAPPING”;
● translatedNote.LinguisticNote.note= “navigationType: <value of navigationType>; navigationSpecification: <value of navigationSpecification> <uom>; navigationAccuracy: <value of navigationAccuracy>”,
● propertyName = “navigationSpecification”
- For each ApproachCondition that has a navigationAccuracy assigned value:
- [MAPC-00] if the value has at maximum a single decimal, then rename the element navigationAccuracy into requiredNavigationPerformance
- [MAPC-06] if the value has two decimals, then from the three backward mapping options available in this case, the first two (discard the 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:
- Add an annotation.Note associated with the ApproachCondition having:
- purpose=“OTHER:BACKWARD_MAPPING”;
- LinguisticNote.note=“navigationAccuracy: <value of navigationAccuracy>”
- propertyName =”requiredNavigationPerformance”
- Remove the navigationAccuracy child element.
- Add an annotation.Note associated with the ApproachCondition having:
Mapping example
(Note: for mapping test data see: https://github.com/aixm/mapping_52_511/tree/master/AIXM-xxx)
AIXM Input | AIXM Output |
---|---|