450 likes | 596 Views
Digital Photogrammetry Markup Language (DPML). by Stephane Fellah PCI Geomatics ASPRS - April 2001. Outline. Introduction XML technology overview DPML Overview Some potential DPML applications Conclusion. Introduction. A typical photogrammetry shop.
E N D
Digital Photogrammetry Markup Language (DPML) by Stephane Fellah PCI Geomatics ASPRS - April 2001
Outline • Introduction • XML technology overview • DPML Overview • Some potential DPML applications • Conclusion
A typical photogrammetry shop • Analytical/Digital photogrammetry environment • More than one softcopy systems • Use of other specialized photogrammetric/CAD/GIS/image processing packages • In-house programs and procedures • In-house workflow • Automation by scripting • Heterogeneous platforms and programming languages
The problems • Numerous proprietary formats for softcopies • Difficulty to process photogrammetric information to create scripts or reports • Cross-platform and cross-languages problems • Difficulty to break softcopy workflow • Problem of scalability of workflow How to solve these problems of interoperability ?
Digital Photogrammetry Markup Language (DPML) Definition Open standard application schema using XML encoding to describe photogrammetric information for both data transport and data storage, especially in a wide-area Internet context.
DPML • Inspired from Open Photogrammetry Initiative • Based on open standards • Platform, language and vendor-independent solution • Extensible • Significant advantages for processing, visualization, and data mining of photogrammetric data within a distributed computing environment • Establish the foundation for RS and Photogrammetry Web Services
What is not XML ? • It is not a programming language. • It is not the next generation of HTML. • It is not a database. • It is not specific to any horizontal or vertical market. • It is not the solution to all your problems, but it can be a very powerful tool in building such a solution.
What is XML ? • Method for annotating documents with structured data • Method for conveying the meaning of information • Looks like HTML : familiar and easy to work with for many • Extensible • hierarchical structure is user-defined • Meaning of XML tags are user-defined • User can be user-community for application domain XML is a clearly defined way to structure, describe, and interchange data.
XML advantages • Open standard (W3C recommendation) • Platform and language independent • Human readable • Multiple major vendors are building in XML support • Tools for Java,C,C++,Python,Perl from IBM,Sun,Microsoft,... • Simple to implement and process • Does not require to replace existing implementation • Provide interoperability between heterogeneous systems • Run over HTTP connection over Internet/Intranet
Sample fragment of XML document <cityMember> <Road> <gml:name>M11</gml:name> <linearGeometry> <gml:LineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coord><gml:X>0</gml:X><gml:Y>5.0</gml:Y></gml:coord> <gml:coord><gml:X>20.6</gml:X><gml:Y>10.7</gml:Y></gml:coord> <gml:coord><gml:X>80.5</gml:X><gml:Y>60.9</gml:Y></gml:coord> </gml:LineString> </linearGeometry> <classification>motorway</classification> <number>11</number> </Road> </cityMember>
XML Namespaces • XML Namespace guarantees uniqueness in the naming of XML elements and attributes • Involve the use of Uniform Resource Identifiers (URI) <schema targetNamespace="http://www.foo.net/foo" xmlns:dpml="http://www.dpml.org/dpml" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" xmlns:gml="http://www.opengis.net/gml” …. <!-- import constructs from the DPML schemas --> <import namespace="http://www.dpml.org/dpml" schemaLocation="dpml.xsd"/> . . . <dpml:FrameCamera sid=“Camera1” type=“Frame”> </schema>
XML Schema • XML Schemas are based on XML, not some specialized syntax • XML schemas support multiples data types • XML schemas allows vocabularies extension and inheritance relationships between elements without invalidating documents • XML schemas support namespace integration • XML schemas support attribute groups • Binding tools are available (Java-XML binding for ex.)
Example of Complex Type <xsd:complexType name="RegistrationMarkType"> <xsd:annotation> <xsd:documentation> RegistrationMark can describe a fiducial or a reseau mark </xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element name="Description" minOccurs="0"/> <xsd:element name="X" type=”dpml:length "/> <xsd:element name="Y" type=”dpml:length "/> <xsd:element name="stdDevX" type=”dpml:length " minOccurs="0"/> <xsd:element name="stdDevY" type=”dpml:length " minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:String" use="required"/> </xsd:complexType>
Xpath,Xlink,XPointer • Xpath - Language to used to address parts of an XML documents • Xpointer - A language that’s used to address the internal structure of XML documents (based upon Xpath) • Xlink - An XML language that specifies contructs for advanced linking in XML documents (relies on Xpointer for linking parts of documents
Example of XLink <dpml xmlns:xlink="http://www.w3.org/1999/xlink” xmlns:gml="http://www.opengis.net/gml” …. <FrameCamera xlink:type="simple” gml:remoteSchema="http://www.dpml.org/sensors.xsd#FrameCamera” xlink:href="http://www.acamerarepository.com/sensors.xml#Camera1"/>
Extensible Stylesheet Language (XSL,XSLT) • XML based syntax • Based on notion of templates and patterns • Use of XSL processor to perform transformations • XSL transformations used to : • Transform one vocabulary to another • Create dynamic document that can be rearranged, processed or filtered. • Format for presentation (DPML to SVG,HTML,PDF...)
Example StyleSheet SVG DPML XSLT Processor
DPML Design goals • Based on existing XML-schema standards (GML, CS, Units ..) • To be sufficiently extensible to support a wide variety of sensors and customized information • Provide efficient and easy-to-understand encoding of photogrammetry information • Provide a set common photogrammetric modeling objects to enable interoperability of independently-developed applications.
Schemas dependencies of DPML Sensor ‘DPML’ namespace <<includes>> CS DPML ‘CS’ namespace <<Import>> <<includes>> CT <<Import>> <<Import>> Features <<includes>> Uom ‘GML’ namespace ‘POSC’ namespace Geometry
Geographic Markup Language (GML 2.0) • OGC Recommendation Paper, 20 February 2001 OGC Document Number: 01-029 • XML encoding of geospatial information both data transport and data storage, especially in a wide-area Internet context; • Based on OGC Simple Feature Specification • Definition of Feature, Geometry and Link XML schemas • Extensible to support a wide variety of spatial tasks, from portrayal to analysis; • Enable interoperability of independently-developed applications. • Foundation for Internet GIS
Project Structure • A DPML document describes a typical photogrammetric project. Start with <DPML> tag. • A project has the following elements • Project metadata and default parameters used in the project • Unit dictionary • Coordinate System dictionary • Sensors dictionary • Ground Control Points dictionary • One or several block of images • One or several block of models
Unit dictionary • Based on OGC Document 01-008r2 Unit of measure (originally from POSC specification). Not final specs. • DPML defines built-in set of dimensionalities (Length, Angle,.. .) that are used consistently in the schema. • Units can be defined explicitly or by reference to a remote source (repository maintained by a standard body) • Will be integrated in GML 3.0 • Still some problems of consistency between the different specification of OGC • Would be nice if definition of dimensionality needs to be solved
Unit definition example <dpml xmlns:um="http://www.posc.org/schemas”.. …. < um :UnitOfMeasureBlock> < um :uomReference um : uid="m" xlink="http://www.posc.org/applications/unitsDict.xml#m"/> < um : uomReference um : uid="ft" xlink="http://www.posc.org/applications/unitsDict.xml#ft"/> < um : UnitOfMeasure uid="micron" annotation="microns""> < um : name>Micrometer</name> < um : ConversionToBaseUnit baseUnit="#m"> < posc: factor>.000001</factor> </ um : ConversionToBaseUnit> </ um : UnitOfMeasure> </ um : UnitOfMeasureBlock>
Coordinate Systems Dictionary • Based on OGC 01-009 and OGC 00-045 Documents • The dictionary supports definitions for coordinate systems and transformations. • CS can be defined explicitly or by reference to a remote source (repository maintained by a standard body) • CS will be integrated in GML in the next release (replacing SRS) • An XML schema needs to be defined, only DTD is available today.
Example of Projection encoding <CS_Projection ClassName="Transverse_Mercator"> <CS_Info/> <CS_ProjectionParameter Name="latitude_of_origin" Value="49"/> <CS_ProjectionParameter Name="central_meridian" Value="-2"/> <CS_ProjectionParameter Name="scale_factor" Value="0.999601272"/> <CS_ProjectionParameter Name="false_easting" Value="400000"/> <CS_ProjectionParameter Name="false_northing" Value="-100000"/> </CS_Projection>
Example of Horizontal Datum <CS_HorizontalDatum DatumType="1001"> <CS_Info AuthorityCode="6277" Authority="EPSG" Name="OSGB_1936"/> <CS_Ellipsoid SemiMajorAxis="6377563.396" SemiMinorAxis="6356256.90923729" InverseFlattening="299.3249646" IvfDefinitive="1"> <CS_Info AuthorityCode="7001" Authority="EPSG" Name="Airy 1830"/> <CS_LinearUnit MetersPerUnit="1"> <CS_Info AuthorityCode="9001" Abbreviation="m" Authority="EPSG" Name="metre"/> </CS_LinearUnit> </CS_Ellipsoid> <CS_WGS84ConversionInfo Dx="375" Dy="-111" Dz="431" Ex="0" Ey="0" Ez="0" Ppm="0"/> </CS_HorizontalDatum>
Sensor model design • Sensor model describes the physical and geometrical properties of each kind of photogrammetric, remote sensing and other sensors that produces imagery type of data. • Sensor model schema is described in a separated schema file (sensors.xsd) . • Aimed to be extensible to support new type of sensors and parameters. • Sensor model can be defined explicitly or by reference to a remote source (repository maintained by a standard body)
Sensor model design • Initial version will include only model for frame camera (including digital) • Future version will include scanning sensor (SPOT, Landsat, IRS,…) • Interaction with ISO/TC211 project 19130 "Sensor and Data Models for Imagery and Gridded Data” and SensorML (CEOS) definition. • The model includes only the minimum requirement for performing photogrammetric operations such as bundle adjustement, interior orientation
Abstract Sensor Type Definition <xsd:complexType name="AbstractSensorType"> <xsd:sequence> <xsd:element name="Name" type="xsd:string"/> <xsd:element name="Description" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="sid" type="xsd:ID" use="required"/> <xsd:attribute name="type" type="SensorType" use="required"/> </xsd:complexType>
Ground Control Points dictionary • GCP extends GML Feature • GCP can be extended to add additional metadata information • GCPs can be defined explicitly or by reference to a remote source (Web Feature Server, image chip server,…. ) • GCP has elements describing accuracy • GCP can be reused in several blocks by reference • Would be nice to have an XML schema standard to describe accuracy
GCP Type definition <xsd:complexType name=”GCPType"> <complexContent> <extension base=“gml:AbstractFeatureType”> <xsd:sequence> <xsd:element name=”Point" type=”gml:PointPropertyType "/> <xsd:element name=”StdDevX" type=”dpml:length " minOccurs="0"/> <xsd:element name="stdDevY" type=”dpml:length " minOccurs="0"/> <xsd:element name="stdDevZ" type=”dpml:length " minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:IDREF" use="required"/> </extension> <complexContent> </xsd:complexType>
Block Structure • DPML documents can contain one or more blocks of images • Block is an abstract type • Specialization of block for aerial photo. • Block are composed of the following elements : • Metadata information • List of images • Bundle points • Bundle results
Photos • Photo is a specialization of abstract Image type. • Photo only used for FrameCamera • Photo has the following information • Datasource information • Metadata information • Footprint (gml:PolygonPropertyType) • InteriorOrientation (measurements and results) • ExteriorOrientation (Given and computed) • Measurements (optional) • PhotoRationalFunction (optional)
Points in DPML • Several types of point in DPML • Ground Control Point • Tie Point • Check Point • Bundle Point • Image Point • Sensor Position • Still some works to be done on the classification and definition. • The most difficult part of the specification
Points in DPML • Points in DPML are recorded as GML point features • Error estimates and measurement method, are recorded as feature attributes or properties • Points can be retrieved from a Web Feature Server by using XLink • Points are described as complex type to allow extensibility • Uom of measure from POSC specs have been in a consistent way in all measurements and points definition.
Report generation Stylesheet1 Stylesheet2 Stylesheet3 HTML page SVG DPML XSL Processor PDF
Sensor Repository Spot Catalog Softcopy Sensor Repository Frame Camera Calibration Centers Geolocation of dynamic sensor systems Landsat Catalog
Ground Control Point Repository GCP Provider 1 Softcopy 1 GCP Provider 2 GCP repository Softcopy 2 DPML DPML GCP Provider 3 Chip Matching Web Service Image Chip Server DPML Image Server Image Server 2
Photogrammetric Web Services Web Services Client (browser, desktop app..) (2) query (3) Bind (3) Bind DPML DPML Web Services Registry (UUDI for ex.) Measurement tool Orthorectification services Viewer Bundle Adjustement (1) registers Sensor Definition Provider CT services
Conclusion • DPML draft specification will be public in June • Focus on Frame Camera. More sensors support will be added later • Will be distributed and tested for international community approval • Specification will be done in coordination with current specification in OGC and ISO/TC 211 • Looking to be hosted and funded by international organization (OGC, ISPRS, ISO/TC 211…) • Still some issues to be solved (unit,dimensionality, accuracy, points classification)
For more information • www.dpml.org • www.opengis.org • www.opengis.net • www.w3c.org • www.xmlhack.org • www.posc.org/schemas • Open Photogrammetry Initiative Z/I Imaging