Discrete Global Grids
A Web Book
Edited byMichael F. Goodchild and A. John Kimerling

Introduction

The Abstract Model of Coordinate Transformation

XML

Achieving Consensus

Implementation Model

Identification

Interfaces

Conclusions

References

Acronyms and Abbreviations

Interoperable Coordinate Transformation and Identification of Coordinate Systems

by Daniel Specht
Engineer Research and Development Center

Specht, D. (2002). Interoperable Coordinate Transformation and Identification of Coordinate Systems. In M. Goodchild and A. J. Kimerling (Eds.), Discrete Global Grids. Santa Barbara, CA, USA: National Center for Geographic Information & Analysis.
http://www.ncgia.ucsb.edu/globalgrids-book/specht/

ABSTRACT. The OpenGIS Consortium (OGC), an industry group, has developed a Java interface specification allowing vendors to develop mutually interoperable coordinate transformation components for geospatial software. OGC established the Coordinate Transformation Working Group (CT-WG) in April 1998. The working group developed a Unified Modeling Language object model of coordinate systems and coordinate transformations in coordination with ISO/TC211; OGC accepted interface specifications drafted using this model. The CT-WG also released an XML DTD describing coordinate systems and coordinate transformations.

This paper describes the object model, the XML and the specifications. The object model describes a coordinate system as a collection of axes and at least one datum.

The specification provides a common way of identifying coordinate systems and of accessing coordinate transformation services that support accuracy calculation. When implemented, these specifications will ease data import; users of compliant applications will import data unaware of its coordinate system. If the application cannot import data in a given coordinate system, a compliant server will transform the coordinates to the native coordinate system.

[top]


 


Introduction

The OpenGIS Consortium (OGC) is a non-profit organization that promotes interoperable geoprocessing. The goal is that geospatial applications are interoperable. This means they search for, access and display data and services using standard interfaces. Clients using standard interfaces need not know much about the server. OGC defines OpenGIS as "transparent access to heterogeneous geodata and geoprocessing resources in a networked environment." OGC's goal is open interface specifications enabling developers to write interoperating components providing OpenGIS."

Representatives of software vendors, government agencies and academic institutions that belong to OGC write requirements for interface specifications. These requirements are published as a Request for Proposal (RFP). Member organizations then submit proposals for these specifications. After OGC accepts a proposal as an Implementation Specification OGC submits it to the International Standards Organization Technical Committee 211, ISO/TC211 for acceptance as an ISO standard.

Interface standards are widely used outside of the geospatial community. For example, in the Microsoft environment a user can cut out a piece of a spreadsheet and drop it into any conformant application (e.g., MS Word). The application will have access to spreadsheet services and data stored on the spreadsheet. To the user it appears as if the spreadsheet is running on the application. What we cannot do yet is to tell our spreadsheet that column H is Transverse Mercator coordinates and please change them to Lambert coordinates using a coordinate transformation service on the network.

