Date: | 2008/04/09 |
---|---|
Author: | Frank Warmerdam |
Contact: | warmerdam@pobox.com |
Status: | Adopted |
Version: | 5.2 |
Id: | $Id: ms-rfc-41.txt 8278 2008-12-23 21:34:31Z hobu $ |
It is proposed to extend MapServer to support the WCS 1.1 protocol. MapServer already supports the WCS 1.0 protocol, but WCS 1.1 is significantly different.
WCS 1.1 is closed based on OWS Common metadata (unlike WCS 1.0), and implementation of the WCS service will take advantage of the OWS metadata services in mapowscommon.c. However, mapowscommon.c is based on libxml for xml serialization (unlike the printf() based WCS 1.0 service). For this reason, WCS 1.1 GetCapabilities and DescribeCoverage implementations will be largely separate from WCS 1.0 implementations and will be implemented using libxml.
It should be noted that the format and organization of the WCS 1.1 capabilities and coverage description methods are so different that separate implementations would have been pretty much necessary anyways.
The key entry points in mapwcs.c for WCS services will be updated to “call out” to WCS 1.1 versions of the services in mapwcs11.c.
It is anticipated that the bulk of the WCS 1.0 GetCoverage implementation will be shared with WCS 1.1 with special WCS 1.1 implementations to handle specific issues in the request (RangeSet processing, and multi-part mime return results for instance).
The current WCS metadata items are tightly related to the WCS 1.0 protocol, while the WCS 1.1 protocol used a substantially different form and conventions for service, and coverage descriptions as well as for the getcoverage request. The following table indicates which WCS metadata items are mapped to what coverage XML elements in WCS 1.0 and WCS 1.1:
MapServer WCS 1.1 WCS 1.0
--------- ------- -------
<x>_formats SupportedFormat formats
<x>_keywordlist ows:Keywords keywords
<x>_label (unused) label
<x>_description ows:Title description
<x>_abstract (new) ows:Abstract (unused)
<x>_metadatalink_href (unused) metadataLink
<x>_nativeformat (unused) nativeFormat
<x>_rangeset_name Field.Identifier RangeSet.name
<x>_rangeset_label Field.Title Rangeset.label
<x>_bands_name Axis.identifier AxisDescription.name
WCS 1.1 uses URNs like “urn:ogc:def:crs:EPSG::4326” or “urn:ogc:def:crs:OGC::CRS84“. In addition the WCS protocol is required to honour EPSG axis conventions when using coordinate systems within the EPSG authority space. This means, for instance, that any coordinates in the urn:ogc:def:crs:EPSG::4326 coordinate system must be provided in lat,long ordering instead of the conventional long,lat.
In order to implement these requirements, several changes are planned:
No changes to MapScript are anticipated.
No alterations to WCS 1.0 support are expected, and it is not expected that the mechanisms for specifying services metadata will be changed though it is possible a few metadata items used only in WCS 1.1 will be added.
The WCS Server will be extended to discuss WCS 1.1 related issues.
Implementation will be done by Frank Warmerdam with financial support from Noetix Research Inc. and the Geoconnections program of the Canadian Government. Preliminary implementation is already operational in svn trunk, and work completion is anticipated by March 1st.
Tests will be added to msautotest/wxs for the WCS 1.1 protocol. Additional assistance with WCS 1.1 validation from other contributors would be welcome.
None Yet.
FrankW(+1), AssefaY(+1), TomK(+1), DanielM(+1), PerryN(+1)