aixm / donlon Goto Github PK
View Code? Open in Web Editor NEWA fictitious set of digital AIS data sets complying with the ICAO Aneex 15, 16th edition and the new PANS-AIM provisions, in AIXM 5.1.1 format
A fictitious set of digital AIS data sets complying with the ICAO Aneex 15, 16th edition and the new PANS-AIM provisions, in AIXM 5.1.1 format
Although the dataset is a sample one it is highly unlikely that at the same coordinates you would have 2 different NDB antennas
2d2c95dc-cfec-4eae-96ca-dc95fff03757
aixm:typeNDB</aixm:type>
aixm:designatorROK</aixm:designator>
aixm:nameROCKBY</aixm:name>
aixm:navaidEquipment
<aixm:NavaidComponent gml:id="N-KL411">
<aixm:theNavaidEquipment
xlink:href="urn:uuid:04e56175-c5f3-492d-a453-f4cfdad94e6a"
xlink:title="NDB_ROK"/>
</aixm:NavaidComponent>
</aixm:navaidEquipment>
aixm:location
<aixm:ElevatedPoint srsName="urn:ogc:def:crs:EPSG::4326" gml:id="navelKL11">
gml:pos51.983333 -32.55</gml:pos>
<aixm:horizontalAccuracy uom="M">100</aixm:horizontalAccuracy>
</aixm:ElevatedPoint>
</aixm:location>
2d2c95dc-cfec-4eae-96ca-dc95fff03756
aixm:typeNDB</aixm:type>
aixm:designatorROB</aixm:designator>
aixm:nameROBINE</aixm:name>
aixm:navaidEquipment
<aixm:NavaidComponent gml:id="N-KL41">
<aixm:theNavaidEquipment
xlink:href="urn:uuid:04e56175-c5f3-492d-a453-f4cfdad94e6f"
xlink:title="NDB_ROB"/>
</aixm:NavaidComponent>
</aixm:navaidEquipment>
aixm:location
<aixm:ElevatedPoint srsName="urn:ogc:def:crs:EPSG::4326" gml:id="navelKL1">
gml:pos51.983333 -32.55</gml:pos>
<aixm:horizontalAccuracy uom="M">100</aixm:horizontalAccuracy>
</aixm:ElevatedPoint>
</aixm:location>
RouteSegment with gml:identifiers cc9c7cc4-e000-4741-854d-b7d93973e089 and cc9c7cc4-e000-4741-854d-b7d93973e08f look like duplicates. They are also isolated from the rest of the route, as shown with (www.gitHub.com/eurocontrol-swim/aixm-graph).
Examples of route segment distances are coded as KM, although technically correct probably from the allowable values, most users are more used to seeing NM for display of route distances, maybe the provided example should use NM instead of KM for the route lengths
The following UL123 route can't be displayed in QGIS as the GML is not complete <aixm:RouteSegmentTimeSlice gml:id="RSG_UL123_ABOLA_ILURU">
Seems the aixm:curveExtent element is not coded
The coding guidelines mention in https://ext.eurocontrol.int/aixm_confluence/pages/viewpage.action?pageId=3087576 that it is important to know which of the navaid equipment provides the navigable position however the example has no property providesNavigableLocation
It would be useful to have the property
The Navaid coding checklist puts this property as conditional as mentioned here https://ext.eurocontrol.int/aixm_confluence/display/ACGAIP/Navaid+-+AIXM+Coding+Checklist, it seems conditional would depend if it is a combined navaid and there is a need to show which provides the navigation.
ILS with identifier 8fe878fe-0035-4b17-a307-81f904dd4403 has 4 navaid equipment xlink:href pointing to the same MKR instead of the real equipments.
There are at two wrongly formatted xlink:href values:
xlink:href="uuid.0942496b-7ce7-0b22-e053-0b751dc2499f"
xlink:href="urn:uuid.3618ff4a-13c0-451b-b510-27ea9e716c0f"
There might be more, needs to be checked for the whole file
Seems the only features in the dataset that have no EPSG information are NDB, honestly I can't determine if the EPSG for NDB are declared somewhere else as I'm not that skilled with the AIXM code itself.
Here is one example
aixm:location
<aixm:ElevatedPoint gml:id="epLLZ_OXS">
gml:pos52.375583 -31.965222</gml:pos>
<aixm:horizontalAccuracy xsi:nil="true" nilReason="unknown"/>
</aixm:ElevatedPoint>
</aixm:location>
The coded length of the route segment doesn't match the length that I calculate using the start/end points
See the following example:
<aixm:RouteSegment gml:id="uuid.cc9c7cc4-e000-4741-854d-b7d93973e099">
aixm:magneticTrack74.0</aixm:magneticTrack>
aixm:reverseMagneticTrack254.0</aixm:reverseMagneticTrack>
<aixm:length uom="KM">69.3</aixm:length>
<aixm:Curve srsName="urn:ogc:def:crs:EPSG::4326" gml:id="crv2110">
gml:segments
gml:GeodesicString
gml:posList42.5016666666667 -37.0016666666667 42.675
-36.1733333333333</gml:posList>
</gml:GeodesicString>
</gml:segments>
</aixm:Curve>
With those pos the Distance should be 70.67 NM instead of the 69.3 NM provided in the example
The positions would be
start = 423006N 0370006W
end = 424030N 0361024W
forward_azimuth = 73.90843°
backward_azimuth =254.46899°
distance = 38.16 NM, 70.66570km
Using geodesic calculator
Line Definition
Start Point: Latitude: N42:30:06.00000, Longitude: W37:00:06.00000
End Point: Latitude: N42:40:30.00000, Longitude: W36:10:24.00000
Result: Pt1 to Pt2 Pt2 to Pt1
Azimuth: 73.90843 254.46899
Reverse Azimuth: 254.46899 73.90843
Distance: 38.16 (nm) 70665.70 (m)
See check using QGIS which provides the same value as the geodesic calculator
<gml:CircleByCenterPoint numArc="1">
<gml:pointProperty xlink:href="#p9898" xlink:title="DPN_EADH"/>
<gml:radius uom="KM">10.0</gml:radius>
</gml:CircleByCenterPoint>
Such reference is suitable for one-time display in GML software, but is not suitable for an ICAO AIP data set (in my opinion, at least, but it seems to be supported by the coding guidelines). I would suggest to use a local reference to the DesignatedPoint feature rather than to the aixm:Point in that feature.
For practical purposes it would be better to use an airport maybe one that is abandoned that is not in the middle of nowhere so that people may actually use an image backdrop/satellite imagery.
This would allow to create a complete airport with taxiway, runway geometry, obstacles etc that can be reviewed. The current NAT example is not very useful with even geoborders that can't be visually linked to anything.
As it is there is already a disclaimer provided that this is not operational data, I am sure there is some country providing open data/free aerial imagery and resources that can be used, probably USA to create an almost real operational AIXM dataset which would be more useful.
The following xlink:title are inverted with respect to the xlink:href
<aixm:navaidEquipment>
<aixm:NavaidComponent gml:id="N-df8103a4">
<aixm:collocationGroup>1</aixm:collocationGroup>
<aixm:theNavaidEquipment
**xlink:href="urn:uuid:7692166e-60e6-467d-b5f0-c728aeae85d6"
xlink:title="VOR_BOR"/>**
</aixm:NavaidComponent>
</aixm:navaidEquipment>
<aixm:navaidEquipment>
<aixm:NavaidComponent gml:id="N-df8103a5">
<aixm:collocationGroup>1</aixm:collocationGroup>
<aixm:theNavaidEquipment
**xlink:href="urn:uuid:0a45a38f-0f96-4ace-b09e-310ac0415693"
xlink:title="DME_BOR"/>**
</aixm:NavaidComponent>
There is no reference image or chart that depics the contents of the file, without one it is very difficult to know what information should be shown or not and debug any GML visor. Also Luciad AIXM viewer is not able to view this file as it is using the latest schema and Luciad is not updated to be able to check. As it is there is no way to actually debug this file.
I am seeing as an example that the lenghts have a lot of decimal places, wondering if this is supposed to be this way
gml:id="RSG_UA4_WOB_EKO
<aixm:length uom="KM">771.5999755859375</aixm:length>
I have been using QGIS which is opensource to analyse AIXM data and for one I do not know if the issue is with the software itself on the implementation or on the AIXM standard or the provided file, I would suggest more effort should be given to provide as much compatibility with off the shelf GML viewers like QGIS and OpenJUMP and not focus only on specialised tools.
For example feartures that use Point over ElevatedPoint render correctly so study should be made to see where is the problem, QGIS has INSPIRE compatibility and should be able to read GML fairly as it uses GDAL and other libraries under the hood which are used by many projects.
-> render correctly
<aixm:Point srsName="urn:ogc:def:crs:EPSG::4326" gml:id="pBOR10">
gml:pos51.529284 -33.555661</gml:pos>
<aixm:horizontalAccuracy xsi:nil="true" nilReason="unknown"/>
</aixm:Point>
-> render incorrectly
<aixm:ElevatedPoint srsName="urn:ogc:def:crs:EPSG::4326" gml:id="ID_343">
gml:pos55.36666666666667 -33.983333333333334</gml:pos>
</aixm:ElevatedPoint>
Features with gml:id="uuid.902369de-20fd-493e-8b73-01e240efc176" and gml:id="uuid.902369de-20fd-493e-8b73-01e240efc177" have the same gml:identifier.
Better correct both and check also dependent files.
In file EA_AIP_DS_FULL_20170701.xml
RunwayDeclaredDistanceValue / distanceAccuracy is missing for all associatedDeclaredDistance.
According to Runway - AIXM Coding Checklist it is mandatory. [https://ext.eurocontrol.int/aixm_confluence/display/ACGAIP/Runway+-+AIXM+Coding+Checklist]
There are 4 instances in the Donlon sample where dynamic type declarations are used:
This is not allowed by the AIXM GML Profile rules. See section 12.6.5 in the OGC 12-028r1 - Use of Geography Markup Language (GML) for Aviation Data. Allowing for xsi:type would add an additional source of errors, and an unnecessary complexity to implementations. Moreover, it is strongly discouraged since GML 3.2.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.