Distributed Spatial Data Access and Visualization

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

(Note: for Acronymn explanations, see Appendix B)

Introduction

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.

The Distributed Spatial Data Approach

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.

Ground Control DataBase Overview

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.

CGDI / GCDB Linkages and Feedback

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:

GCDB / CGDI 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.

Enter OGC

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.

Web Map Server (WMS)

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.

Web Mapping Prototype (WMP)

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
Figure 2 - WMP High Level Design Flowchart

WMP Server

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.

W/MS

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.

OGCWS

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  
Table 1: OGCWS / W/MS interoperability

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
Figure 3 - OGC Wrapper Output

WMP Client

This component of WMP focuses on client side interactive web mapping services, allowing users to:

Figure 4 - WMP Client
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.

Information Manager (Java / JavaScript)

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 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
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.

WMP Client - GCDB Visualization and Access

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).

Style Manager (CSS)

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
Figure 7 - Cascading MapSheets

WMP Client Observations

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.

Recommendations

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:

Conclusion

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.)


APPENDIX A: WMP: System, Application and Data Properties

System

Hardware

  • P166MHz, 48MB RAM, 2.0GB generic personal computer

  • Operating System Configuration
  • Linux RedHat v6.2
  • ipchains firewall and security filters

  • Network
  • 10MB/s cable modem to Internet gateway
  • Application

    Software

  • Apache Web Server v1.3.14
  • mod_perl v1.24_01 embedded interpreter

  • WMP Server
  • OGC Wrapper Service: Perl v5.00503 programming development (http://www.perl.com/)
  • Web / Map Server: UMN MapServer v3.3
  • Service Capabilities Reporting: XML v1.0

  • WMP Client
  • Content Management: Java v1.2; JavaScript v1.2
  • Style Management: Cascading Style Sheets; HTML v4.0
  • Data

    Sources

  • GCDB: GeoGratis
  • DCW Canada local layers: ESRI
  • GTOPO30 elevation data: FGDC

  • Appendix B: Acronyms

       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
      

    APPENDIX C: Related WWW Links of Interest

    By Author:
    Online paper
    Online Project Homepage
    GCDB Chip Browse Implementation Paper
    Metadata and Standards Paper
    Other:
    OpenGIS Consortium
    UMN MapServer
    Digital Earth Web Mapping Testbed
    Canadian Geospatial Data Infrastructure
    National Atlas
    GeoGratis
    CEONet
    GCDB Data
    FGDC OGC Map Server
    Environmental Systems Research Institute
    SpatialNews poll: What Data is Toughest to Locate?