Tom Kralidis, Systems Scientist |
GeoAccess Division, Canada Centre for Remote Sensing |
650-615 Booth Street |
Ottawa, ON, K1A-0E9 |
Canada |
<tom.kralidis@ccrs.nrcan.gc.ca> |
April 2001 |
The Canadian Geospatial Data Infrastructure (CGDI) consists of three key components: the Canadian Earth Observation Network, or CEONet (discovery), the National Atlas of Canada (visualization), and GeoGratis (access). The CGDI initiative has proven to be an effective and successful approach to the enabling of digital geographic data, tools and services, and has become a global figure in the realm of spatial data computing.
The OpenGIS Consortium (OGC) represents a cooperative effort between industry, academia and government to promote and develop open standards based distributed spatial computing solutions.
CEONet is currently featuring the Ground Control DataBase (GCDB), a free dataset of Canada's landmass compiled via high accuracy digital aerial survey imagery. Though highly popular, user feedback has shown the need for improvements to the GCDI tools and services. Currently, the OGC efforts within the CGDI are developmental and experimental.
Using the GCDB dataset as a case study, this paper will present and discuss the "Web Mapping Prototype", or "WMP", which provides OGC compliant access (server) and visualization (client) service prototypes. Using OGC methodologies, along with open source tools, the benefits of OGC in the further development of the discovery and access nodes of the CGDI are paramount. This paper will give an overview of the proposed client and server applications, as well as apply the GCDB with regard to visualization and access feasibility.
Any serious number of real world applications will require some form of distributed spatial data infrastructure. The cost / feasibility of multiple copies of spatial data quickly becomes unmanageable. If applications require remote up-to-date data, local copies result in a large ongoing data management budgets.
Recently, the Canada Centre for Remote Sensing (CCRS) published the GCDB, using the CGDI CEONet and GeoGratis systems as portals to the online geospatial community. The GCDB was developed to support satellite pass processing as ground truth. As a result, over 37000 high-resolution aerial photo images were published and distributed to the public, free of charge. A recent survey by spatialnews.com found that the majority of the GIS community found digital aerial photos were the toughest data to locate (see Appendix C, "Other"). The GCDB is a first of its kind depicting Canada's landmass, via aerial photos, to the online GIS community, free of charge.
The CGDI enables development of geospatial data, tools and expertise, creating Canada's "geography on the information highway".
The GCDB fits well into the CGDI access and discovery nodes, using GeoGratis to house, index and access the data collection, and CEONet to allow a distributed search of the GCDB. The online visualization tool of the GCDB was developed by the author as a 'chip browse' mechanism (see Appendix C, "By Author"), with dynamic geographic positioning and metadata reporting, which links from the CEONet search results. Below is a functional data search, access, and visualization flowchart:
Figure 1 - GCDB / CGDI Data Search, Access and Visualization Flowchart
The CGDI's CEONet and GeoGratis services consist of mailing lists for user to post comments, requests, or problems with the various nodes of the CGDI. Developers and project team members receive these messages to help improve the CGDI services. Based on GCDB-specific user feedback, the most common issues were as follows:
It is apparent through this feedback that consideration is needed to develop remote access and visualization of geospatial data to clients and end users.
The OGC strives for distributed interoperability among web-based geographic information processing systems, building on core Internet technologies and protocols, such as Hypertext Transfer Protocol (HTTP) and Common Gateway Interface (CGI) processing. At the heart of the OGC is the technical specification program, which defines all components developed and supported by the OGC. Systems built with OGC interoperability must be fully compliant.
The OGC WMS specification provides online spatial data and map serving capability for web applications. This allows easy transport, access and visualization of geographic data of various formats. Users can build requests with URLs to the WMS, returning a geographic image / map. The three basic functionalities of the WMS specification are to query the capabilities of the WMS (getCapabilities), request a map (getMap), and request feature attribute information (getFeatureInfo).
Currently, web based map client services are not part of the OGC specification program, leaving organizations open to develop client services specific to their requirements.
The proposed WMP is a hybrid development, demonstrating both an OGC WMS compliant map service, as well as a client service application, for online map visualization. The purpose of WMP is to demonstrate the benefits of distributed online spatial computing applications and services with regard to the CGDI nodes.
The two components of the WMP are a WMS compliant map server, as well as a demonstrative thin client service web application. Below is a high-level data and communication flow of the component architecture in building the WMP server (blue) and the client (orange) services.
Figure 2 - WMP High Level Design Flowchart
The Server component consists of a web / map server (W/MS) and an OGC wrapper service (OGCWS). These form the raw map data serving power to the client.
The W/MS is powered by the University of Minnesota's MapServer software (see Appendix C, "Other"). The UMN MapServer project is an open source effort to build spatially enabled Internet applications. The software builds upon open source GIS / spatial tools to handle GIS data (vector / raster), render fonts, calculate projections and control geographic orientation in the user interface. The software also supports spatial database connections via ESRI's Spatial Database Engine (SDE) or Oracle.
The OGCWS builds atop the UMN software; building the OGCWS was a simple yet effective task to translate OGC style requests into parameters, which is acceptable by the UMN software. Table 1 provides the parameter compatibility between the two.
OGCWS | Example | W/MS | Example |
---|---|---|---|
WMTVER | 1.0.0 | None | |
REQUEST | Capabilities | mode | map |
LAYERS | gcdb_allpts | layer | gcdb_allpts |
STYLES | POINTS | TYPE | POINT |
SRS | EPSG:4326 | PROJECTION | geographic |
BBOX | -131.877638,76.309046,-96.972061,55.407591 | mapext | -131.877638+76.309046+-96.972061+55.407591 |
WIDTH | 300 | mapsize | 300+n |
HEIGHT | 150 | mapsize | n+150 |
FORMAT | GIF | None |
Thus, a typical OGC map request would represent:
http://localhost/cgi-bin/mapserv/ms-ogc.cgi?WMTVER=1.0.0&REQUEST=map&LAYERS=gcdb_allpts&STYLES=POINTS&SRS=EPSG:4326&BBOX=-131.877638,76.309046,-96.972061,55.407591&WIDTH=500&HEIGHT=300&FORMAT=GIF
The OGCWS translates this to MapServer parameters, resulting in:
http://localhost/cgi-bin/mapserv/mapserv?mode=map&layers=gcdb_allpts&map=/www/htdocs/gis/mapserv/wmp/wmp.map&mapext=-131.877638+76.309046+-96.972061+55.407591&mapsize=500+300
...outputting the image below to any HTML 4.0 compliant web browser:
Figure 3 - OGC Wrapper Output
This component of WMP focuses on client side interactive web mapping services, allowing users to:
Figure 4 - WMP Client
The two key components of the client are the Java / JavaScript content processing service, along with Cascading Style Sheets (CSS) style management and positioning.
The above noted technologies are used to maintain state within the client and keep track of connections to data layers, and output them via the Java interactive applet. OGC functionality is transparent to the thin client, and embedded in Java / JavaScript. The links on the bottom left side of the client application serve as explicit OGC request examples. Although the getMap and getFeatureInfo requests are dynamic in relation to the output map image instance, the getCapabilities request constantly returns an XML encoding of data and services provided.
Below is an example session using the OGC getMap function, interleaved within the WMP client, centred on southern British Columbia.
Figure 5 - WMP Client Returning OGC getMap Request
Figure 6 illustrates an OGC getFeatureInfo return request, displaying attribute information on the GCDB dataset. This is a quintessential image which displays the OGC map interface performing an OGC bounding box feature info query, an output list window displaying the feature results and their attributes (along with an option to download the entire selection dynamically), as well as the online browse image of the GCDB aerial photo. This example illustrates the incorporation of the discovery, access and visualization services using the WMP client with OGC capabilities. Hyperlinks allow for downloading of the product, which includes a georeferenced image and metadata in more detail. The idea here is that user with high-end needs such as map overlaying or high-resolution mapping can use this data locally for their mapping applications.
Figure 6 - WMP Client Performing OGC getFeatureInfo Request
The query map is visible, as well as a list of data points, with their respective attribute information. The application then hyperlinks the data product to an online view of the actual aerial photo, linking into the GCDB "chip browse" visualization service mentioned earlier.
As part of the MapServer, the UMN provides a Java 'mapplet', which performs basic bounding box selection and co-ordinate recordings to pass to the WMP client. The core 'mapplet' was updated to communicate with the WMP client Information and Style Manager sub components.
With this change implemented, the WMP client has the capability for dynamic position reporting, similar to traditional GIS packages. This functionality has also been added as part of the core functionality of UMN MapServer's next stable software release.
The 'mapplet' also assumes responsibility for serving the OGC backdrop layer of the DCW data from FGDC. By way of a parameter name/value pair, the OGC string request is sent to the 'mapplet', which processes the URL(s) and displays them FIFO.
A "download this selection" link is provided for the user to receive the entire set via FTP. This functionality involves client-server communication. The GCDB point location layer resides on the same host as the application. The actual data resides within CCRS' network.
The GCDB data used by the WMP application are simple point lat/long positions, displayed by an arbitrary crosshair image. Querying the GCDB data (OGC getFeatureInfo), either by a clicked point or a bounding box selection returns a tabular listing of the data with various attribute information. WMP performs a spatial query on the point/region and returns the data. Hyperlinks are embedded in the output HTML listing to 1) download the product, 2) view the browse image online.
Some basic geo-statistics is performed with the attribute data to derive averages and skew factors within the positional error rates of the selected point or region.
The MapServer host builds a selection set of the data requested by the thin client. This list is passed to the CCRS GCDB data server, which in turn generates a compressed archive of the set. The transaction is then logged, and the user may pick up their archive via FTP for a period of 24 hours following the successful order. This improves the bulk selection process to CEONet's single product and GeoGratis' provincial/territorial product download option(s).
This sub component is responsible for aesthetics, look and feel and positioning. By separating content from style, changes in appearance can be easily implemented without changes to the content of the client application. This is beneficial in implementing WMP into various corporate environments, who usually have their own design and style teams, taking care of the "look and feel".
CSS positioning is a key component to the output of multiple spatial data sets to the client display. Figure 7 is an example of OGC map requests of four layers from three different spatial map servers. The base layer is GTOPO30 elevation data served from FGDC's OGC WMS. The boundary and points layers are accessed through the WMP server. Finally, the lat/long graticule is served from the CubeWerx Cascading Map Server. The use of CSS enables a layered output map image.
Figure 7 - Cascading MapSheets
This application enables more interactive and less manual searching of GCDB data, which was a user feedback complaint from various CEONet and GeoGratis clients. This is not a caveat of the CEONet system per se, as the CEONet interface acts as a gateway to geospatial data, hence more a navigation issue by the client due to local and distributed data searches. In a general sense, an application such as this is a useful supplement to the CEONet discovery node of the CGDI.
It is evident that further research is required in order to better define end user requirements, and to implement these requirements into services and applications for the geospatial community. Some observations:
As a result, this paper proposes that the use of OpenGIS Consortium techniques, along with open source software, can contribute to the visualization and access components of the CGDI, as well as promote interoperability to/from geospatial data and service providers and discovery services. The web mapping and spatial data warehousing communities have made some formidable steps, however more efforts are needed to advance with the speed of hardware and software technology.
The application is a good example of distributed data applications, with the focus being on OGC specification adherence. The thin client is robust and cross-browser compliant for v4 generation web browser clients.
A functional demo of this application can be found online (see Appendix C, "By Author").
(Note: The WMP was well received by various members of the CGDI access and discovery nodes. The WMP client will continue development as part of the CGDI data warehousing initiative to develop thin client applications to support visualization of distributed spatial data. The OGCWS will serve as a lightweight demonstrative OGC web map service.)
Hardware
Software
Sources
2D - two-dimensional CCRS - Canada Centre for Remote Sensing CEONet - Canadian Earth Observation Network CGDI - Canadian Geospatial Data Infrastructure CGI - Common Gateway Interface COTS - Commercial Off The Shelf CPU - Central Processing Unit CSS - Cascading Style Sheets DCW - Digital Chart of the World DTD - Document Type Definition ESRI - Environmental Systems Research Institute FIFO - First In, First Out FGDC - Federal Geographic Data Committee FME - Feature Manipulator, by Safe Software FTP - File Transfer Protocol GCDB - Ground Control DataBase GIS - Geographic Information Systems GML - Geographic Markup Language GUI - Graphical User Interface HMI - Human Machine Interface HTML - Hypertext Markup Language HTTP - Hypertext Transfer Protocol IF - Interface JFC - Java Foundation Classes NASA - National Aeronautics and Space Administration NRCan - Natural Resources Canada OGC - OpenGIS Consortium PDA - Personal Data Assistant Perl - Practical Extraction and Reporting Language RMI - Remote Method Invocation (Java Technology) SDE - Spatial Database Engine, from ESRI SGML - Standard General Markup Language UMN - University of Minnesota UI - User Interface URL - Uniform Resource Locator USGS - United States Geological Survey W3C - World Wide Web Consortium WAP - Wireless Application Protocol WCS - Web Coverage Server WML - Wireless Markup Language WMP - Web Mapping Prototype WMS - Web Map Server WMS_XML - Web Map Server eXtensible Markup Language WMT - Web Mapping Testbed XML - eXtensible Markup Language