developing an open source aixm5 java library aixm j l.
Skip this Video
Download Presentation
Developing an Open Source AIXM5 Java Library (AIXM-J)

Loading in 2 Seconds...

play fullscreen
1 / 20

Developing an Open Source AIXM5 Java Library (AIXM-J) - PowerPoint PPT Presentation

  • Uploaded on

Developing an Open Source AIXM5 Java Library (AIXM-J). Steven Chase Lead Software Engineer MITRE/CAASD March 19, 2008. Overview. Background Tools Data sources Open source project Goals Technology Challenges Status Using the library Demo. MITRE/CAASD Background.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Developing an Open Source AIXM5 Java Library (AIXM-J)' - lorin

Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
developing an open source aixm5 java library aixm j

Developing an Open Source AIXM5 Java Library(AIXM-J)

Steven Chase

Lead Software Engineer


March 19, 2008

  • Background
    • Tools
    • Data sources
  • Open source project
    • Goals
    • Technology
    • Challenges
    • Status
    • Using the library
  • Demo
mitre caasd background
MITRE/CAASD Background
  • The MITRE Corporation
    • Private, independent, not-for-profit organization
    • Chartered to work in the public interest
    • Federally Funded Research & Development Center (FFRDC) operated by MITRE
    • Provides systems research and development for the Federal Aviation Administration (FAA) and international civil aviation authorities
caasd developed tools
Procedure design, flyability, simulation, visualization

ILS approach/airport safety analysis, CRM

CAASD Developed Tools

Safety Assessment Toolset


data sources
Data Sources
  • National Flight Data Center (NFDC/NASR)
  • AVN Information Services (AVNIS)
  • Jeppesen
  • National Aeronautical Charting Office (NACO)
  • Digital Aeronautical Flight Information File (DAFIF)
  • Digital Obstacle File (DOF)
  • Elevation Data (DEM, DTED, etc)
  • Develop AIXM5 Java library that is:
    • Independent
    • Easy to use
    • Well documented
    • Extensible
    • AIXM5 compliant
  • Enable applications to read/write AIXM5 data
  • Handle large data sets
  • Sun JDK (5 or greater)
    • Enum, generics, enhanced for loop, etc.
  • Dom4j
    • Library for using XML, XPath (jaxen) and XSLT
    • Full support for DOM, SAX and JAXP
    • Easy, fast, open source
  • Why not use JAXB or XMLBeans?
    • In early versions, not all AIXM5 schema elements and attributes were supported
    • Auto-generated code may be hard to work with
    • Other attempts have been made
  • Understanding the model
  • Model is still changing
  • Sample XML is limited
  • Implementing GML
  • Features
    • AirportHeliport
    • Runway
    • Navaid
    • Designated Point
    • Vertical Structure
    • STAR/SID
    • Basic Message
    • GML Point and ValidTime

<aixm:VerticalStructure xmlns:aixm="" gml:id="19608436">


<aixm:VerticalStructureTimeSlice gml:id="26795951">

<aixm:name>TEST OBSTACLE</aixm:name>










<aixm:VerticalStructurePart gml:id="25276323">

<aixm:verticalExtent uom="FT">500.0</aixm:verticalExtent>

<aixm:verticalExtentAccuracy uom="FT">10.0</aixm:verticalExtentAccuracy>


<aixm:ElevatedPoint gml:id="20051738">

<gml:pos>70.0 -122.0</gml:pos>

<aixm:elevation uom="FT">1500.0</aixm:elevation>

<aixm:geoidUndulation uom="M">212.0</aixm:geoidUndulation>


<aixm:horizontalAccuracy uom="M">15.0</aixm:horizontalAccuracy>

<aixm:verticalAccuracy uom="M">10.0</aixm:verticalAccuracy>








Sample XML – Vertical Structure

status ctd
Status (ctd)
  • Includes sample programs that read/write AIXM5
    • XML has not been validated
  • Uses GNU General Public License (GPL)
  • Hosted on Sourceforge
using the library
Using the Library
  • Add aixm-j, dom4j, jaxen jar files to classpath

AIXM-J Library







Convert to

AIXM-J Objects


Generating AIXM5 XML


© 2008 The MITRE Corporation. All rights reserved.


Document Number Here

sample code notes
Sample Code/Notes

© 2008 The MITRE Corporation. All rights reserved.


sample conversion method
Sample Conversion Method

// Takes an Airport object and returns an AixmFeature object

