AIXM Airports to INSPIRE Air Transport Networks

Liz Sanderson
Liz Sanderson
  • Updated

FME Version

  • FME 2021.1


This example demonstrates how FME can be used to transform AIXM 5 aeronautical data into INSPIRE* compliant airports, part of the Air Transport Networks theme. Air Transport Networks are a sub-theme of the INSPIRE Annex I Transport Networks theme, which includes road, rail, air and water transport systems, and related infrastructure. Part of the Air Transport Networks, the aerodrome node is a point feature used to represent the aerodrome and is defined as an area of land or water, as well as related buildings and equipment, used for the arrival and departure of airplanes and/or helicopters. Aerodrome type can be aerodrome, heliport, aerodrome and heliport, or landing site. Both AIXM 5 and INSPIRE GML are open data standards. Open data standards are useful as they promote interoperability. Additionally, these data formats have been rigorously tested and have a large user base worldwide. In some ways AXIM 5 is more complex than INSPIRE GML. For example, it includes nested feature types, or feature types inside other feature types. Reading and writing both INSPIRE GML and AIXM GML are possible with FME.

In this demo, two INSPIRE features types, AerodromeNode and AerodromeType, are written from one AIXM 5 data source. After writing, the INSPIRE GML can be validated to ensure it complies with XML syntax and the INSPIRE XML schema (XSD).


AIXM5 to INSPIRE Air Transport Networks Workflow

1. Read in source data

The AIXM5 reader is used to read the AirportHeliportTimeSlice AIXM5 source data, which contains point aerodrome data, including heliports. TimeSlice is the AIXM5 feature type that contains the geometries which will be utilized for the aerodrome nodes. EU country data (admin98) is read using the Shapefile Reader.

2. Combine attributes

AIXM5 TimeSlice and EU country data are combined using the PointOnAreaOverlayer transformer, so that points within the EU shapefile area are supplemented with additional attributes such as country name. This additional information is later used to populate INSPIRE attributes such as namespace and IATA values.

3. Geometry transformation

AIXM5 TimeSlice data contains complex, multi-part geometry. However, the INSPIRE feature types require a simpler, single-part geometry. To obtain the required geometry, two steps are necessary. The aerodrome coordinates are first extracted from the AIXM5 data using the CoordinateExtractor transformer, and then the VertexCreator transformer is used to replace the AIXM geometry with a new single-part geometry point for each aerodrome node. Also, a GeometryPropertySetter is used to give the feature's geometry the appropriate name before it is written out to the destination feature type - see Geometry naming below.

4. Reprojection

Data is reprojected to the official INSPIRE coordinate reference system, ETRS89, also known as EPSG:4258.

5. Data addition

Necessary attributes are populated through a variety of methods including default values, attribute mapping and schema mapping. A null attribute is created in an AttributeCreator transformer. The null attribute helps to determine how to populate the IATA and ICAO xsi_nil fields later in the workflow. If the IATA or ICAO fields are populated, then xsi_nil is false. However, if the fields are not populated, meaning they have a null value, then xsi_nil is true. The significantPoint attribute indicates whether or not an aerodrome location is used to define flight paths, or used for other navigational purposes. For demo purposes, all significantPoint values were assigned as true. The namespace attribute is populated using the two letter country code, as well as the national mapping agency acronym if known, or the default value of NMA (National Mapping Agency). If an aerodrome node does not overlap the EU country data, the default EU.JRC.TN is assigned as the namespace value. The International Air Transport Association (IATA) and International Civil Aviation Organization (ICAO) aerodrome codes are required by the INSPIRE specifications, though these values are voidable. All aerodromes have IATA and ICAO codes, however the sample AIXM 5 data only contains ICAO values. To populate IATA fields, SchemaMapper transformers are used to map IATA values based on ICAO values, or airport name. Not all IATA fields were populated in this process, as the CSV table did not contain values for all aerodrome nodes. ICAO and IATA fields which are not populated through schema mapping, are given a value of null. Sample of the CSV used for mapping IATA values:

6. Schema mapping

It is possible to map directly to destination fields in the INSPIRE GML Writer, but this is only automatic when the attribute names are identical. In other cases, it is necessary to perform schema mapping to rename the source attributes to the required destination attributes, either by using an AttributeCopier or AttributeCreator. For example, the source attribute “name” is mapped to the INSPIRE destination attribute “geographicalName.GeographicalName.spelling{0}.SpellingOfName.text”.

Attribute mapping using an AttributeCopier:

7. Geometry naming

For the geometry to be correctly mapped in the destination GML object, the geometry must be named, as indicated in the writer’s feature type properties.The xml_geometry field defines the name of an INSPIRE feature type geometry. If the name does not match, the geometry will not be written to the destination feature type. For AerodromeNode, the geometry name is set to ‘geometry’, while for AerodromeType, the geometry name is set to ‘location’.
Aerodrome Node feature type properties:

8. INSPIRE GML writing and validation

The INSPIRE GML Writer is used to write AerodromeNode and AerodromeType feature classes. The AerodromeNode feature type contains more attributes than AerodromeType. AerodromeType is mainly used to capture the type of air transport node, either AD for aerodrome, HP for heliport, or LS for landing site.
INSPIRE GML can be validated using the XMLValidator transformer, or by using the “Validate Output File” writer parameter in the Navigator. Validation ensures the INSPIRE GML complies with XML syntax and the INSPIRE XML schema (XSD).

The XML can be validated against syntax and schema, within the workspace, by setting the Validate Output File parameter of the INSPIRE Writer to 'Yes'. Any errors or warnings will be recorded within the log when the workspace is run. Once the workspace is satisfactory, turning off validation can help improve writing performance.

Validate Output File parameter in the Navigator window:



Aerodrome Nodes can be read with the INSPIRE GML Reader in Data Inspector. For a quicker display time, under reader parameters, select one or no INSPIRE theme, or specify one application schema.



Demo Workspace


NOTE: This example is for demo purposes only. The resulting flight data is not to be used for navigation or any other operational purposes. * INSPIRE is a European Union directive that aims to create a spatial data infrastructure of EU data, which will enable policy making, especially environmental, across boundaries. INSPIRE also aims to improve public access to spatial information. For more information please visit the INSPIRE website.

Was this article helpful?



Please sign in to leave a comment.