Wednesday, January 20, 2010

Haiti cascading WMS deployed - single WMS access point for Google Earth, OSM, Gaia


(Updated April 2010) CubeWerx and The Carbon Project have deployed a Cascading Web Map Service (WMS) as part of the growing open information network for the nation of Haiti. The service is being posted on CrisisCommons.org and may be accessed now in Google Earth (Image overlay), Gaia, OpenStreetMap (OSM) editors and other applications with this WMS service link-

The Haiti SDI Cascading WMS is offered by CubeWerx as a free public resource to help support relief, rebuilding, communications and data update operations. The practical benefit is to provide a simple, single access point (above) for applications like Gaia, Google Earth and OpenStreetMap editors by “cascading” online WMS. WMS are currently being cascaded from New York Public Library, University of Cincinnati, Calit2, Haiti.opensgi.net, CubeWerx and others, as well as imagery from GeoEye and DigitalGlobe on a variety of WMS - and any organization is invited to contribute WMS URLs to support Haiti relief. The Haiti SDI Cascading WMS can combined with the Haiti OSM WFS and UN WFS to get a clear picture of the environment using applications like Gaia at the following URLs -

Haiti SDI OSM WFS


Haiti SDI UN WFS



The technical benefits of a cascading WMS are -

1. It can connect to all official WMS versions and most unofficial ones - so your application doesn't have to know all the different protocols. For example, if your client supports WMS 1.1.1 and you use a cascading WMS you can connect to 1.0.0, 1.1.0, 1.3.0-only servers.

2. The cascading WMS supports many image formats and will convert the data to your desired format. So if an OSM client wants the image in PNG using a cascading WMS you can connect to servers that only serve either GIF, PNG, TIFF, JPEG, etc.

3. The cascading WMS supports a large number of coordinate systems and will convert the data to your desired coordinate system. Your client wants the image in Geographic and using a cascading WMS you can connect to servers that serve only UTM, Mercator, etc.

4. The cascading WMS supports loop detection. When retrieving the capabilities of all the remote WMSs it will not go into an endless loop. Server A can cascade Server B and Server B can cascade Server C and Server C can cascade Server A. Your client can connect to any of these servers and get an aggregated capabilities of all the servers.

Interesting to note that CubeWerx's CubeSERV is the only cascading WMS - that implements all the functions above (as far as I'm aware). The Haiti Spatial Data Infrastructure (Haiti SDI) is a public resource that may be used in Google Earth, OpenStreetMap, the Gaia SDI Platform and other applications to support relief, rebuilding, communications and mapping data production. The Haiti SDI is based on international standards for Web Mapping Services (WMS) and Web Feature Services (WFS) from OGC, and any organization is invited to contribute.

The Haiti SDI services are evolving rapidly and updates are being posted on The Carbon Project’s blog at http://carboncloud.blogspot.com/. Please contact jharrison@thecarbonproject.com for more information.

4 Comments:

At 1/30/2010 11:40:00 AM, Blogger Schuyler Erle said...

"Interesting to note that CubeWerx's CubeSERV is the only cascading WMS."

What does that mean, exactly?

 
At 1/30/2010 01:44:00 PM, Blogger Jeff Harrison said...

A Cascading WMS is a WMS that behaves like a client to other WMS and like a WMS to other clients. For example, a Cascading WMS can report the Capabilities (service description) of many WMS as its own. Furthermore, a Cascading WMS can perform additional functions on behalf of third-party WMS such as transforming map layers from third-party WMS into a number of different projections and image formats, and version negotiation. The end result is that instead of having to go to many different WMS a client application need only go to one. The statement about CubeWerx's CubeSERV as the only cascading WMS means that to my knowledge it's the only software which performs this functionality.

 
At 4/14/2010 09:19:00 PM, Blogger ctweedie said...

Apollo, Mapserver and no doubt many other apps have been cascading services for a very long time

You forgot to mention all the disadvantages of a cascading service however :-)

 
At 4/27/2010 05:54:00 PM, Blogger Jeff Harrison said...

Chris, thanks for your comment. To get a handle on things it's helpful to check out the WMS 1.3.0 specification which defines what "cascading" means:

7.2.4.7.3 Cascaded layers

A Layer is said to have been "cascaded" if it was obtained from an originating server and then included in the service metadata of a different server. The second server may simply offer an additional access point for the Layer, or may add value by offering additional output formats or reprojection to other coordinate reference systems.


From what I read in the Mapserver documentation, it appears as though they do "cascading" of WMS layers. However, there is at least one noteable difference as far as I can tell - MapServer does not have the ability to parse the capabilities document of a remote WMS and automatically cascade all of the layers that it serves as far as I can see. Each remote WMS layer must be configured manually, using knowledge that must be manually mined from the capabilities document of the remote WMS. (In comparison, all you have to give CubeSERV WMS is the base URL of a remote WMS and it automatically fetches and caches the capabilities document of that WMS and immediately starts cascading all of the layers served by that WMS.)

But technically, it is "cascading" in the same sense of the word. It's also a little unclear to me whether or not it's able to reproject remote WMS layers, but I think it might be able to because the online documentation includes the sentence "You might want to also include GDAL support if you want your application to be able to reproject map slides received from remote servers".

There are a couple of other things that a fully functional cascading WMS needs to do like looping and versions of course.

 

Post a Comment

<< Home