public static AixmFeature createAixmAirport(Airport airport) {

// create an AixmFeature object

AixmFeature ah = new AixmFeature(AixmFeatureType.AirportHeliport);

// create an AixmAirportHeliportTimeSlice

AixmAirportHeliportTimeSlice timeSlice = new AixmAirportHeliportTimeSlice();

// set gmlId


// set designator


// set elevation

AixmVerticalDistanceValue fieldElevation =

new AixmVerticalDistanceValue(airport.getElevation(),



// set rest of fields here…

// add the timeSlice to AirportHeliport


// return the AixmFeature object

return ah;


generating aixm5 xml
Generating AIXM5 XML

// Convert airport to AixmFeature object

AixmFeature aixmAirport = AixmAirportUtil.createAixmAirport(airport);

// Create dom4j Document

Document document = DocumentHelper.createDocument();

// Create the root Element

QName qname = QName.get(“AirportHeliport”, AixmConstants.AIXM_NAMESPACE);

Element rootElement = DocumentHelper.createElement(qname);

// Set the root Element, XPath won’t work until you do this


// Call AIXM-J method to add dom4j Elements to represent the airport

aixmAirport.addElements(rootElement, document);

// Pretty print the document

OutputFormat formatter = OutputFormat.createPrettyPrint();

try {

XMLWriter writer = new XMLWriter(System.out, formatter);




catch (Exception ex) {



generated xml
Generated XML

<?xml version="1.0" encoding="UTF-8"?>

<aixm:AirportHeliport xmlns:aixm="" xmlns:gml="" xmlns:xlink="" gml:id="org.mitre.caasd.aixm.feature.airportheliport.airportheliport.AixmAirportHeliport6468511">


<aixm:AirportHeliportTimeSlice gml:id="1576249658">


<aixm:name>WASHINGTON DULLES INTL</aixm:name>




<aixm:elevation uom="FT">313.0</aixm:elevation>


<aixm:City gml:id="">







<aixm:ElevatedPoint xmlns:aixm="" gml:id="23811352">

<gml:pos>38.94453194444444 -77.45580972222223</gml:pos>

<aixm:elevation uom="FT">313.0</aixm:elevation>



parsing an aixm5 ils file
Parsing an AIXM5 ILS File

// Open the file, create a BufferedReader and SAXReader

FileInputStream is = new FileInputStream(new File("ILS.aixm.xml"));

BufferedReader br = new BufferedReader(new InputStreamReader(is));

SAXReader saxReader = new SAXReader();

// Add handler for each Navaid tag

saxReader.addHandler("/ils-subscriber-file/Navaid", new ElementHandler() {

public void onEnd(ElementPath path) {

Element navaidElement = path.getCurrent();

// Convert the dom4j Element to an AixmFeature object

AixmFeature navaid = new


// Do something with the data here, in this example we just print the object

System.out.println("navaid : " + navaid);

// Free up memory



public void onStart(ElementPath path) {/* do nothing */}

} );

// Read the XML file;

  • AIXM – Aeronautical Information Exchange Model (AIXM) is designed to enable the management and distribution of Aeronautical Information Services (AIS) data in digital format
  • XMLBeans – XMLBeans is a technology for accessing XML by binding it to Java types
  • JDK – Java Development Kit, includes Java compiler, runtime environment, etc.
  • JAXB – The Java Architecture for XML Binding
  • SAX – Simple API for XML (SAX) is a serial access parser API for XML; event driven; user defines callback methods that are called during parsing
  • DOM – Document Object Model (DOM) is a standard object model for representing XML formats; tree based model
  • JAXP – Java API for XML Processing
  • XPath – Xml Path (XPath) is a language for selecting nodes from an XML document
  • Jaxen – Java XPath Engine (Jaxen) is an open source XPath library for Java
  • Dom4j – dom4j is an easy to use, open source library for working with XML, XPath and XSLT
  • XSLT – Extensible Stylesheet Language Transformations (XSLT) is a language for transforming XML documents into other XML documents
notes ctd
Notes (ctd)
  • CAASD – Center for Advanced Aviation System Development, operated by MITRE
  • TARGETS – Terminal Area Route Generation, Evaluation and Traffic Simulation
  • ILS – Instrument Landing System
  • CRM – Collision Risk Model
  • DEM – Digital Elevation Model
  • DTED – Digital Terrain Elevation Data
  • NASR – National Airspace System Resources