However OGC has developed several sets of geospatial interfaces. These support interoperable commercial web GIS applications (listed at http://www.opengis.org/cgi-bin/implement.pl).

[top]


The Abstract Model of Coordinate Transformation

The US Army struggled with poor coordinate transformation software for years. Interoperable coordinate transformation software would help solve this problem. With this in mind I chartered a coordinate transformation Working Group (CT-WG) at OGC. The group developed the Abstract Model, an object model of coordinate transformations and coordinate systems using Unified Modeling Language (UML), a notational language used for object oriented analysis and design. UML is widely used and has been standardized by the Object Modeling Group.

Figure 1 shows what a UML object class looks like.

Figure 1. The class has three parts. The name of the class is in the top part, the middle part lists attributes (or properties) of the class and the lower part lists methods, i.e. implementable functions. The methods, both "get" operations, are getAxis and getUnits.

[top]


XML

Because more applications are using Extensible Markup Language (XML), the CT-WG wrote an XML DTD to describe coordinate systems and coordinate transformations (Whiteside, 1999). The DTD does not contain all the information in the UML model, because XML doesn't support inheritance and aggregation.

[top]


Achieving Consensus

The CT-WG struggled to reach a consensus on what the model should look like while coordinating with our counterparts at ISO/TC211 to maintain conformance between the ISO/TC211 model and our own. This was not always easy.

Consider a point stored as latitude, longitude and elevation above sea level. Latitude and longitude are referenced to a geodetic datum while elevation is referenced to a vertical datum.

ISO/TC211 calls this a compound coordinate reference system, composed of two coordinate reference systems, each with its own datum, shown in Figure 2. (The object at the pointy end of the triangle is the superclass and the object at the other end is the subclass.)

Some OGC members felt a compound Coordinate Reference System (CRS) should be expressed as a single CRS with two datums and that the model should not include a compound CRS (Figure 3). There were other proposals as well.

Figure 2. An ISO/TC211 view

 

Figure 3. An early OGC view; the diamonds on a stick indicate strong aggregation, i.e., the datum is part of the coordinate Reference System.

The CT-WG could not come to a consensus and created a UML model that left the issue open. This UML model is part of the OpenGIS Abstract Specification that was included in the RFP.

OGC asked members to propose an Implementation Specification that solves this problem. The proposed solution is shown in Figures 4 and 5. The revised UML model was published as part of the implementation specification.

Figure 4. A representation of the model used in the Implementation Specification. The dotted line with the arrows indicates dependency; if the datum goes away so does the coordinate system. These relationships are not explicit in the actual UML model, part of which is shown (in a simplified form) in Figure 5.

 

Figure 5. Here there is no association between the datum superclass and the coordinate systems superclass. Instead there are relationships between subclasses, e.g., a Vertical coordinate system and a Vertical Datum. This model uses the term Coordinate System rather than Coordinate Reference System. Data types and object types (which are present in the actual specification) are not shown here.

[top]


Implementation Model

The object model for coordinate systems includes a number of coordinate system classes and a number of datum classes.

A Compound Coordinate System includes a horizontal and a vertical coordinate systems and references two datums, a horizontal (geodetic) and a vertical datum. However where the Compound Coordinate System is 3-D ellipsoidal both the horizontal and vertical components may reference the same datum.

A Horizontal Coordinate System is a 2-D coordinate system that may be Projected (a cartographic projection) or Geographic (latitude and longitude). Horizontal coordinate systems use horizontal (geodetic) datums.

A Vertical Coordinate System is a vertical 1-D coordinate system (e.g., vertical with respect to a geoid or ellipsoid). This references a vertical datum such as a sea level datum or a horizontal (geodetic) datum.

Figure 6. This specification supports users who create a coordinate system in any number of dimensions.

A Local Coordinate System references a local datum. A Local Coordinate System cannot be transformed to another coordinate system. Once the Local Coordinate System is georeferenced it is no longer a Local Coordinate System. Note that a local datum is not necessarily 2-D Cartesian.

Geocentric Coordinate Systems are 3-D Cartesian geocentric Coordinate Systems that reference a horizontal datum.

Fitted Coordinate Systems sit "inside another coordinate system. The fitted coordinate system can be rotated and shifted, or use any other math transform [a mathematical function] to inject itself into the base coordinate system" (OpenGIS Implementation Specification, 2001). A Fitted Coordinate System references the datum of the base Coordinate System.

This specification will also support creation of coordinate systems of any dimension, because each of these coordinate systems and datums have the metadata shown in Figure 6, representing ellipsoid, geoid, prime meridian, axis, parameters (both projection and transformation parameters) and unit (i.e. linear or angular units). The specification also includes enumerated lists for things like datum type (e.g., Altitude Barometric and Orthometric) and axis orientation. Attributes in CS_Info are from ISO/TC211 Spatial Referencing by Coordinates.

[top]


Identification

Interoperability requires a universal way to identify a coordinate system, even if the coordinate system is unique to a small project. A client cannot import data without knowing the coordinate system. However, no one has volunteered to keep the list of all coordinate systems for the entire geospatial community. The best anyone can do is to keep a list of lists.

Our coordinate system identifier will consist of an authority (one of the lists within the list), an edition (because an authority may update its list) and a code (a string). The authority is whoever assigned the string to the coordinate system. This system is distributed, extensible and supports legacy name lists (if they are translated into integers).

This will only work if there is a single authority. However a Compound Coordinate System may have a vertical coordinate system from one authority and a horizontal coordinate system from another.

[top]


Interfaces

The specification provides interfaces for coordinate transformation (not discussed in this paper), to create a coordinate system and to access coordinate system metadata (i.e., attributes or properties). The interfaces support accuracy of a transformation and of a coordinate, but not precision of a coordinate system.

The specification originally included three profiles (i.e., versions) with analogous functionality.

1) Microsoft Interface Definition Language (MIDL) specifications for COM interfaces
2) Interface Definition Language (IDL) specifications for CORBA interfaces
3) Java source specifications for Java interfaces.

