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

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







Advertisement
/ 20 []
Download Presentation
Comments
lorin
From:
|  
(666) |   (0) |   (0)
Views: 180 | Added: 28-05-2012
Rate Presentation: 0 0
Description:
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.
Developing an Open Source AIXM5 Java Library (AIXM-J)

An Image/Link below is provided (as is) to

Download Policy: Content on the Website is provided to you AS IS for your information and personal use only and may not be sold or licensed nor shared on other sites. SlideServe reserves the right to change this policy at anytime. 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -




Slide 1

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

Steven Chase

Lead Software Engineer

MITRE/CAASD

March 19, 2008

Slide 2

Overview

  • Background

    • Tools

    • Data sources

  • Open source project

    • Goals

    • Technology

    • Challenges

    • Status

    • Using the library

  • Demo

Slide 3

MITRE/CAASD Background

  • The MITRE Corporation

    • Private, independent, not-for-profit organization

    • Chartered to work in the public interest

  • CAASD

    • 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

Slide 4

Procedure design, flyability, simulation, visualization

ILS approach/airport safety analysis, CRM

CAASD Developed Tools

Safety Assessment Toolset

TARGETS

Slide 5

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)

Slide 6

Goals

  • 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

Slide 7

Technology

  • 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

Slide 8

Challenges

  • Understanding the model

  • Model is still changing

  • Sample XML is limited

  • Implementing GML

Slide 9

Status

  • Features

    • AirportHeliport

    • Runway

    • Navaid

    • Designated Point

    • Vertical Structure

    • STAR/SID

    • Basic Message

    • GML Point and ValidTime

<aixm:VerticalStructure xmlns:aixm="http://www.aixm.aero/schema/5.0" gml:id="19608436">

<aixm:timeSlice>

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

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

<aixm:type>POLE</aixm:type>

<aixm:constructionStatus>COMPLETED</aixm:constructionStatus>

<aixm:material>STEEL</aixm:material>

<aixm:markingPattern>STEEL</aixm:markingPattern>

<aixm:markingFirstColour>RED</aixm:markingFirstColour>

<aixm:markingSecondColour>BLACK</aixm:markingSecondColour>

<aixm:markingICAOStandard>YES</aixm:markingICAOStandard>

<aixm:group>NO</aixm:group>

<aixm:isMadeOf>

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

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

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

<aixm:hasPointShape>

<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:verticalDatum>EGM96</aixm:verticalDatum>

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

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

</aixm:ElevatedPoint>

</aixm:hasPointShape>

</aixm:VerticalStructurePart>

</aixm:isMadeOf>

</aixm:VerticalStructureTimeSlice>

</aixm:timeSlice>

</aixm:VerticalStructure>

Sample XML – Vertical Structure

Slide 10

Status (ctd)

  • Includes sample programs that read/write AIXM5

    • XML has not been validated

  • Uses GNU General Public License (GPL)

  • Hosted on Sourceforge

    • http://sourceforge.net/projects/aixm-j

Slide 11

Using the Library

  • Add aixm-j, dom4j, jaxen jar files to classpath

AIXM-J Library

Objects

AIXM5 XML

Your

Application

Aviation

Objects

Convert to

AIXM-J Objects

dom4j

Generating AIXM5 XML

Slide 12

Demo

© 2008 The MITRE Corporation. All rights reserved.

12

Document Number Here

Slide 14

Sample Code/Notes

© 2008 The MITRE Corporation. All rights reserved.

14

Slide 15

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

timeSlice.setGmlId(String.valueOf(airport.getUniqueKey()));

// set designator

timeSlice.setDesignator(airport.getAirportId());

// set elevation

AixmVerticalDistanceValue fieldElevation =

new AixmVerticalDistanceValue(airport.getElevation(),

AixmUomDistanceVerticalType.FT);

timeSlice.setFieldElevation(fieldElevation);

// set rest of fields here…

// add the timeSlice to AirportHeliport

ah.addTimeSlice(timeSlice);

// return the AixmFeature object

return ah;

}

Slide 16

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

document.setRootElement(element);

// 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);

writer.write(document);

writer.flush();

}

catch (Exception ex) {

ex.printStackTrace();

}

Slide 17

Generated XML

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

<aixm:AirportHeliport xmlns:aixm="http://www.aixm.aero/schema/5.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" gml:id="org.mitre.caasd.aixm.feature.airportheliport.airportheliport.AixmAirportHeliport6468511">

<aixm:timeSlice>

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

<aixm:designator>KIAD</aixm:designator>

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

<aixm:locationIndicatorICAO>K6KIAD</aixm:locationIndicatorICAO>

<aixm:type>AD</aixm:type>

<aixm:private>NO</aixm:private>

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

<aixm:serves>

<aixm:City gml:id="org.mitre.caasd.aixm.data.AixmCity15925147">

<aixm:name>WASHINGTON</aixm:name>

</aixm:City>

</aixm:serves>

<aixm:magneticVariation>-10.0</aixm:magneticVariation>

<aixm:dateMagneticVariation>2000</aixm:dateMagneticVariation>

<aixm:hasReferencePoint>

<aixm:ElevatedPoint xmlns:aixm="http://www.aixm.aero" gml:id="23811352">

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

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

</aixm:ElevatedPoint>

</aixm:hasReferencePoint>

Slide 18

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

AixmFeature(AixmFeatureType.Navaid).parseElements(navaidElement);

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

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

// Free up memory

navaidElement.detach();

}

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

} );

// Read the XML file

saxReader.read(br);

Slide 19

Notes

  • 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

Slide 20

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


Copyright © 2014 SlideServe. All rights reserved | Powered By DigitalOfficePro