OGC only released the Java interfaces.

Because most of the recent work at OGC uses HTTP, there may be an HTTP profile at some point.

[top]


CONCLUSIONS

When widely implemented, the coordinate transformation specification will provide a common way of identifying coordinate systems and of accessing coordinate transformation services that support accuracy calculation. These specifications will ease data import. Users of compliant applications will import data without having to be aware of the coordinate system of the imported data because the client and server will use the same identifier for a given coordinate system. If the application cannot transform imported data to the native coordinate system, a compliant server will transform the coordinates to the native coordinate system. Compliant software will therefore import data more reliably and be able to deal more effectively with distributed data.

When I presented this paper in March 2000 a GIS vendor (Cadcorp Ltd, UK) had already fully implemented the COM profile of the coordinate transformation specification. The specification supports the software's ability to transform an image or a feature (i.e. a feature geometry). Figure 7 shows how this transforms an image.

Figure 7. A prototype Cadcorp application transforms the image on the left, creating the image on the right.

The image on the left in Figure 7 was downloaded using the Open GIS Web Map Server Interface Specification. Web browsers can as of January 2002 overlay geospatial data views from servers made by 22 software producers using this specification. Overlay will be easier using interoperable coordinate transformation software.

As of January 2002 there have been no additional implementations of the Coordinate Transformation specification. OGC-compliant applications identify coordinate systems using EPSG codes. Although the number of OGC-compliant commercial products is growing rapidly, new products largely use HTTP interfaces. Commercialization of the coordinate transformation interface will probably be limited until the release of an HTTP interface.

OGC maintains the coordinate transformation specifications, improving them based on feedback from software developers and developing additional coordinate transformation interface specifications.

[top]


REFERENCES

2001, OpenGIS Implementation Specification: Coordinate Transformation Services Revision 1.0, OpenGIS Project Document 01-009, Cadcorp Ltd. http://www.opengis.org/techno/specs/01-009.zip

2000, Geographic information - Spatial referencing by coordinates, Draft International Standard 19111, ISO/TC211 N934, http://www.opengis.org/techno/specs/01-009.pdf

1999, OGC Request 9: Core Task Force, Coordinate Transformation Working Group, A Request for Proposals: OpenGIS Coordinate Transformation Services, OpenGIS Consortium


1999, OpenGIS Abstract Specification, Topic 2: Spatial Reference Systems, Version 4, Project Document 99-102r, http://www.opengis.org/techno/abstract/99-102r1.pdf

de la Beaujardiere, J., 2002, OpenGIS Implementation Specification: Web Map Server Interfaces Implementation Specification, Version 1.1.1, OpenGIS Project Document 01-68r3, http://www.opengis.org/techno/implementation.htm

Fowler, M. and Scott, K., 1997, UML Distilled, Applying the Standard Object Modeling Language, Addison Wesley

Whiteside, A. and Nicolai, R.1999, , Recommended Definition Data for Coordinate Reference Systems and Coordinate Transformations, Version 1.1.0, http://www.opengis.org/techno/discussions/01-014r5.doc

[top]


ACRONYMS AND ABBREVATIONS

COM
Common Object Model
CORBA
Common Object Request Broker Architecture
CRS
Coordinate Reference System
CT-WG
Coordinate Transformation Working Group
DTD
Data Type Definition
ISO/TC211
International Standards Organization Technical Committee 211
OGC
OpenGIS Consortium
RFP
Request For Proposal
UML
Unified Modeling Language
XML
eXtensible Markup Language

[top]