Personal tools
Document Actions

Web Coverages

OGC spec on web coverage services
                     Open Geospatial Consortium Inc.
                                         Date: 2003-08-27


                  Reference number of this OGC™ Project Document: OGC 03-065r6


                                           Version: 1.0.0


                          Category: OpenGIS® Implementation Specification


                                       Editor: John D. Evans




            Web Coverage Service (WCS), Version 1.0.0




                                                 i
© OGC 2003 – All rights reserved
OGC 03-065r6




                             Copyright notice

Copyright 2002, 2003, BAE SYSTEMS Mission Solutions
Copyright 2002, 2003, CubeWerx Inc.
Copyright 2002, 2003, George Mason University
Copyright 2002, 2003, German Aerospace Center – DLR
Copyright 2002, 2003, Intergraph Mapping and Geospatial Solutions
Copyright 2002, 2003, IONIC SOFTWARE s.a.
Copyright 2002, 2003, National Aeronautics and Space Administration (U.S.)
Copyright 2002, 2003, Natural Resources Canada
Copyright 2002, 2003, PCI Geomatics
Copyright 2002, 2003, Polexis, Inc.




The companies listed above have granted the Open Geospatial Consortium, Inc. (OGC) a nonexclusive, royalty-free, paid up, world-
wide license to copy and distribute this document and to modify this document and distribute copies of the modified version.
This document does not represent a commitment to implement any portion of this specification in any company’s products.
OGC’s Legal, IPR and Copyright Statements are found at http://www.opengeospatial.org/about/?page=ipr&view=ipr_policy
NOTICE
Permission to use, copy, and distribute this document in any medium for any purpose and without fee or royalty is hereby granted,
provided that you include the above list of copyright holders and the entire text of this NOTICE.
We request that authorship attribution be provided in any software, documents, or other items or products that you create pursuant to
the implementation of the contents of this document, or any portion thereof.
No right to create modifications or derivatives of OGC documents is granted pursuant to this license. However, if additional require-
ments (as documented in the Copyright FAQ at http://www.opengeospatial.org/about/?page=ipr&view=ipr_faq) are satisfied, the right
to create modifications or derivatives is sometimes granted by the OGC to individuals complying with those requirements.
THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRAN-
TIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE
SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY
THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAM-
AGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CON-
TENTS THEREOF.
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to this document or its contents
without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders.
RESTRICTED RIGHTS LEGEND. Use, duplication, or disclosure by government is subject to restrictions as set forth in subdivision
(c)(1)(ii) of the Right in Technical Data and Computer Software Clause at DFARS 252.227.7013
OpenGIS®, OGC™ OpenGeospatial™ and OpenLS ® are trademarks or registered trademarks of Open Geospatial Consortium, Inc.
in the United States and in other countries.




                                                  © OGC 2003 – All rights reserved
ii
                                                         OGC 03-065r6




Contents

1     Scope........................................................................................................................1
2     Conformance ..........................................................................................................1
3     Normative references.............................................................................................1
4     Terms and definitions ............................................................................................2
5     Conventions ............................................................................................................4
5.1    Symbols (and abbreviated terms).........................................................................4
5.2    UML notation .........................................................................................................4
5.3    XML schema notation ...........................................................................................6
6     Basic service elements............................................................................................6
6.1    Introduction............................................................................................................6
6.2    Version numbering and negotiation.....................................................................7
6.2.1    Version number form........................................................................................7
6.2.2    Version changes .................................................................................................7
6.2.3    Appearance in requests and in service metadata ...........................................7
6.2.4    Version number negotiation.............................................................................7
6.3    General HTTP request rules.................................................................................8
6.3.1    Overview.............................................................................................................8
6.3.2    Key-value pair encoding (GET or POST).......................................................9
6.3.3    XML encoding .................................................................................................10
6.4    General HTTP response rules ............................................................................10
6.5    Service exceptions ................................................................................................10
7     GetCapabilities operation ...................................................................................11
7.1    Introduction..........................................................................................................11
7.2    GetCapabilities request .......................................................................................11
7.2.1    Key-value pair encoding .................................................................................11
7.2.2    XML encoding .................................................................................................12
7.3    GetCapabilities response: Capabilities XML document..................................13
7.3.1    Overview...........................................................................................................13
7.3.2    Service ..............................................................................................................13
7.3.3    Capability .........................................................................................................15
7.3.4    ContentMetadata and CoverageOfferingBrief.............................................15
7.3.5    Exceptions ........................................................................................................18
8     DescribeCoverage operation ...............................................................................18
8.1    Introduction..........................................................................................................18
8.2    DescribeCoverage requests .................................................................................18
8.2.1    Overview...........................................................................................................18
8.2.2    Key-value pair encoding .................................................................................18
8.2.3    XML encoding .................................................................................................19


                                                                   iii
© OGC 2003 – All rights reserved
OGC 03-065r6


8.3    DescribeCoverage response: CoverageDescription and
      CoverageOffering ............................................................................................20
8.3.1    Overview...........................................................................................................20
8.3.2    domainSet.........................................................................................................21
8.3.3    rangeSet............................................................................................................23
8.3.4    SupportedCRSs and coordinate reference systems (CRS) ..........................28
8.3.5    SupportedFormats ..........................................................................................29
8.3.6    SupportedInterpolations.................................................................................30
9     GetCoverage operation........................................................................................30
9.1    Introduction..........................................................................................................30
9.2    GetCoverage requests..........................................................................................30
9.2.1    Overview...........................................................................................................30
9.2.2    Key-value pair encoding .................................................................................31
9.2.3    XML encoding .................................................................................................36
9.3    GetCoverage response .........................................................................................38
9.3.1    Overview...........................................................................................................38
9.3.2    Coverage encoding ..........................................................................................38
9.4    Exceptions.............................................................................................................39
Annex A (normative) WCS XML Schemas ..................................................................40
A.1  GetCapabilities request Schema.........................................................................40
A.2  GetCapabilities response schema .......................................................................40
A.3  DescribeCoverage request schema .....................................................................40
A.4  DescribeCoverage response schema...................................................................40
A.5  GetCoverage request schema..............................................................................40
A.6  Service exception schema ....................................................................................40
Annex B (informative) XML examples .........................................................................42
B.1  Introduction..........................................................................................................42
B.2  Example GetCapabilities XML request.............................................................42
B.3  Example GetCapabilities XML response ..........................................................42
B.4  Example DescribeCoverage XML request ........................................................42
B.5  Example DescribeCoverage XML response ......................................................42
B.6  Example GetCoverage XML request .................................................................42
B.7  Example Service Exception XML ......................................................................42
Annex C (normative) Conformance ..............................................................................43
C.1  Introduction..........................................................................................................43
Annex D (informative) UML model ..............................................................................44
D.1  Introduction..........................................................................................................44
D.2  UML packages......................................................................................................44
D.3  WCS package .......................................................................................................46
D.4  Get Coverage package .........................................................................................47
D.5  Describe Coverage package ................................................................................48
D.6  Range Set package ...............................................................................................49
D.7  WCS Values package...........................................................................................50
D.8  WCS Get Capabilities package...........................................................................51
D.9  Service package ....................................................................................................52


                                                 © OGC 2003 – All rights reserved
iv
                                                       OGC 03-065r6


D.10    WCS Capability package ....................................................................................53
D.11    Content Metadata package .................................................................................54
D.12    OGC Web Service package .................................................................................55
Bibliography .....................................................................................................................57




                                                                 v
© OGC 2003 – All rights reserved
OGC 03-065r6




i. Preface
The OGC Web Coverage Service (WCS) results from extensive design and testing in
OGC's Interoperability Program. In response to the WCS Discussion Paper (June 2002)
and Request For Comments (December 2002), others in the geospatial community made
helpful suggestions.


ii. Submitting organizations
The following organizations have submitted this Implementation Specification to the
Open Geospatial Consortium, Inc.

• BAE SYSTEMS Mission Solutions       • The MITRE Corporation
• Commonwealth Scientific and Industrial   • National Aeronautics and Space Administra-
  Research Organisation (Australia)      tion (U.S.)
• CubeWerx Inc.               • National Imagery and Mapping Agency
• Deutschen Zentrum für Luft- und Raum-    (U.S.)
                       • Raytheon Company
  fahrt (German Aerospace Center)
• Galdos Systems Inc.            • PCI Geomatics
• George Mason University          • Polexis, Inc.
• Intergraph Mapping and Geospatial Solu-  • United States Army Corps of Engineers
  tions                   • United States Geological Survey
• IONIC SOFTWARE s.a.


iii. Document Contributors
OGC’s Web Coverage Service Revision Working Group made extensive revisions to the
WCS draft between March and August 2003. Revision Working Group members are
listed below.




                                 © OGC 2003 – All rights reserved
vi
                                               OGC 03-065r6


Name          Email          Organization             Phone
Buckl, Bernhard    bernhard.buckl@dlr.de  German Aerospace Center
                         (DLR)
Burggraf, David burggraf@galdosinc.com     Galdos Systems, Inc.
Butterworth, Edwin edwinb@tec.army.mil     US Army Corps of Engi-        + 1 703 428 6746
                         neers
Case, Dave     dwc@mitre.org        MITRE                (703) 883-6417
Cox, Simon     Simon.Cox@csiro.au      CSIRO                +61 8 6436 8639
Di, Liping     lpd@rattler.gsfc.nasa.gov  George Mason University       301-552-9496
Evans, John    jdevans@gst.com       NASA / GST, Inc           301-286-0803
Fegeas, Robin   rfegeas@usgs.gov       USGS                 (703) 648-4511
Fellah, Stephane Fellah@pcigeomatics.com    PCI Geomatics            (819) 770-0022 x223
Herring, John   john.herring@oracle.com   Oracle Corporation          603 897 3216
Lansing, Jeff   jeff@polexis.com       Polexis               619/542-7225
Marley, Steve   Steve_Marley@raytheon.com  Raytheon
Roswell, Charles roswellc@nima.mil       NIMA
Sonnet, Jerome   jerome.sonnet@ionicsoft.com IONIC SOFTWARE            +32 4 364 0 364
Vincent, John   jtvincen@intergraph.com   Intergraph Mapping and        256-730-7767
                         Geospatial Solutions
Vretanos, Peter  pvretano@cubewerx.com    CubeWerx, Inc.            416-701-1985
Whiteside, Arliss Arliss.Whiteside@baesytems.co BAE SYSTEMS Mission         858-592-1608
          m              Solutions
Peter Baumann of RasDaMan GmbH also provided valuable input to the Working Group.


iv. Revision history
   Date    Release      Author       Paragraph          Description
                            modified
2001-11-17 0.5      John Evans                Initial DIPR version
2001-11-29 0.5      Jeff Lansing               Added initial DescribeCoverage content.
2001-11-29 0.5      Stephane Fellah             Revised Format and Interpolation defini-
                                  tions; many substantive comments
2002-01-31 0.5.1     John Evans        (most)     Revisions & corrections; XML Schema
2002-02-20 0.6      Stephane Fellah      (most)     New schemas
2002-04-04 0.7      John Evans        (most)     Fixed and streamlined the 0.6 schema;
                                  added compound observations; documen-
                                  tation and integration.
2003-05-18 0.8      WCS Revision Working (most)       Major revision; Responded to RFC com-
              Group                  ments and RWG change proposals
2003-08-01 0.8.5     John Evans, Arliss    (most)     Finalized content and format for submis-
              Whiteside, WCS RWG            sion to TC.
2003-08-26 0.8.6     John Evans (with input vi, 7.2.1, 7.2.2 Set version to “1.0.0” throughout
              from Arliss Whiteside, 3, 5.1      Added GML 3 to references & abbrevs.
              Panagiotis Vretanos, Luc 4.1       Defined Bounding Box as spatial only
              Donéa, Charles Roswell, 5.2       Added notes on UML diagrams
              and John Herring)     5.3      Mentioned Altova, Inc., and XML Spy ®
                           6.2.4     version is optional only in GetCapabilities
              (These changes are    7.2.2 (Fig. 2) GetCapabilities/section not repeatable
              tracked in the MS-Word 7.3.1       WCS_Capabilities/@version required
              version of this document) 7.3.4.1    Added role of AssociationAttributeGroup
                           8.3.1     Added version and updateSequence
                           8.3.2.1    Clarified discrete/continuous coverages
                           8.3.5     Added URLs for coverage formats
                           9.3.2     Referred back to 8.3.5
                           A.6      New Service Exception schema
                           B.7      Removed Service Exception example
2003-08-26 0.8.6     Arliss Whiteside     D       Enhanced and corrected UML model



                                                      vii
© OGC 2003 – All rights reserved
OGC 03-065r6


v. Changes to the OpenGIS Abstract Specification
The OpenGIS© Abstract Specification does not require changes to accommodate the
technical contents of this document.


vi. Future work
Future versions of this WCS specification are expected to consider various expansions of
the abilities specified herein, some adding abilities that were deliberately not included in
this Version 1.0.0. Some of the possible expansions thus include:

a) Expand supported coverage types beyond grid coverages only.
b) Expand ability to retrieve desired parts of the full Capabilities document, by the
  GetCapabilities operation.
c) Directly transfer in WCS interface more information describing the coverage range
  (or observable or value space), beyond pointing at an external description.
d) Expand ability to retrieve elevation subset of a coverage, beyond current regularly
  spaced (grid) elevations only.
e) Expand ability to retrieve spatial subset of a coverage, beyond current regularly
  spaced (grid) positions only.
f) Expand supported coverage range sets beyond current single homogeneous "Range
  Component".




                                   © OGC 2003 – All rights reserved
viii
                                      OGC 03-065r6




Foreword

Some of the elements of this OGC 03-065r2 may be the subject of patent rights. Open
Geospatial Consortium Inc. shall not be held responsible for identifying any such patent
rights.

This edition of the Web Coverage Service (WCS) Specification cancels and replaces pre-
vious drafts (OGC 01-018; 02-024, 02-024r1, 03-065r3, 03-065r5). Technical changes
from the 02-024 versions include a substantially revised Capabilities schema; new sche-
mas and syntax for operation requests (GetCoverage, DescribeCoverage); and integration
with GML 3.0.




                                              ix
© OGC 2003 – All rights reserved
OGC 03-065r6




Introduction

The Web Coverage Service (WCS) supports electronic interchange of geospatial data as
"coverages" – that is, digital geospatial information representing space-varying phenom-
ena.

A WCS provides access to potentially detailed and rich sets of geospatial information, in
forms that are useful for client-side rendering, multi-valued coverages, and input into sci-
entific models and other clients. The WCS may be compared to the OGC Web Map Ser-
vice (WMS) and the Web Feature Service (WFS); like them it allows clients to choose
portions of a server's information holdings based on spatial constraints and other criteria.

Unlike WMS (OGC document 01-068r3), which filters and portrays spatial data to return
static maps (rendered as pictures by the server), the Web Coverage Service provides
available data together with their detailed descriptions; allows complex queries against
these data; and returns data with its original semantics (instead of pictures) which can be
interpreted, extrapolated, etc. -- and not just portrayed.

Unlike WFS (OGC Document 02-058), which returns discrete geospatial features, the
Web Coverage Service returns representations of space-varying phenomena that relate a
spatio-temporal domain to a (possibly multidimensional) range of properties.

The Web Coverage Service provides three operations: GetCapabilities, GetCoverage,
and DescribeCoverage. The GetCapabilities operation returns an XML document de-
scribing the service and brief descriptions of the data collections from which clients may
request coverages. Clients would generally run the GetCapabilities operation and cache
its result for use throughout a session, or reuse it for multiple sessions. If GetCapabilities
cannot return descriptions of its available data, that information must be available from a
separate source, such as an image catalog.

The DescribeCoverage operation lets clients request a full description of one or more
coverages served by a particular WCS server. The server responds with an XML docu-
ment that fully describes the identified coverages.

The GetCoverage operation of a Web Coverage Service is normally run after GetCapa-
bilities and DescribeCoverage replies have shown what requests are allowed and what
data are available. The GetCoverage operation returns a coverage (that is, values or prop-
erties of a set of geographic locations), bundled in a well-known coverage format. Its
syntax and semantics bear some resemblance to the WMS GetMap and WFS GetFeature
requests, but several extensions support the retrieval of coverages rather than static maps
or discrete features.




                                   © OGC 2003 – All rights reserved
x
OGC Implementation Specification                      OGC 03-065r3




OpenGIS Interface: Web Coverage Service (WCS)



1   Scope

This document specifies how a Web Coverage Service (WCS) serves to describe, request,
and deliver multi-dimensional coverage data over the World Wide Web. This version of
the Web Coverage Service is limited to describing and requesting grid (or "simple”) cov-
erages with homogeneous range sets.

Grid coverages have a domain comprised of regularly spaced locations along the 1, 2, or
3 axes of a spatial coordinate reference system. Their domain may also have a time com-
ponent, which may be regularly or irregularly spaced. A coverage with a homogeneous
range set defines, at each location in the domain, either a single (scalar) value (such as
elevation), or a series (array / tensor) of values all defined in the same way (such as
brightness values in different parts of the electromagnetic spectrum).

The WCS design, while limited in this version to simple, homogeneous coverages, is de-
signed to extend in future versions to other coverage types defined in the OpenGIS Ab-
stract Specification (Topic 6, "The Coverage Type," OGC document 00-106).


2   Conformance

Conformance with this OGC Implementation Specification may be checked using all the
relevant tests specified in Annex C (normative).


3   Normative references

The following normative documents contain provisions that, through reference in this
text, constitute provisions of this specification. For dated references, subsequent amend-
ments to, or revisions of, any of these publications do not apply. For undated references,
the latest edition of the normative document referred to applies.

IETF RFC 2045 (November 1996), Multipurpose Internet Mail Extensions (MIME) Part
One: Format of Internet Message Bodies, Freed, N. and Borenstein N., eds.,
<http://www.ietf.org/rfc/rfc2045.txt>

IETF RFC 2616 (June 1999), Hypertext Transfer Protocol – HTTP/1.1, Gettys, J., Mogul,
J., Frystyk, H., Masinter, L., Leach, P., and Berners-Lee, T., eds.,
<http://www.ietf.org/rfc/rfc2616.txt>




                                               1
© OGC 2003 – All rights reserved
OGC 03-065r3


IETF RFC 2396 (August 1998), Uniform Resource Identifiers (URI): Generic Syntax,
Berners-Lee, T., Fielding, N., and Masinter, L., eds.,
<http://www.ietf.org/rfc/rfc2396.txt>

ISO 19105: Geographic information — Conformance and Testing

ISO 19123, Geographic Information — Coverage Geometry and Functions

OGC 01-068r3, Web Map Service v. 1.1.1,
<https://portal.opengeospatial.org/files/?artifact_id=1081>

OGC 02-023r4, OpenGIS Geography Markup Language (GML) Implementation Specifi-
cation, v3.00 < https://portal.opengeospatial.org/files/?artifact_id=7174>

OGC AS 0, The OpenGIS Abstract Specification Topic 0: Overview, OGC document 99-
100r1 <http://www.opengis.org/techno/abstract/99-100r1.pdf>

OGC AS 12, The OpenGIS Abstract Specification Topic 12: OpenGIS Service Architec-
ture (Version 4.2), Kottman, C. (ed.), <http://www.opengis.org/techno/specs.htm>

XML 1.0, W3C Recommendation 6 October 2000, Extensible Markup Language (XML)
1.0 (2nd edition), World Wide Web Consortium Recommendation, Bray, T., Paoli, J.,
Sperberg-McQueen, C.M., and Maler, E., eds., <http://www.w3.org/TR/2000/REC-xml>

W3C Recommendation 2 May 2001: XML Schema Part 0: Primer,
<http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/>

W3C Recommendation 2 May 2001: XML Schema Part 1: Structures,
<http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/>

W3C Recommendation 2 May 2001: XML Schema Part 2: Datatypes,
<http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/>


4  Terms and definitions

For the purposes of this document, the terms and definitions given in the above refer-
ences apply, as do the following terms.

4.1
bounding box
a set of 2, 4, or 6 numbers indicating the upper and lower bounds of an interval (1D), rec-
tangle (2D), or parallelepiped (3D) along each axis of a given spatial CRS

4.2
capabilities XML
service-level metadata, expressed in XML, describing the operations and content avail-
able at a service instance



2                                  © OGC 2003 – All rights reserved
                                              OGC 03-065r6


4.3
client
software component that can invoke an operation from a server

4.4
georectified grid
a grid having regular spacing in a projected or geographic coordinate reference system
(CRS)
NOTE    A grid for which there is a linear relationship between the grid coordinates and those of a pro-
jected or geographic coordinate reference system.

4.5
georeferenced grid
a grid that is not georectified, but that is associated with (one or more) coordinate trans-
formations which relate the image or engineering CRS to a projected or geographic CRS
NOTE    These coordinate transformations are usually not affine or simple, and are usually empirically
determined. (Synonym: georeferenceable).

4.6
interface
named set of operations that characterize the behavior of an entity [OGC AS 12]

4.7
operation
specification of a transformation or query that an object may be called to execute [OGC
AS 12]

4.8
service
distinct part of the functionality that is provided by an entity through interfaces [OGC
AS 12]

4.9
request
invocation of an operation by a client

4.10
response
result of an operation, returned from a server to a client

4.11
service instance
server
actual implementation of a service – a software component on which a client can invoke
an operation




                                                        3
© OGC 2003 – All rights reserved
OGC 03-065r3


5   Conventions

5.1  Symbols (and abbreviated terms)

The following symbols and abbreviated terms are used in this document.

API      Application Program Interface
CRS      Coordinate Reference System
DCP      Distributed Computing Platform
GML      OGC Geography Markup Language, v3.00 (OGC 03-023r4)
ISO      International Organization for Standardization
OGC      Open Geospatial Consortium
OWS      OGC Web Service
UML      Unified Modeling Language
XML      Extensible Markup Language
1D       One Dimensional
2D       Two Dimensional
3D       Three Dimensional
4D       Four Dimensional

5.2  UML notation

Certain diagrams that appear in this document are presented using static structure dia-
grams in the Unified Modeling Language (UML) [OMG]. The UML notations used in
this document are described in the diagram below.




4                                 © OGC 2003 – All rights reserved
                                      OGC 03-065r6




                  Figure 1 - UML Notation

In these UML class diagrams, the class boxes with three compartments and a light back-
ground are the primary classes being shown in this diagram, usually the classes from one
UML package. The class boxes with a grey background are other classes used by these
primary classes, usually classes from other packages. The class boxes without compart-
ments do not show the class attributes, which are usually shown on another class dia-
gram.

In these class diagrams, the following five stereotypes of UML classes are used:

a) <<Interface>> A definition of a set of operations that is supported by objects having
  this interface. An Interface class cannot contain any attributes.
b) <<DataType>> A descriptor of a set of values that lack identity (independent exis-
  tence and the possibility of side effects). A DataType is a class with no operations
  whose primary purpose is to hold the information.
c) <<Enumeration>> A data type whose instances form a list of alternative literal val-
  ues. Enumeration means a short list of well-understood potential values within a
  class.
d) <<CodeList>> is a flexible enumeration that uses string values for expressing a long
  list of potential alternative values. If the list alternatives are completely known, an
  enumeration shall be used; if the only likely alternatives are known, a code list shall
  be used. Code lists are more likely to have their values exposed to the user.


                                               5
© OGC 2003 – All rights reserved
OGC 03-065r3


e) <<Type>> A stereotyped class used for specification of a domain of instances (ob-
  jects), together with the operations applicable to the objects. A Type class may have
  attributes and associations.
NOTE    All the stereotypes listed above are adapted from Subclause 6.8 of ISO 19103.
In this document, the following standard data types are used:

a) CharacterString – A sequence of characters
b) Boolean – A value specifying TRUE or FALSE
c) URI – An identifier of a resource that provides more information about data
d) URL – An identifier of an on-line resource that can be electronically accessed

5.3  XML schema notation

Several diagrams in this document represent XML Schema constructs using the graphical
symbols provided by the XML Spy software suite (Altova, Inc. /
<http://www.xmlspy.com/>). These are depicted in Figure 2 below.




             Figure 2. XML Schema graphic symbols


6   Basic service elements

6.1  Introduction

This clause describes aspects of Web Coverage Server behavior (more generally, of OGC
Web Service behavior) that are independent of particular operations, or that are common
to several operations or interfaces.




6                                       © OGC 2003 – All rights reserved
                                       OGC 03-065r6


6.2   Version numbering and negotiation

6.2.1  Version number form

The published specification version number contains three positive integers, separated by
decimal points, in the form "x.y.z". The numbers "y" and "z" will never exceed 99. Each
OWS specification is numbered independently.

6.2.2  Version changes

A particular specification's version number shall be changed with each revision. The
number shall increase monotonically and shall comprise no more than three integers
separated by decimal points, with the first integer being the most significant. There may
be gaps in the numerical sequence. Some numbers may denote experimental or interim
versions. Service instances and their clients need not support all defined versions, but
must obey the negotiation rules below.

6.2.3  Appearance in requests and in service metadata

The version number appears in at least two places: in the Capabilities XML describing a
service, and in the parameter list of client requests to that service. The version number
used in a client's request of a particular service instance must be equal to a version num-
ber which that instance has declared it supports (except during negotiation as described
below). A service instance may support several versions, whose values clients may dis-
cover according to the negotiation rules.

6.2.4  Version number negotiation

A Client may negotiate with a Service Instance to determine a mutually agreeable speci-
fication version. Negotiation is performed using the GetCapabilities operation [see
Clause 7] according to the following rules.

All Capabilities XML must include a protocol version number. In response to a GetCa-
pabilities request containing a version number, an OGC Web Service must either re-
spond with output that conforms to that version of the specification, or negotiate a mutu-
ally agreeable version if the requested version is not implemented on the server. If no
version number is specified in the request, the server must respond with the highest ver-
sion it understands and label the response accordingly.

Version number negotiation occurs as follows:

a) If the server implements the requested version number, the server must send that ver-
  sion.
b) If a version unknown to the server is requested, the server must send the highest ver-
  sion it knows that is less than the requested version.
c) If the client request is for a version lower than any of those known to the server, then
  the server must send the lowest version it knows.


                                               7
© OGC 2003 – All rights reserved
OGC 03-065r3


d) If the client does not understand the new version number sent by the server, it may
  either cease communicating with the server or send a new request with a new version
  number that the client does understand but which is less than that sent by the server
  (if the server had responded with a lower version).
e) If the server had responded with a higher version (because the request was for a ver-
  sion lower than any known to the server), and the client does not understand the pro-
  posed higher version, then the client may send a new request with a version number
  higher than that sent by the server.

The process is repeated until a mutually understood version is reached, or until the client
determines that it will not or cannot communicate with that particular server.
EXAMPLE 1 Server understands versions 1, 2, 4, 5 and 8. Client understands versions 1, 3, 4, 6, and 7.
Client requests version 7. Server responds with version 5. Client requests version 4. Server responds with
version 4, which the client understands, and the negotiation ends successfully.

EXAMPLE 2 Server understands versions 4, 5 and 8. Client understands version 3. Client requests ver-
sion 3. Server responds with version 4. Client does not understand that version or any higher version, so
negotiation fails and client ceases communication with that server.

The version parameter is mandatory in requests other than GetCapabilities.

6.3   General HTTP request rules

6.3.1  Overview

At present, the only distributed computing platform (DCP) explicitly supported by OGC
Web Services is the World Wide Web itself, or more specifically Internet hosts implem-
enting the Hypertext Transfer Protocol (HTTP). Thus the Online Resource of each opera-
tion supported by a service instance is an HTTP Uniform Resource Locator (URL). The
URL may be different for each operation, or the same, at the discretion of the service pro-
vider. Each URL must conform to the description in [HTTP] but is otherwise imple-
mentation-dependent; only the parameters comprising the service request itself are man-
dated by the OGC Web Services specifications.

HTTP supports two request methods: GET and POST. One or both of these methods may
be defined for a particular OGC Web Service type and offered by a service instance, and
the use of the Online Resource URL differs in each case.

An Online Resource URL intended for HTTP GET requests is in fact only a URL prefix
to which additional parameters must be appended in order to construct a valid Operation
request. A URL prefix is defined as an opaque string including the protocol, hostname,
optional port number, path, a question mark '?', and, optionally, one or more server-
specific parameters ending in an ampersand '&'. The prefix uniquely identifies the par-
ticular service instance. For HTTP GET, the URL prefix must end in either a '?' (in the
absence of additional server-specific parameters) or a '&'. In practice, however, Clients
should be prepared to add a necessary trailing '?' or '&' before appending the Operation
parameters defined in this specification in order to construct a valid request URL.


8                                        © OGC 2003 – All rights reserved
                                              OGC 03-065r6


An Online Resource URL intended for HTTP POST requests is a complete and valid
URL to which Clients transmit encoded requests in the body of the POST document. A
WCS server must not require additional parameters to be appended to the URL in order
to construct a valid target for the Operation request.

6.3.2   Key-value pair encoding (GET or POST)

6.3.2.1   Overview

Using Key-Value Pair encoding, a client composes the necessary request parameters as
keyword/value pairs in the form "keyword=value", separated by ampersands (‘&’), with
appropriate encoding [IETF RFC 2396] to protect special characters. The resulting query
string may be transmitted to the server via HTTP GET or HTTP POST, as prescribed in
the HTTP Common Gateway Interface (CGI) standard [IETF RFC 2616].

Table 1 summarizes the request parameters for HTTP GET and POST.

        Table 1 –Parts of a Key-Value Pair OGC Web Service Request
    URL Component                     Description
http://host[:port]/path      URL of service operation. The URL is entirely at the discretion of the
                  service provider.
{name[=value]&}          The query string, consisting of one or more standard request parameter
                  name/value pairs defined by an OGC Web Service. The actual list of
                  required and optional parameters is mandated for each operation by the
                  appropriate OWS specification.
Notes: [ ] denotes 0 or 1 occurrence of an optional part; {} denotes 0 or more occurrences.


A request encoded using the HTTP GET method interposes a '?' character between the
service operation URL and the query string, to form a valid URI which may be saved as a
bookmark, embedded as a hyperlink, or referenced via Xlink in an XML document.

6.3.2.2   Parameter ordering and case

Parameter names shall not be case sensitive, but parameter values shall be case sensitive.
In this document, parameter names are typically shown in uppercase for typographical
clarity, not as a requirement.

Parameters in a request may be specified in any order.

An OGC Web Service must be prepared to encounter parameters that are not part of this
specification. In terms of producing results per this specification, an OGC Web Service
shall ignore such parameters.

6.3.2.3   Parameter lists

Parameters consisting of lists shall use the comma (",") as the delimiter between items in
the list: e.g., parameter=item1,item2,item3. Multiple lists can be specified as the


                                                      9
© OGC 2003 – All rights reserved
OGC 03-065r3


value of a parameter by enclosing each list in parentheses ("(", ")"): e.g., parame-
ter=(item1a,item1b,item1c),(item2a,item2b,item2c). If a parameter name
or value includes a space or comma, it shall be escaped using the URL encoding rules
[IETF RFC 2396].

6.3.3   XML encoding

Clients may also encode requests in XML for transmission to the server using HTTP
GET or (more often) HTTP POST. The XML request must conform to the schema corre-
sponding to the chosen operation, and the client must send it to the URL listed for that
operation in the server’s Capabilities XML file, in accordance with HTTP POST [IETF
RFC 2616]).
NOTE     To support SOAP messaging, clients need only enclose this XML document in a SOAP enve-
lope as follows:

    <env:Envelope
     xmlns:env="http://www.w3.org/2001/09/soap-envelope">
     <env:Body>
      request document here
     </env:Body>
    </env:Envelope>


6.4   General HTTP response rules

Upon receiving a valid request, the service must send a response corresponding exactly
to the request as detailed in the appropriate specification. Only in the case of Version Ne-
gotiation (described above) may the server offer a differing result.

Upon receiving an invalid request, the service must issue a Service Exception as de-
scribed in Subclause 6.5 below.
NOTE     As a practical matter, in the WWW environment a client should be prepared to receive either a
valid result, or nothing, or any other result. This is because the client may itself have formed a non-
conforming request that inadvertently triggered a reply by something other than an OGC Web Service,
because the Service itself may be non-conforming, etc.

6.5   Service exceptions

Upon receiving an invalid request, the service must issue a Service Exception XML mes-
sage to describe to the client application or its human user the reason(s) that the request is
invalid.

Service Exception XML must be valid according to the Service Exception XML Schema
in Subclause A.7. In an HTTP environment, the MIME type of the returned XML must
be "application/vnd.ogc.se_xml". Specific error messages can be included either as
chunks of plain text or as XML-like text containing angle brackets ("<" and ">") if in-
cluded in a character data (CDATA) section as shown in the example of Service Excep-
tion XML in Subclause A.7.




10                                       © OGC 2003 – All rights reserved
                                            OGC 03-065r6


Service Exceptions may include exception codes as indicated in Subclause A.7. Servers
shall not use these codes for meanings other than those specified. Clients may use these
codes to automate responses to Service Exceptions.


7    GetCapabilities operation

7.1   Introduction

Each Web Coverage Server must describe its capabilities. This clause defines an XML
document structure intended to convey general information about the service itself, and
summary information about the available data collections from which coverages may be
requested.

7.2   GetCapabilities request

7.2.1   Key-value pair encoding

The general form of a GetCapabilities request is defined in Clause 6, and summarized in
Table 2 below.

             Table 2. GetCapabilities request URL parameters
    Request Parameter            Required/ Optional        Description
REQUEST=GetCapabilities             Required          Request name
VERSION=1.0.0                  Optional          Request version
SERVICE=WCS                   Required          Service type
SECTION=/            or       Optional          Section of Capabilities
  /WCS_Capabilities/Service  or                     document to be returned
  /WCS_Capabilities/Capability or
  /WCS_Capabilities/ContentMetadata
UPDATESEQUENCE                 Optional          Capabilities version

The VERSION and SERVICE parameters, respectively, denote the version number of the
specification and the service it addresses. For WCS requests, the SERVICE parameter
must have the value "WCS".
NOTE   When making requests of a WCS server, which may offer other OGC Web Services as well,
the SERVICE parameter indicates that the client seeks information about the WCS server in particular.

The SECTION parameter denotes which portion of the Capabilities XML document to
return: Service, Capability, or ContentMetadata. (Figure 3 below depicts the Capabili-
ties XML document structure.) If this parameter is not supplied, the request is for the en-
tire Capabilities XML document.

The optional UPDATESEQUENCE parameter is for maintaining cache consistency. Its
value can be an integer, a timestamp in [ISO 8601:1988] format, or any other number or
string. The server may include an UpdateSequence value in its Capabilities XML. If pre-
sent, this value should be increased when changes are made to the Capabilities (for ex-


                                                    11
© OGC 2003 – All rights reserved
OGC 03-065r3


ample, when new coverages are added to the service). The server is the sole judge of
lexical ordering sequence. The client may include this parameter in its GetCapabilities
request. The response of the server based on the presence and relative value of Update-
Sequence in the client request and the server metadata shall be according to Table 3:

            Table 3  Use of UpdateSequence Parameter
  Client Request       Server Metadata         Server Response
UpdateSequence Value     UpdateSequence Value
None             Any           most recent Capabilities XML
Any             None          most recent Capabilities XML
Equal            Equal          Exception: code=CurrentUpdateSequence
Lower            Higher         most recent Capabilities XML
Higher            Lower          Exception: code=InvalidUpdateSequence


7.2.2  XML encoding

The GetCapabilities XML request schema is depicted in Figure 2 below.



               Figure 2. GetCapabilities request

The top-level XML element, GetCapabilities, has three attributes as defined in Table 4.

             Table 4. GetCapabilities XML attributes
Attribute   Required              Description
       / Optional
version   Optional  Request version. Defaults to the latest available version, cur-
            rently 1.0.0.
service   Required  Service type (needed when several services share a single ac-
            cess point)
update-   Optional  Used for cache management. A service provider must increase
Sequence        this value when adding new content.

The GetCapabilities element has one optional sub-element, section, denoting which por-
tion(s) of the Capabilities XML document to return: the Service, Capability, or Con-
tentMetadata section. If the section element is not supplied, the server must return the
entire Capabilities XML document.

For example, a client may encode a GetCapabilities request in XML as follows:

   <GetCapabilities version="1.0.0" service="WCS">
     <section>/WCS_Capabilities/Capability</section>
   </GetCapabilities>



12                                 © OGC 2003 – All rights reserved
                                      OGC 03-065r6


7.3   GetCapabilities response: Capabilities XML document

7.3.1  Overview

The response to a GetCapabilities request is a Capabilities XML document conforming
to the Schema given in Subclause A.3, composed of three main sections depicted in
Figure 3:




              Figure 3 - WCS_Capabilities top-level element

The top-level element, WCS_Capabilities, has two attributes:

•   version (required) indicates the WCS version to which the Capabilities XML
   document conforms.

•   updateSequence (optional) indicates content or service updates. (A service provider
   must increase this value when adding new content or changing any aspects of the ser-
   vice.)

Subclauses 7.3.2- 7.3.4 below detail the various parts of the WCS_Capabilities XML
schema.

7.3.2  Service

The first section, Service, contains service metadata elements shared by other OGC Web
Services, that provide a minimal, human readable description of the service.




                                            13
© OGC 2003 – All rights reserved
OGC 03-065r3




                   Figure 4. Service

This section is structured much like the WMS and WFS service descriptions, with the
sub-elements defined in Table 5.

              Table 5. Service section elements
Element Name    Required               Description
          / Optional
description     Optional   A description of the server.
name        Required   A name the service provider assigns to the server.
label        Required   A human-readable label for this server, for use in menus and
                 other displays.
wcs:metadataLink  Optional   A link to external metadata (of type “FGDC”, “TC211”, or
                 “other”)
keywords      Optional   Short words to aid catalog searching
responsibleParty  Optional   A tree of elements that identify the service provider and pro-
                 vide contact details.
fees        Required   A text string indicating any fees imposed by the service pro-
                 vider. The keyword NONE is reserved to mean no fees.
accessConstraints  Required   A list of codes describing any access constraints imposed by
                 the service provider. The keyword NONE is reserved to mean
                 no access constraints are imposed.


The Service element also has two optional attributes, version and updateSequence, both
defined as for WCS_Capabilities (7.3.1 above). These attributes are used only when the
Service section appears alone (in response to a GetCapabilities request qualified with a
Section parameter). These attributes must be omitted in the context of the full



14                                   © OGC 2003 – All rights reserved
                                      OGC 03-065r6


Capabilities XML document (where they appear on the parent element
WCS_Capabilities).

7.3.3   Capability

The second section, Capability, of type WCSCapabilityType, also resembles that for
WMS and WFS. It describes the requests that the service supports, the formats in which
exceptions are returned, and any other vendor-specific service capabilities.




                   Figure 5. Capability

The Request sub-element has three required sub-elements, one for each WCS request
(GetCapabilities, DescribeCoverage, and GetCoverage). Within each of these, the
DCPType element lists the distributed computing platform(s) supported, and the
corresponding network access points. (For the moment, HTTP is the only DCP defined; a
server may list either a GET or POST access point, or both, for each operation.)

The Capability element also has two optional attributes, version and updateSequence,
both defined as for WCS_Capabilities (7.3.1 above). These attributes are used only
when the Capability section appears alone (in response to a GetCapabilities request
qualified with a Section parameter). These attributes must be omitted in the context of the
full Capabilities XML document (where they appear on the parent element
WCS_Capabilities).

7.3.4   ContentMetadata and CoverageOfferingBrief

7.3.4.1   Overview

The third section of the Capabilities XML file (ContentMetadata) has Xlink attributes
belonging to the GML AssociationAttributeGroup. These are used to refer to another
source, such as an image catalog service, from which content metadata are available.
(This is intended for servers with thousands or millions of coverage offerings, for which
searching a catalog search is more feasible than fetching a long XML document.)




                                            15
© OGC 2003 – All rights reserved
OGC 03-065r3


ContentMetadata also has the two optional attributes version and updateSequence,
both defined as for WCS_Capabilities (7.3.1 above). These attributes are used only
when the ContentMetadata section appears alone (in response to a GetCapabilities re-
quest qualified with a Section parameter). These attributes must be omitted in the context
of the full Capabilities XML document (where they appear on the parent element
WCS_Capabilities).

ContentMetadata has an optional and repeatable sub-element, CoverageOfferingBrief,
depicted in Figure 6.




                  Figure 6. ContentMetadata

The CoverageOfferingBrief structure is depicted in Figure 7 below.




                Figure 7. CoverageOfferingBrief

The following subclauses describe each sub-element of CoverageOfferingBrief, and two
mechanisms for obtaining more detailed information about a server’s coverage offerings.
NOTE     The first four of these elements -- description, name, label, and metadataLink -- are used in
a similar fashion by RangeSet and AxisDescription in Subclauses 8.3.3 and 8.3.3.2.2.




16                                       © OGC 2003 – All rights reserved
                                      OGC 03-065r6


7.3.4.2   metadataLink

The optional metadataLink element is recommended for access to detailed, standardized
metadata about the parent element (in this case, CoverageOfferingBrief). It has a series
of Xlink attributes (GML’s AssociationAttributeGroup) that allow it to point to an ex-
ternal source of metadata; its type attribute indicates the standard to which the metadata
complies. Three types of metadata are defined: 'TC211' (referring to ISO TC211’s Geo-
spatial Metadata Standard 19115); 'FGDC' (referring to the US FGDC Content Standard
for Digital Geospatial Metadata); and ‘other’.

7.3.4.3   description

The optional description element contains a narrative description of its parent element
(in this case, CoverageOfferingBrief).

7.3.4.4   name

The required name unique identifies its parent element (in this case, CoverageOffer-
ingBrief): that is, the same name value is not used for any siblings of that parent element
on the same server.

7.3.4.5   label

The required label element contains a human-readable string describing its parent ele-
ment (in this case, CoverageOfferingBrief), for presentation in client forms or menus.

7.3.4.6   lonLatEnvelope

This required element defines a bounding box that encloses all of the data available
through the coverage offering. It expresses the corners of this bounding box using a pair
of GML pos elements, in the WGS 84 geographic CRS with Longitude preceding Lati-
tude and both using decimal degrees only. If included, height values are third and use
metre units. These are followed by an optional pair of GML timePosition elements to
express a time-span.

7.3.4.7   keywords

The optional keywords elements contain keywords that describe the coverage offering.

7.3.4.8   Additional coverage properties: DescribeCoverage

The elements defined in CoverageOfferingBrief provide a summary-level description of
coverage data available from a given service. Clients may be able to formulate simple
GetCoverage requests based only on this information. However, in order to make more
finely tuned GetCoverage requests, clients will usually need to obtain further details
about a particular coverage, using the DescribeCoverage operation (see Clause 8).




                                             17
© OGC 2003 – All rights reserved
OGC 03-065r3


7.3.4.9   XLink pointer to external catalog

Some WCS servers may have thousands or millions of coverage offerings available, mak-
ing it impractical to list them all under ContentMetadata. For this reason, Content-
Metadata also has an attribute group, GML’s AssociationAttributeGroup. This lets the
ContentMetadata section point to an external catalog via Xlink, instead of (or in addi-
tion to) listing coverage descriptions inline. This attribute group includes the standard
Xlink attributes (type, href, role, arcrole, title, show, and actuate), as well as GML’s
remoteSchema for stating the schema of the remote resource. All of these attributes are
optional; but if the ContentMetadata element is empty (i.e., no CoverageOfferingBrief
elements), then at least the Xlink href attribute must be present, and must list the URL of
a catalog that clients can search for coverage descriptions in order to make appropriate
DescribeCoverage or GetCoverage requests

7.3.5   Exceptions

In the event that the web coverage server encounters an error servicing a GetCapabilities
request, it shall raise an exception as described in Sublause 6.5.


8    DescribeCoverage operation

8.1   Introduction

Once a client has obtained summary descriptions of the coverages available from a par-
ticular WCS server, it may be able to make simple GetCoverage requests immediately.
But in most cases the client will need to issue a DescribeCoverage request to obtain a
full description of one or more coverages available. The server responds to such a request
with an XML document describing one or more coverages served by the WCS.

8.2   DescribeCoverage requests

8.2.1   Overview

A DescribeCoverage request lists the coverages to be described, identified by the Cov-
erage parameter. A request that lists no coverages shall be interpreted as requesting de-
scriptions of all coverages that a WCS can serve. (Server support for such a request is
optional; if a server does not support it, it must return an exception rather than the re-
quested list.)

8.2.2   Key-value pair encoding

Table 6 describes the complete DescribeCoverage request in its HTTP GET form.




18                                 © OGC 2003 – All rights reserved
                                           OGC 03-065r6


               Table 6. DescribeCoverage URL parameters
     URL Component                      Description
http://server_address/path/script?   URL of WCS server. Required.
REQUEST=DescribeCoverage        Request name. Must be “DescribeCoverage “. Required.
SERVICE=WCS               Service name. Must be “WCS”. Required.
VERSION=1.0.0              Request protocol version. Required.
COVERAGE=name1, name2, …        A comma-separated list of coverages to describe (identified
                    by their name values in the Capabilities response). Op-
                    tional. Default is all coverages, if the server supports it.

The SERVICE and VERSION parameters are defined as for GetCapabilities and Get-
Coverage requests (see Subclause 7.2). The COVERAGE parameter specifies one or
more coverages by their identifier. These identifiers must be among those listed in the
name element of CoverageOfferingBrief element(s) in the Capabilities XML document.

8.2.3  XML encoding

Figure 8 depicts the DescribeCoverage Schema.




                Figure 8. DescribeCoverage XML request

DescribeCoverage has two attributes, service (required) and version (required), both
defined as for GetCapabilities (Subclause 7.2).

DescribeCoverage has one optional and repeatable sub-element, Coverage, each of
which designates a coverage offering identified by its name (obtained via a prior GetCa-
pabilities request to the server, or possibly from a third-party source). If the Coverage
element is absent, the server may return full descriptions of every coverage offering
available, or return a service exception.

A simple example follows, for requesting descriptions of three different coverages.

   <DescribeCoverage service="WCS" version="1.0.0">
    <Coverage>Landsat_TM_Mosaic</Coverage>
    <Coverage>WMO_Daily_Temps</Coverage>
    <Coverage>Census_population_tables</Coverage>
   </DescribeCoverage>




                                                 19
© OGC 2003 – All rights reserved
OGC 03-065r3


8.3   DescribeCoverage response: CoverageDescription and CoverageOffering

8.3.1  Overview

In response to a DescribeCoverage request, a WCS shall return an XML document
whose top-level element is a CoverageDescription containing CoverageOffering ele-
ments describing all (and only) the requested coverage offerings.




          Figure 9. Coverage Description top-level structure

Each CoverageOffering element has the structure depicted in Figure 10:




               Figure 10. CoverageOffering

CoverageOffering has two attributes, version (required) and updateSequence (op-
tional), both defined as for WCS_Capabilities (7.3.1 above).

CoverageOffering extends CoverageOfferingBrief (Subclause 7.3.4), to provide addi-
tional details on the domain and range of a coverage offering. Clients may use these to
assess the data’s fitness for use, and to formulate fine-grained GetCoverage requests. Ta-
ble 7 summarizes these additional elements:




20                                 © OGC 2003 – All rights reserved
                                          OGC 03-065r6


  Table 7. CoverageOffering: additional elements beyond CoverageOfferingBrief
 Element       Required /               Description
  name        Optional
domainSet       Required   The available coverage locations in space and/or time available
                  from a coverage offering
rangeSet       Required   A description of coverage values available from a coverage offer-
                  ing
support-       Required   The coordinate reference system(s) in which the server can accept
edCRSs               requests against this coverage offering and produce coverages
                  from it.
supported-      Required   The formats (file encodings) in which the server can produce cov-
Formats              erages from this coverage offering.
supported-      Optional   The spatial interpolation methods available for resampling or
Interpolations           generalizing coverage values when needed to fill a GetCoverage
                  request.

Subclauses s 8.3.2-8.3.6 describe these five elements in more detail.

8.3.2   domainSet

8.3.2.1   Overview

The first of these elements, domainSet, describes the domain of the coverage offering –
that is, the locations in space and/or time for which values or measures are available
(whether by direct retrieval or by spatial interpolation). GetCoverage requests should
retrieve meaningful data from the Coverage Offering if their spatial or temporal con-
straints (BBOX or BoundingBox, TIME, or Time) intersect the locations or times
described in domainSet.

domainSet must include a SpatialDomain (describing the spatial locations – whether
discrete or continuous – for which coverages may be requested), a TemporalDomain
(describing the time instants or intervals for which coverages may be requested), or both.

8.3.2.2   SpatialDomain

Figure 11 depicts the structure of the domainSet and spatialDomain elements.




                                                 21
© OGC 2003 – All rights reserved
OGC 03-065r3




            Figure 11. domainSet and spatialDomain

The spatialDomain element offers several options to service providers. First, a service
provider must describe the spatial extent of the domainusing one or more GML Envelope
elements. (The GML EnvelopeWithTimePeriod element may be used in place of Enve-
lope, to add the time bounds of the coverage offering.) Each of these describes a bound-
ing box defined by two points in space (or two positions in space and two in time). This
bounding box may simply duplicate the information in the lonLatEnvelope of Covera-
geOfferingBrief; but the intent is to describe the locations in more detail (e.g., in several
different CRSs, or several rectangular areas instead of one overall bounding box).

In addition, a service provider may describe the internal grid structure of a coverage of-
fering, using a GML Grid or RectifiedGrid in addition to an Envelope. This element
can help clients assess the fitness of the gridded data for their use (e.g. its native resolu-
tion, inferred from the offsetVector of a GML RectifiedGrid), and formulate grid cover-
age requests expressed in the internal grid coordinate reference system.

Finally, a service provider may also describe the spatial domain by means of a (repeat-
able) GML Polygon, representing the polygon(s) covered by the coverage spatial do-
main. This is particularly useful for areas that are poorly approximated by a GML
Envelope (such as satellite image swaths, island groups, other non-convex areas).

8.3.2.3  TemporalDomain

The TemporalDomain element, which may or may not accompany a spatialDomain
element, describes the valid time constraints for GetCoverage requests (that is, the times
for which valid data are available). Figure 12 depicts the structure of the TemporalDo-
main element.




22                                  © OGC 2003 – All rights reserved
                                     OGC 03-065r6




                  Figure 12. TemporalDomain

TemporalDomain is structured as any sequence of time instants (using GML’s
TimePosition) and / or time periods (using timePeriod with beginPosition and endPosi-
tion, both of the GML TimePosition type). These time periods may be regularly sampled
(indicated by the optional timeResolution element) or continuous (when timeResolution
is absent).

timePeriod, GML’s timePosition, beginPosition, and endPosition have an optional at-
tribute frame that denotes a reference time frame. The default frame is “ISO-8601”, de-
noting the ISO 8601 frame. GML’s timePosition, beginPosition and endPosition also
have two optional attributes, calendarEraName and indeterminatePosition. These de-
note, respectively, the calendar era (e.g., “BC” or “AD”) and indeterminate time values
such as “now.”

8.3.3   rangeSet

8.3.3.1   Overview

The second element of CoverageOffering is a rangeSet. This element defines the proper-
ties (categories, measures, or values) assigned to each location in the domain. Any such
property may be a scalar (numeric or text) value, such as population density, or a com-
pound (vector or tensor) value, such as incomes by race, or radiances by wavelength.

Figure 13 depicts the structure of the rangeSet element.




                                           23
© OGC 2003 – All rights reserved
OGC 03-065r3




                   Figure 13 - rangeSet

The rangeSet property has one sub-element, RangeSet, with three attributes and six sub-
elements. Its attributes are familiar (all are optional):

a) semantic: a pointer to the definition of the RangeSet values
b) refSys: a pointer to the reference system in which the RangeSet values are expressed
c) refSysLabel: a short label denoting the reference system, for onscreen display

RangeSet has the following sub-elements:

a) The first four (metadataLink, description, name, and label) are described in Sub-
  clauses 7.3.4.2 to 7.3.4.5.
b) The optional and repeatable axisDescription/AxisDescription element is for com-
  pound observations. It describes an additional parameter (that is, an independent vari-
  able besides space and time), and the valid values of this parameter, which GetCover-
  age requests can use to select subsets of a coverage offering. Subclause 8.3.3.2 pro-
  vides further details.
c) The optional nullValues element is used when valid values are not available; see
  Subclause 8.3.3.3 for further details.

8.3.3.2   AxisDescription (for compound range sets)

8.3.3.2.1  Introduction

A range set may have either simple scalar values (such as terrain elevation, or yesterday’s
maximum temperature) or compound values. Compound values consist of a set of identi-
cally defined measurements or observations, reported for each of several values of a
“control” variable, or aggregated into several “bins”. The “bin” or “control” parameter
may be any independent variable (besides those in the domain), which GetCoverage re-
quests may use for constraints.

Examples of compound observations include a multispectral radiance (that is, brightness
by wavelength, typical of satellite imagery), age distribution (counts of people by age


24                                 © OGC 2003 – All rights reserved
                                       OGC 03-065r6


brackets, in a census table), or climate pattern (mean rainfall by month of the year in a
climate database).

A compound range set may have more than one control parameter or set of “bins”, for
quantities related to values of several parameters (such as counts of wildlife tabulated
both by size and by species).

8.3.3.2.2   XML syntax

For a compound-valued range set, in addition to describing the measured or observed
quantities themselves, it’s often useful to describe the control parameter(s) in some detail,
and to list the “valid” parameter values – those for which measurements are available (or
“by which” aggregate values are available). Such descriptions enable GetCoverage re-
quests to retrieve meaningful subsets constrained along the values of the parameter. This
is the intent of the optional AxisDescription element, structured as in Figure 14.




                  Figure 14 – AxisDescription

AxisDescription has three attributes (all optional):

a) semantic points to the definition of the parameter values
b) refSys: a pointer to the reference system in which the values are expressed
c) refSysLabel: a short label denoting the reference system, for onscreen display

AxisDescription has five sub-elements. The first four (metadataLink, description,
name, and label) are described in Subclauses 7.3.4.2 to 7.3.4.5. In addition, the values
element lists the parameter values or intervals for which data are available.




                                              25
© OGC 2003 – All rights reserved
OGC 03-065r3


The values element has two optional attributes, type (denoting the element’s datatype)
and semantic (defined as for AxisDescription), and the following sub-elements:

a) interval denotes the time values between the values of its sub-elements min and
  max. It has three attributes and three sub-elements, all optional:
   1) The type attribute denotes the element’s datatype. (This and the next attribute
    may override those on the parent values element.)
   2) The semantic attribute points to the definition of the parameter values.
   3) The atomic attribute indicates whether GetCoverage requests must use con-
    straints that encompass the entire interval. (If false, then GetCoverage requests
    may use values in between min and max as constraints.)
   4) Sub-elements min and max list the lower and upper bounds of the interval for
    which coverage data are available. (Both values are expressed in the reference
    system denoted by the refSys attribute on AxisDescription). Both elements have
    an optional closure attribute denoting whether the interval is “closed” or “open”
    at each bound (i.e., includes or excludes the edge value itself). (The default value
    is “closed”.)
   5) The interval may be a continuous set of parameter values between the min and
    max values, or a set of regularly spaced values. In the latter case, the res sub-
    element lists the spacing between adjacent parameter values. (If res is absent, the
    interval is a continuous set of parameter values: any value between min and max
    should produce a meaningful GetCoverage response.)
b) The singleValue element lists a single parameter value for which data are available.
  Its optional attributes, type and semantic, are defined as for interval.
NOTE    The values element may have any sequence of interval and singleValue sub-elements.

c) The default element lists the parameter value that the server will use for GetCover-
  age requests that omit a constraint along this parameter. GetCoverage requests
  against a coverage offering whose AxisDescription has no default must specify a
  valid constraint for this parameter.

For example, the AxisDescription for a multispectral image might indicate that the cov-
erage range reports brightness values for each of several wavelength “bands” expressed
in nanometers.

8.3.3.2.3  Compound range sets

A compound valued range set is designed for observations that are identically defined –
that report the same property, expressed in the same reference system. If a set of observa-
tions has any semantic variation, or any differences in the reference system, then the dif-
ferent kinds of observations belong in different coverages. For instance, a multispectral
image in which some bands record emissive radiance, and others record reflective radi-
ance, would require distinct coverages.




26                                     © OGC 2003 – All rights reserved
                                              OGC 03-065r6


When several identically defined measurements are tied to an ordinal, interval, or ratio
parameter, they may be structured either as several scalar-valued coverages or as a single
compound-valued coverage. However, a compound-valued coverage is often preferable
to multiple scalar-valued coverages. This is because the AxisDescription element lets
clients retrieve subsets of the component observation by requesting intervals (“slices”)
along the parameter axis. For example, one may retrieve the near-infrared portions of a
hyperspectral image by requesting that portion of the wavelength axis. Or, one may ex-
tract racial distribution among (only) the elderly from a table listing population counts by
age and by race.
NOTE     In a future version of this specification, compound values may also allow interpolation of
measured observations along a range axis (where appropriate – e.g., for interval or ratio parameters, with
values in narrow intervals separated by narrow gaps). For instance, hyperspectral imagery may allow inter-
polation of radiance values over wavelength if the spectral bands are narrow enough and close enough to-
gether. Similarly, population pyramids may allow interpolation of population over age if the age brackets
are suitably defined.
The range axis construct also anticipates “virtual coverages” (that is, real-time coverage servers that can
adjust measurement parameter values on request) – such as an imaging sensor whose wavelength bands
can be remote controlled, or a census data server that tabulates raw questionnaire data into age brackets of
the user’s choice.

When several identically defined measurements are tied to a nominal (not ordinal) pa-
rameter (one for which intervals or ”slices” are not defined, e.g., species, or landuse), a
compound observable (such as counts by species) is functionally equivalent to multiple
scalar-valued coverages (count of species1, count of species2, etc.). In either case, range
subset requests are limited to lists of individual values (lions, tigers, bears, etc.). How-
ever, a compound observable does offer the notational convenience of describing the ob-
servable only once – a useful shorthand when the same observable is reported at many
different values of a parameter.

8.3.3.3   NullValues

An important part of a range set description is the representation of null value(s) in the
coverage. The coverage encoding itself may specify a fixed value for null (e.g. “–99999”
or “N/A”), but more often the choice is up to the provider and must be communicated to
the client outside of the coverage itself. This is the purpose of the optional NullValues
element, whose structure is depicted in Figure 15.




                    Figure 15. NullValues



                                                     27
© OGC 2003 – All rights reserved
OGC 03-065r3


NullValues is structured and interpreted exactly like the values element in AxisDescrip-
tion (see Subclause 8.3.3.2.2).

8.3.4   SupportedCRSs and coordinate reference systems (CRS)

8.3.4.1   Overview

For each coverage offering, the supportedCRSs element lists the CRSs in which the
server understands incoming GetCoverage requests; and those in which it can respond to
GetCoverage requests. It may also list the native CRS of the data. Its structure is de-
picted in Figure 16.




                   Figure 16. SupportedCRSs

The supportedCRSs element has either a requestResponseCRSs sub-element, or both a
requestCRSs sub-element and a responseCRSs sub-element.It may also have a Na-
tiveCRSs element. These sub-elements all have the same content model, a list of CRS
identifiers within a single code-space. These CRS identifiers may be any of the
EPSG:xyz, AUTO:xyz, or OGC:xyz coordinate systems defined in the Web Map Ser-
vice Implementation Specification (OGC Doc. 01-0685r3); or the strings “Engineering”
or “Image” to denote an “engineering” or “image” CRS, whose relationship to earth co-
ordinates may not be well defined. (The “image” CRS applies to images and grid cover-
ages: it is a special kind of engineering CRS, defined as row and column offsets from the
image origin.)
NOTE    To infer the ground positions of locations expressed in the engineering or image coordinates of
a coverage, a client needs additional information, such as control points or sensor metadata (e.g., the orbital
model). WCS does not specify how to request, encode, or transmit this additional information: it may be
embedded in the coverage response, available from a separate source, or otherwise known to the client.

For georectified images or grids , when this CRS references an EPSG or AUTO coordi-
nate reference system, it designates the base ground CRS for the georectified image or
grid -- not the internal image CRS. Each referenced CRS must be the same as referenced
by the srsName attribute of one of the RectifiedGrid elements defined in Subclause
8.2.1.1.


28                                        © OGC 2003 – All rights reserved
                                      OGC 03-065r6


8.3.4.2   requestResponseCRSs

A coverage offering must either advertise the CRSs in which it can both accept GetCov-
erage requests and deliver coverage responses, or detail its supported request and re-
sponse CRSs separately. Thus, every Coverage must have either a requestRespon-
seCRSs element, or both a requestCRSs and a responseCRSs element (each of which
list one or more CRS identifiers). These CRSs should include the coverage offering’s na-
tive CRS(s) as defined below.

8.3.4.3   requestCRSs

The requestCRSs element states the CRS(s) in which GetCoverage requests may be ex-
pressed against a coverage offering. These CRSs should include the coverage offering’s
native CRS(s) as defined below.

8.3.4.4   responseCRSs

The responseCRSs element states the CRS(s) in which coverage replies to GetCoverage
requests may be expressed. These CRSs should include the coverage offering’s native
CRS(s) as defined below.

Servers that serve coverages in the special CRS codes “Engineering” or “Image” de-
fined above may embed georeferencing information (e.g., sensor model or tie-points) in
the coverage reply.

8.3.4.4.1   nativeCRSs

The optional nativeCRSs element states the native CRS(s) of a coverage – that is, the
CRS(s) in which coverages can be obtained without any distortion or degradation of the
data.

8.3.5   SupportedFormats

The required supportedFormats element advertises the output format(s) in which cov-
erages may be requested from this coverage. Figure 17 depicts its structure.




                  Figure 17. supportedFormats

These formats are identified by a simple string. Any format is acceptable, provided that at
least one of the following formats is supported for each coverageOffering.

a) GeoTIFF <http://www.remotesensing.org/geotiff/geotiff.html>
b) HDF-EOS <http://heineken.gsfc.nasa.gov/>
c) DTED <http://www.nima.mil/publications/specs/printed/89020A/89020A_DTED.pdf>


                                            29
© OGC 2003 – All rights reserved
OGC 03-065r3


d) NITF <http://www.ismc.nima.mil/ntb/baseline/1999.html>
e) GML <https://portal.opengeospatial.org/files/?artifact_id=7174>

Servers may serve coverages in other encodings as well. An individual server must indi-
cate what encodings it supports on a coverage offering by listing them in the supported-
Formats element in a DescribeCoverage response.

8.3.6  SupportedInterpolations

The optional supportedInterpolations element states whether and how the server will
interpolate coverage values over the spatial domain when a request requires resampling,
reprojection, or other generalization. Using a (repeatable) InterpolationMethod sub-
element, a coverage offering may list any of 6 spatial interpolation methods (Table 8).

                Table 8. Interpolation methods
    Interpolation Method                Description
nearest neighbor (default)
bilinear
                  These are defined in ISO 19123 (Schema for Coverage
bicubic
                  Geometry and Functions), Annex B.
lost area
barycentric
none                No interpolation is available; requests must be for loca-
                  tions that are among the original domain locations.

supportedInterpolations has a default attribute that lists what interpolation method is
used for requests that don’t specify one. If supportedInterpolations is absent or empty
with no default attribute, then clients should assume nearest-neighbor interpolation.

If the only interpolation method listed is ‘none’, clients may only retrieve (subsets of)
this coverage in its native CRS and at its native resolution.


9    GetCoverage operation

9.1   Introduction

The GetCoverage operation allows retrieval of coverages from a coverage offering. A
WCS server processes a GetCoverage request and returns a response to the client.

9.2   GetCoverage requests

9.2.1  Overview

A GetCoverage request may be encoded as key-value pairs, or as an XML document. The
next two subclauses detail each of these encodings.




30                                    © OGC 2003 – All rights reserved
                           OGC 03-065r6


9.2.2   Key-value pair encoding

9.2.2.1   Overview

Table 9 specifies the complete GetCoverage Request.




                                31
© OGC 2003 – All rights reserved
OGC 03-065r3


     Table 9 – The GetCoverage Request expressed as Key-Value Pairs.
     URL Component                 Description
http://server_address/path/script?
               URL of WCS server. Required.
SERVICE=WCS         Service name: Must be “WCS”. Required.
VERSION=1.0.0        Request protocol version. Required.
REQUEST=GetCoverage     Name of the request. Must be “GetCoverage”. Required.
COVERAGE=name        Name of an available coverage. Required.
CRS=crs_identifier      Coordinate Reference System in which the request is ex-
               pressed. Required.
RESPONSE_CRS= crs_identifier Coordinate Reference System in which to express coverage
               responses. Optional; defaults to the request CRS.
BBOX=minx, miny, maxx, maxy, Request a subset defined by the specified bounding box,
minz, maxz          with min/max coordinate pairs ordered according to the Co-
               ordinate Reference System identified by the CRS parameter.
               One of BBOX or TIME is required.
TIME= time1,time2,…     Request a subset corresponding to the specified time instants
or              or intervals, expressed in an extended ISO 8601 syntax.
TIME= min/max/res, …     Optional if a default time (or fixed time, or no time) is de-
               fined for the selected layer.
               One of BBOX or TIME is required.
PARAMETER= val1,val2, …   (Included only for range sets with compound values)
or              Request a range subset defined by constraining parameter
PARAMETER= min/max/res    PARAMETER. The PARAMETER key is a variable string; it
               must match the name of a parameter listed in the range set
               description of the selected coverage. For instance:
               band=1,5,3 (e.g., radiance values in bands 1, 5, 3)
               age=0/18 (e.g., counts of people with ages under 18 yrs.)
               Optional if the chosen range component has default values
               for the parameter.
WIDTH = w (integer)     Request a grid of the specified width (w), height (h), and
HEIGHT = h (integer)     [for 3D grids] depth (d) (integer number of gridpoints).
[DEPTH =d (integer)]     Either these or RESX, RESY, [for 3D grids] RESZ are re-
               quired.
RESX=x (double)       [when requesting georectified grid coverages]
               Request a coverage subset with a specific spatial resolution
RESY=y (double)
               along each axis of the reply CRS. The values are given in
[RESZ=z (double)]
               the units appropriate to each axis of the CRS.
               Either these or WIDTH, HEIGHT, and [for 3D grids]
               DEPTH are required.
FORMAT= format        Requested output format of Coverage. Must be one of those
               listed under the description of the selected coverage. Re-
               quired.
EXCEPTIONS= application /  The format in which exceptions are to be reported by the
vnd.ogc.se_xml        Server. Optional.
(Vendor-specific parameters) Optional.


9.2.2.2  SERVICE=WCS / VERSION=version

These parameters are defined as for GetCapabilities in Subclause 7.2.




32                                 © OGC 2003 – All rights reserved
                                            OGC 03-065r6


9.2.2.3   REQUEST=GetCoverage

The Basic Service Elements clause defines this parameter. For GetCoverage, the value
"GetCoverage" must be used.

9.2.2.4   COVERAGE=name

The COVERAGE parameter requests a single coverage, identified by a name under a
CoverageOfferingBrief in the ContentMetadata section of the Capabilities XML
document. If the Capabilities XML document does not have a ContentMetadata section,
clients must obtain a valid coverage identifier from another source (such as a catalog ser-
vice).
NOTE    Future versions of this WCS specification may address ways to request multiple coverages,
combining them according to mathematical or logical operators (Boolean or other rule-based overlay).

9.2.2.5   CRS

The CRS (Coordinate Reference System) parameter is defined in Subclause 8.3.4.

GetCoverage requests must use this parameter to specify the coordinate reference system
in which the request domain constraints are expressed (BBOX). The values of this re-
quest parameter must be one of those defined in a requestResponseCRSs or re-
questCRSs element under the requested coverage.

If the Capabilities XML’s requestCRSs element for a coverage offering lists only “En-
gineering” or “Image” (indicating a coverage that is not available in georectified form),
then clients must request that coverage offering in its internal (local / pixel) coordinate
reference system, by specifying CRS=Engineering or CRS=Image (case-insensitive) in
the GetCoverage request.

Some WCS servers may support on-the-fly georectification of coverages that are geo-
referenced but not already georectified. Such servers accept requests expressed in a cov-
erage's internal pixel / local coordinate system, but are able to express coverage replies in
a ground coordinate system. Such servers may indicate this capability for a coverage by
listing “Engineering” or “Image”in their requestCRSs element, but also listing a
ground coordinate system in a ResponseCRSs element for the same coverage offering. In
such cases, GetCoverage requests may specify CRS=Engineering or CRS=Image (case-
insensitive); but add a RESPONSE_CRS value corresponding to a ground coordinate
reference system.

9.2.2.6   RESPONSE_CRS

This parameter specifies the coordinate system in which the coverage response should be
referenced. This parameter is optional; its value defaults to that of CRS (described previ-
ously). Thus, omitting it requests a coverage response referenced in the same coordinate
reference system as the request (like WMS and WFS).




                                                    33
© OGC 2003 – All rights reserved
OGC 03-065r3


The value of this request parameter must be one of those defined in a requestRespon-
seCRSs or responseCRSs element under the requested coverage offering.

9.2.2.7  BBOX

A GetCoverage request may include a 1-D, 2-D, or 3-D spatial constraint expressed as a
rectangle (or line, or parallelepiped) aligned with the axes of the spatial reference system
given in the CRS parameter. Such a constraint is expressed as a BBOX parameter repre-
senting the coordinates of the southwest/lower and northeast/upper corners (in that order)
as comma-separated numbers (e.g., minx, miny, maxx, maxy).
NOTE    The order (southwest, northeast) often corresponds to (minimum x, minimum y, maximum x,
maximum y) – but this is not always the case. For instance, when a Bounding Box expressed in longitude
and latitude crosses the antimeridian (the meridian with longitude +/-180 degrees), its northeast corner’s
longitude is often less than that of its southwest corner.

Each corner’s coordinate(s) must be expressed in the order and units given by the CRS.
For any part of the coverage domain that is partly or entirely contained in the Bounding
Box defined by BBOX, the server must return coverage data in the requested format.
A GetCoverage request must include a valid BBOX, or TIME (below), or both.
9.2.2.8  TIME

If the DescribeCoverage XML reply defines a TemporalDomain on the selected cover-
age, GetCoverage requests may use a separate TIME parameter to constrain the request
in time, thus supplementing a spatial (1D, 2D, or 3D) Bounding Box.

Time constraints and date / time values must be expressed using a time frame identified
by the frame attribute on an element in the TemporalDomain of the requested coverage
offering. The special keyword “now” may be used in lieu of a determinate time value, to
request the most recent available data.

A GetCoverage request must include a valid BBOX (above), or TIME, or both.
9.2.2.9  PARAMETER

If the range set of the selected coverage consists of compound values, GetCoverage re-
quests may include constraints defined on the parameter(s) of the compound range set.
Such constraints are expressed as “PARAMETER=[value]”, where

a) The variable string PARAMETER matches the name of an AxisDescription element
  defined on that range set, and
b) [value] is one of the acceptable values defined in the corresponding AxisDescription
  element.
For example, a coverage range set might consist of radiance values reported by wave-
length intervals. For such a coverage offering, the DescribeCoverage reply might in-
clude an AxisDescription with the name “Wavelength”, with units in nanometers. Given



34                                       © OGC 2003 – All rights reserved
                                       OGC 03-065r6


such a description, a GetCoverage request might limit the request to visible wavelengths
by specifying
   WAVELENGTH=650/700, 500/560, 430/500

This parameter constraint is optional if the selected range set has a default value on the
corresponding AxisDescription.

9.2.2.10  Grid size: WIDTH, HEIGHT, DEPTH

GetCoverage requests may request coverage replies with a specific grid size. The pa-
rameters WIDTH, HEIGHT, DEPTH define the grid size (number of gridpoints or cells)
along the three axes of the grid.

Either these parameters or RESX, RESY, RESZ are normally required. However, if the
Capabilities XML reports only the Interpolation method “None” for the queried coverage,
then GetCoverage requests must be for the full native resolution of the data; they may not
use RESX, RESY, RESZ or WIDTH, HEIGHT, DEPTH to change the coverage resolu-
tion. In this case, BBOX alone is used for subsetting.

9.2.2.11  Grid resolution: RESX, RESY, RESZ

GetCoverage requests for gridded coverages may request coverage replies in specific
grid resolutions. The parameters RESX and RESY define the grid-cell size along the first
and second axes of the coordinate reference system given in CRS or RESPONSE_CRS.

If the RESPONSE_CRS is a 3D spatial reference system, then the additional RESZ pa-
rameter may be used to specify the desired resolution along the third axis of that coordi-
nate reference system.

Either these parameters or WIDTH, HEIGHT, DEPTH are normally required when re-
questing grid coverages. However, if the DescribeCoverage XML reply reports only the
Interpolation method “None” for the queried coverage, then GetCoverage requests must
request the full native resolution of the data: they may not use RESX, RESY, RESZ or
WIDTH, HEIGHT, DEPTH to change the coverage resolution. In this case, BBOX alone
is used for subsetting.

9.2.2.12  FORMAT

The value of this parameter must be one of those listed in a supportedFormats/formats
element (see 8.3.5 above) under the selected coverage offering in the DescribeCoverage
XML reply. In an HTTP environment, a “Content-type” entity header, containing an ap-
propriate MIME type string for the chosen format, must precede the returned object.

9.2.2.13  EXCEPTIONS

A Web Coverage Service must offer the exception reporting format “applica-
tion/vnd.ogc.se_xml” by listing it in a Capability / Exceptions / Format element in its



                                               35
© OGC 2003 – All rights reserved
OGC 03-065r3


Capabilities XML response. The entire MIME type string in Capability / Exceptions /
Format is used as the value of the EXCEPTIONS parameter.

Errors are reported using Service Exception XML, as specified in Subclause A.3. This is
the default exception format if none is specified in the request.

9.2.3   XML encoding

9.2.3.1  Overview

Figure 18 provides an overview of the GetCoverage XML request syntax.




                Figure 18 - GetCoverage

GetCoverage has two required attributes, service and version (defined as for GetCapa-
bilities in Subclause 7.2). It also has 5 required sub-elements, described in Subclauses
9.2.3.2 to 9.2.3.6 below.

9.2.3.2  sourceCoverage

The sourceCoverage element specifies a single coverage available from the WCS server.
Its value must match that of a CoverageOfferingBrief / name element obtained from the
WCS server's Capabilities XML document, or from a third-party catalog describing the
server's holdings. The type of the sourceCoverage element is anyURI.

9.2.3.3  DomainSubset

The domainSubset specifies what subset of the spatial and temporal domain to retrieve.
Its syntax (shown in Figure 19 below) resembles that of domainSet in the coverage de-
scription (Subclause 8.3.2).




36                                 © OGC 2003 – All rights reserved
                                             OGC 03-065r6




                   Figure 19. DomainSubset

The domainSubset must include either a spatialSubset (stating the spatial locations for
the requested coverage), a temporalSubset (describing the time instant(s) or interval(s)
for the requested coverage), or both.

The spatialSubset restricts the spatialDomain type described in Subclause 8.3.2.2. It
requires both a single GML Envelope (to request data for an overall extent in space and
time) and a single GML Grid (to specify the grid size (rows and columns) of the returned
coverage).
NOTE     In response to a GetCoverage request, a WCS server will return a grid of the requested size
covering the requested area. This usually requires interpolating / resampling the coverage values stored on
the server. To avoid any interpolation / resampling, clients should request the coverage in a native CRS
stated by the server; and select a GML Envelope whose extent exactly matches that of the requested GML
Grid. For such a request, if the chosen CRS is “Image” or “Engineering”, the Envelope and Grid must
both describe grids of the same size. For other CRSs, the Envelope and Grid must be related by the
offsetVector values in the coverage description (if supplied in the coverage description).

Clients may substitute a GML RectifiedGrid for the GML Grid. This lets a client spec-
ify separate row and column offsets – e.g., when requesting a georectified grid whose
rows and columns are not aligned with the axes of the chosen CRS.
NOTE    A GML RectifiedGrid defines both a grid size (rows and columns) and a grid spacing in
ground coordinates. Therefore it defines a particular spatial extent, which should match that of the GML
Envelope.

The temporalSubset element has the same structure as temporalDomain (Subclause
8.3.2.3): it allows requests to specify a sequence of time instants and / or intervals.

9.2.3.4   RangeSubset

In the case of a compound range set, clients may request subsets by constraining the
value of a range axis / parameter. The rangeSubset expresses what subset of the range to
retrieve, using a repeatable axisSubset element, as depicted in Figure 20.



                                                      37
© OGC 2003 – All rights reserved
OGC 03-065r3




                  Figure 20. RangeSubset

The axisSubset element has a name attribute that must match that of an AxisDescription
element defined on the given range component in the DescribeCoverage XML response
(Subclause 8.3.3.2). The value(s) requested under axisSubset must be among those listed
for the requested AxisDescription in the DescribeCoverage XML reply.

9.2.3.5   InterpolationMethod

The interpolationMethod specifies what type of interpolation to use for resampling cov-
erage values over the spatial domain. This must be one of those listed for this coverage
offering in the DescribeCoverage XML response (Subclause 8.3.6).

9.2.3.6   Output CRS and Format

The output element asks for coverage responses to be expressed in a particular Coordi-
nate Reference System (crs) and encoded in a particular format. Values for these ele-
ments must be among those listed under supportedCRSs and supportedFormats, re-
spectively, in the DescribeCoverage XML reply (Subclauses 8.3.4 and 8.3.5).

9.3   GetCoverage response

9.3.1   Overview

The response to a valid GetCoverage request must be a coverage extracted from the cov-
erage requested, with the specified spatial reference system, bounding box, size, and for-
mat.

An invalid GetCoverage request must yield an error output in the requested Exceptions
format (or a network protocol error response in extreme cases).

In an HTTP environment, the returned value must have a Content-type entity header that
matches the format of the return value.

9.3.2   Coverage encoding

A WCS server shall serve coverages in any of the formats listed in supportedFormats
for the requested coverage offering (see 8.3.5 above).


38                                 © OGC 2003 – All rights reserved
                                      OGC 03-065r6


9.4  Exceptions

For WCS, the Exceptions tag in the Capabilities response (and its counterpart EXCEP-
TIONS parameter in a GetCoverage request) is optional; if present, it must have a valid
MIME type string as its value.

A Web Coverage Server throwing an exception shall adhere to the value of the EXCEP-
TIONS parameter. Nonetheless, a Web Coverage server may, due to circumstances be-
yond its control, return nothing (this might result from the HTTP server’s behavior
caused by a malformed request, by an invalid HTTP request, by access violations, or any
of several other conditions). Web Coverage Service clients should be prepared for this
eventuality.




                                             39
© OGC 2003 – All rights reserved
OGC 03-065r3


                    Annex A
                   (normative)

                WCS XML Schemas


A.1 GetCapabilities request Schema

See file wcsCapabilities.xsd


A.2 GetCapabilities response schema

See file wcsCapabilities.xsd


A.3 DescribeCoverage request schema

See file describeCoverage.xsd


A.4 DescribeCoverage response schema

See file describeCoverage.xsd


A.5 GetCoverage request schema

See file getCoverage.xsd


A.6 Service exception schema

This subclause contains the Service Exception Schema corresponding to this version of
the WCS specification. This subclause also summarizes the defined exception codes and
their meanings.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.opengis.net/ogc"
xmlns:ogc="http://www.opengis.net/ogc" xmlns:xs="http://www.w3.org/2001/XMLSchema" ele-
mentFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="ServiceExceptionReport">
   <xs:annotation>
     <xs:documentation> The ServiceExceptionReport element contains one or more
ServiceException elements that describe a service exception. </xs:documentation>
   </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ServiceException" type="ogc:ServiceExceptionType"
              minOccurs="0" maxOccurs="unbounded">


40                                 © OGC 2003 – All rights reserved
                                             OGC 03-065r6


         <xs:annotation>
           <xs:documentation> The Service exception element is used to describe a
service exception. </xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
     <xs:attribute name="version" type="xs:string" fixed="1.2.0"/>
    </xs:complexType>
  </xs:element>

   <xs:complexType name="ServiceExceptionType">
    <xs:annotation>
      <xs:documentation> The ServiceExceptionType type defines the ServiceException
element. The content of the element is an exception message that the service wished to convey
to the client application. </xs:documentation>
    </xs:annotation>
     <xs:simpleContent>
       <xs:extension base="xs:string">
         <xs:attribute name="code" type="xs:string">
          <xs:annotation>
            <xs:documentation> A service may associate a code with an exception by
using the code attribute. </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locator" type="xs:string" use="optional">
          <xs:annotation>
            <xs:documentation> The locator attribute may be used by a service to indi-
cate to a client where in the client's request an exception was encountered. If the request in-
cluded a 'handle' attribute, this may be used to identify the offending component of the request.
Otherwise the service may try to use other means to locate the exception such as line numbers
or byte offset from the begining of the request, etc ... </xs:documentation>
          </xs:annotation>
         </xs:attribute>
       </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
</xs:schema>

          Table A.1 — Exception codes defined by this specification
  Exception Code                         Meaning
InvalidFormat           Request contains a Format not offered by the service instance.
CoverageNotDefined         Request is for a Coverage not offered by the service instance.
CurrentUpdateSequence       Value of (optional) UpdateSequence parameter in GetCapabilities
                  request is equal to current value of Capabilities XML update se-
                  quence number.
InvalidUpdateSequence       Value of (optional) UpdateSequence parameter in GetCapabilities
                  request is greater than current value of Capabilities XML update se-
                  quence number.
MissingParameterValue       Request does not include a parameter value, and the service instance
                  did not declare a default value for that parameter.
InvalidParameterValue       Request contains an invalid parameter value.




                                                   41
© OGC 2003 – All rights reserved
OGC 03-065r3


                   Annex B
                  (informative)

                 XML examples


B.1  Introduction

As an aid to understanding and a guide for implementation, this annex contains example
XML which is valid according to the XML schemas in Annex A. Implementers should
consult the main body of the specification document and the schemas to ensure compli-
ance rather than editing this XML without full understanding.


B.2  Example GetCapabilities XML request


B.3  Example GetCapabilities XML response


B.4  Example DescribeCoverage XML request


B.5  Example DescribeCoverage XML response


B.6  Example GetCoverage XML request


B.7  Example Service Exception XML




42                                © OGC 2003 – All rights reserved
                                      OGC 03-065r6


                    Annex C
                   (normative)

                  Conformance


C.1 Introduction

Specific conformance tests for Web Coverage Service have not yet been determined and
will be added in a future revision of this specification. At the moment, a WCS implemen-
tation must satisfy the following system characteristics to be minimally conformant with
this specification:

a) WCS Clients and servers must support the GetCapabilities, DescribeCoverage, and
  GetCoverage operations.
b) WCS clients must issue GetCapabilities requests in Key-Value Pair (KVP) or XML
  form. GetCapabilities KVP requests must conform to Subclause 7.2.2. GetCapabili-
  ties XML requests must conform to Subclause 7.2.3, and must be valid against the
  XML Schema definition in Subclause A.1.
c) WCS servers must respond to a GetCapabilities request with an XML document that
  conforms to Subclause 7.3, and is valid against the XML Schema definition in Sub-
  clause A.2.
d) WCS clients must issue DescribeCoverage requests in Key-Value Pair (KVP) or
  XML form. DescribeCoverage KVP requests must conform to Subclause 8.2.2. De-
  scribeCoverage XML requests must conform to Subclause 8.2.3, and must be valid
  against the XML Schema definition in Subclause A.3.
e) WCS servers must respond to a DescribeCoverage request with an XML document
  that conforms to Subclause 8.3, and is valid against the XML Schema definition in
  Subclause A.4.
f) WCS clients must issue GetCoverage requests in Key-Value Pair (KVP) or XML
  form. GetCapabilities KVP requests must conform to Subclause 9.2.2. GetCoverage
  XML requests must conform to Subclause 9.2.3, and must be valid against the XML
  Schema definition in Subclause A.5.
g) WCS servers must be able to respond to a GetCoverage operation with a coverage
  encoded in one of the output formats listed in Subclause 9.3.2.
h) All clauses in the normative clauses of this specification that use the keywords
  "must", "must not", "required", "shall", and "shall not" must be satisfied.




                                            43
© OGC 2003 – All rights reserved
OGC 03-065r3


                      Annex D
                    (informative)

                     UML model


D.1 Introduction

This annex provides a UML model of the WCS interface, using the OGC/ISO profile of
UML summarized in Subclause 5.2.

Figure D.1 is a UML diagram summarizing the WCS interface. This class diagram shows
that the WebCoverageService class inherits the getCapabilities operation from the ab-
stract OGCWebService class, which is common to all OGC Web Services. The WebCov-
erageService class adds the getCoverage and describeCoverage operations. (The capitali-
zation of class, operation, and data type names uses the OGC/ISO profile of UML.)

                    <<Interface>>
                  OGCWebService {Abstract}
                    (from OGC Web Service)


        + getCapabilities(request : GetCapabilities) : Capabilities




                    WebCoverageServer

    + getCoverage(request : GetCoverage) : ResultCoverage
    + describeCoverage(request : DescribeCoverage) : CoverageDescription



        Each server instance instantiates only one object of this class,
        and this object always exists while server is available.


           Figure D.1 — WCS interface UML diagram

Each of the three operations uses a request and a response data type, each of which can
also be defined by one or more additional UML classes The following subclauses provide
a more complete UML model of the WCS interface, adding UML classes defining the
operation request and response data types.


D.2 UML packages

The WCS interface UML model is organized in nine packages, as shown in the package
diagram in Figure D.2. These nine WCS-specific packages make use of three non-WCS-


44                                      © OGC 2003 – All rights reserved
                                                      OGC 03-065r6


specific packages, named OGC Web Service, ISO 19115 Subset, and GML Subset. This
package diagram shows the dependencies among the various packages

                        OGC Web Service
                        (from Logical View)
                      + Capabilities {Abstract}
                          + DCPType
                        + GetCapabilities
                           + HTTP
                       + InterpolationMethod
                        + LatLonEnvelope
                         + MetadataLink
                         + MetadataType
                     + OGCWebService {Abstract}
                     + OtherRequestBase {Abstract}
                        + SupportedCRSs
                       + SupportedFormats
                      + SupportedInterpolations
                          + TimePeriod
                         + TimeSequence




                         WCS
                     + WCSRequestBase {Abstract}
                      + WebCoverageServer

         Get Coverage
         + AxisSubset
        + DomainSubset                            Describe Coverage
        + GetCoverage                           + CoverageDescription
                          WCS Get Capabilities
          + Output                             + CoverageOffering
                          + CapabilitiesSection
        + RangeSubset                            + DescribeCoverage
                           + WCS_Capbilites
        + ResultCoverage                            + DomainSet
        + SpatialSubset                            + SpatialDomain




          WCS Capability                        Content Metadata
           + Exception                        + ContentMetadata
           + Request                        + CoverageOfferingBrief
                              Service
     + VendorSpecificCapabilities {Abstract}               + Description {Abstract}
          + WCSCapability                     + DescriptionBase {Abstract}
                             + Service




   ISO 19115 Subset                       WCS Values
   (from Logical View)                      + Closure         Range Set
                    GML Subset
      + Address                        + Interval       + AxisDescription
                  (from Logical View)
      + Contact                       + TypedLiteral       + RangeSet
                     + Code
     + Keywords                       + ValueEnum         + Values
                    + CodeList
    + OnlineResource                     + ValueEnumBase
                   + TimeDuration
   + ResponsibleParty                     + ValueRange
                   + TimePosition
     + Telephone




              Figure D.2 — WCS interface package diagram


                                                           45
© OGC 2003 – All rights reserved
OGC 03-065r3


Each of the nine WCS-specific packages shown in Figure D.2 is described in the follow-
ing subclauses, followed by the OGC Web Service package.


D.3 WCS package

The WCS package is shown in the class diagram in Figure D.3. This diagram does not
show the classes used by the three operation requests and responses, which are shown
(with this package) in the Get Coverage, Describe Coverage, and WCS GetCapabilities
packages. This diagram also shows two used classes from the OGC Web Service pack-
age, which is common to all OGC Web Services.

                    <<Interface>>
                  OGCWebService {Abstract}
                    (from OGC Web Service)


        + getCapabilities(request : GetCapabilities) : Capabilities




                     <<Type>>
                    WebCoverageServer

    + getCoverage(request : GetCoverage) : ResultCoverage
    + describeCoverage(request : DescribeCoverage) : CoverageDescription


        Each server instance instantiates only one object of this class,
        and this object always exists while server is available.




                    <<DataType>>
                 OtherRequestBase {Abstract}
                    (from OGC Web Service)
               + version : CharacterString




                     <<DataType>>
                 WCSRequestBase {Abstract}
           + service : CharacterString = "WCS" {frozen}


            Figure D.3 — WCS package class diagram




46                                      © OGC 2003 – All rights reserved
                                                                  OGC 03-065r6


D.4 Get Coverage package

The Get Coverage package is shown in the class diagram in Figure D.4. This diagram
also shows the two classes of the WCS package plus several used classes from the OGC
Web Service and WCS Values packages.

                                             <<Interface>>
                                           OGCWebService {Abstract}
                                             (from OGC Web Servi ce)


                                 + getCapabilities(request : GetCapabilities) : Capabilities



         <<DataType>>
                                              <<Type>>
      OtherRequestBase {Abstract}
                                             WebCoverageServer
        (from OGC Web Servi ce)
                                                (from WCS)
    + version : CharacterString

                             + getCoverage(request : GetCoverage) : ResultCoverage
                             + describeCoverage(request : DescribeCoverage) : CoverageDescription


           <<DataType>>
         WCSRequestBase {Abstract}
               (from WCS)
   + service : CharacterString = "WCS" {frozen}



                                                 <<CodeList>>
                                               InterpolationMethod
                                                                 <<DataType>>
               <<DataType>>                          (from OGC Web Servi ce)
                                                                 ResultCoverage
                GetCoverage                        +  nearest neighbor
                                             +  bilinear
    + request : CharacterString = "GetCoverage" {frozen}
                                             +  bicubic
    + sourceCoverage : CharacterString
                                             +  lost area
    + interpolationMethod [0..1] : InterpolationMethod
                                             +  barycentric           Not yet detailed
                                             +  none
                                  1
                1           1

                  1
          +output
         <<DataType>>
           Output                                            +rangeSubset
    + crs [0..1] : CharacterString
                                                            <<OneOrMore>>
                                                        0..1
    + format : CharacterString
                                                             RangeSubset

                               1  +domainSubset
     1               1
                                                                  1
                             <<DataType>>
     1               0..1
        +format   +crs                                           +axisSubset   1..*
                             DomainSubset
        <<DataType>>           + requestSRS : CharacterString                      <<DataType>>
         Code                                                   AxisSubset
        (from GM L Subset)
                                                          + name : CharacterString
                           1            1
    + code : CharacterString
    + codeSpace [0..1] : URI
                                      0..1   +spatialSubset
                             OneOrBoth
                                           <<DataType>>
                        0..1
        +termporalSubset                           SpatialSubset
                                                             <<DataType>>
            <<DataType>>                    + envelope : GML_Envelope          ValueEnumBase
            TimeSequence                    + grid : GML_Grid               (from WCS Val ues)
          (from OGC Web Service)




               Figure D.4 —Get Coverage package class diagram




                                                                          47
© OGC 2003 – All rights reserved
OGC 03-065r3


D.5 Describe Coverage package

The Describe Coverage package is shown in the class diagram in Figure D.5. This dia-
gram does not show details of the RangeSet class, which is in the Range Set package that
is detailed in the following subclause. This diagram also shows the two classes of the
WCS package plus several used classes from the OGC Web Service and Content Meta-
data packages.

Notice that the SpatialDomain class uses three data types defined by GML, here named
GML_Envelope, GML_Grid, and GML_Polygon, but not detailed in this Annex.

                                            <<Interface>>
                                          OGCWebService {Abstract}
                                              (from OGC Web Service)


                                + getCapabilities(request : GetCapabilities) : Capabilities



          <<DataType>>
                                               <<Type>>
       OtherRequestBase {Abstract}
                                              WebCoverageServer
          (from OGC Web Service)
                                                (from WCS)
     + version : CharacterString

                            + getCoverage(request : GetCoverage) : ResultCoverage
                            + describeCoverage(request : DescribeCoverage) : CoverageDescription


         <<DataType>>
       WCSRequestBase {Abstract}
              (from WCS)
+ service : CharacterString = "WCS" {frozen}




              <<DataType>>                      <<DataType>>                  <<DataType>>
             DescribeCoverage                    CoverageOfferingBrief              CoverageDescription
                                         (from Content M etadata)
+ request : CharacterString = "DescribeCoverage" {frozen}
+ coverage [0..*] : CharacterString
                                                                 1
                                                    1..*
                                                         +coverageOffering
                                           <<DataType>>
                                          CoverageOffering
                                       1                  1
                                                              +supportedCRSs
                                                       1
                            1               1    1                    <<DataType>>
                     <<DataType>>                                    1
                                                                    SupportedCRSs
                            +domainSet
                     DomainSet                    1
                                     +rangeSet
                                                                   (from OGC Web Servi ce)
                                      <<DataType>>
                         1             RangeSet                    1      +supportedFormats
                     1
                                      (from Range Set)
                                                                  <<DataType>>
                   OneOrBoth
                                                                 SupportedFormats
                            0..1  +spatialDomain
+temporalDomain       0..1
                                                                 (from OGC Web Servi ce)
                                   <<DataType>>
   <<DataType>>
                                    SpatialDomain                       +supportedInterpolations
   TimeSequence                                                  0..1
                            + envelope [1..*] : GML_Envelope
 (from OGC Web Servi ce)
                                                           <<DataType>>
                            + grid [0..*] : GML_Grid
                                                         SupportedInterpolations
                            + polygon [0..*] : GML_Polygon
                                                           (from OGC Web Servi ce)




            Figure D.5 — Describe Coverage package class diagram



48                                                        © OGC 2003 – All rights reserved
                                                OGC 03-065r6


D.6 Range Set package

The Range Set package is shown in the class diagram in Figure D.6. This diagram shows
the two used classes of the WCS Values packages that is detailed in the following sub-
clause, plus a used class from the Content Metadata package, detailed later.

         <<DataType>>
        CoverageOffering            <<DataType>>
       (from Describe Coverage)        Description {Abstract}
                             (from Content Metadata)
               1

      +rangeSet     1

        <<DataType>>
          RangeSet
     + type [0..1] : URI
     + semantic [0..1] : URI
                       1

                              +axisDescription
               1
                          0..*          <<DataType>>
                                     AxisDescription
     +nullValues     0..1
                              + semantic [0..1] : URI
         <<DataType>>               + refSys [0..1] : CharacterString
          ValueEnum                + refSysLabel [0..1] : CharacterString
         (from WCS Val ues)


                              1
                    1
         <<DataType>>      +values
           Values


               1

        +default    1

         <<DataType>>
          TypedLiteral
         (from WCS Val ues)
     + value : CharacterString
     + type [0..1] : URI


              Figure D.6 — Range Set package class diagram




                                                     49
© OGC 2003 – All rights reserved
OGC 03-065r3


D.7 WCS Values package

The WCS Values package is shown in the class diagram in Figure D.7.

                       <<DataType>>
                        ValueEnum
                    + type [0..1] : URI
                    + semantic [0..1] : URI
                                       <<Enumeration>>
                                          Closure
                                      + closed
                                      + open
                        <<DataType>>        + open-closed
                        ValueEnumBase        + closed-open


                              1
                         1

                                     +interval
                                 0..*
                        Ordered,
                        AtLeasdOne        <<DataType>>
                                      Interval
                 0..*
       +singleValue
                                   1
                  0..1
      <<DataType>>
       TypedLiteral
                    +res
   + value : CharacterString
                  +min
   + type [0..1] : URI

                            1
                  0..1                 <<DataType>>
      +max   0..1                         ValueRange
                            +   type [0..1] : URI
                            1+   semantic [0..1] : URI
                            +   atomic [0..1] : Boolean = false
                            +   closure [0..1] : Closure



          Figure D.7 — WCS Values package class diagram




50                                       © OGC 2003 – All rights reserved
                                                            OGC 03-065r6


D.8 WCS Get Capabilities package

The WCS Get Capabilities package is shown in the class diagram in Figure D.8. This
diagram does not show details of the Service, WCSCapability, and ContentMetadata
classes, which are in the Service, WCS Capability, and Content Metadata packages that
are detailed in the following subclauses. This diagram also shows one class of the WCS
package plus several used classes from the OGC Web Service package.

                              <<Interface>>
                            OGCWebService {Abstract}
                               (from OGC Web Servi ce)


                  + getCapabilities(request : GetCapabilities) : Capabilities



                               <<Type>>
                              WebCoverageServer
                                  (from WCS)


             + getCoverage(request : GetCoverage) : ResultCoverage
             + describeCoverage(request : DescribeCoverage) : CoverageDescription


                                                  <<DataType>>
              <<DataType>>
                                                Capabilities {Abstract}
              GetCapabilities
                                                 (from OGC Web Service)
             (from OGC Web Servi ce)
                                       + version [0..1] : CharacterString
+  service : CharacterString = "WCS" {frozen}
                                       + updateSequence [0..1] : CharacterString
+  request : CharacterString = "GetCapabilities" {frozen}
+  version [0..1] : CharacterString
+  section [0..1] : CapabilitiesSection = "/"
+  updateSequence [0..1] : CharacterString

                                                <<DataType>>
                                                WCS_Capbilites
                                                              1
                                            1
                                                                1  +service
                                          1
                                 +capability
             <<Enumeration>>                                 1
             CapabilitiesSection                                  <<DataType>>
                                    <<DataType>>
                                                          Service
      +  /                            WCSCapability
                                                           (from Service)
      +  /WCS_Capabilities/Service               (from WCS Capabili ty)
      +  /WCS_Capabilities/Capability
                                                     1
                                         +contentMetadata
      +  /WCS_Capabilities/ContentMetadata
                                               <<DataType>>
                                               ContentMetadata
                                              (from Content Metadata)



          Figure D.8 — WCS Get Capabilities package class diagram




                                                                     51
© OGC 2003 – All rights reserved
OGC 03-065r3


D.9 Service package

The Service package is shown in the class diagram in Figure D.9. This diagram also
shows several used classes from the Content Metadata, ISO 19115 Subset, and GML
Subset packages. (The ISO 19115 Subset and GML Subset packages are not detailed
separately in this Annex.)
                                <<DataType>>
                             DescriptionBase {Abstract}
                                (from Content Metadata)
                         + description [0..1] : CharacterString
                         + name : CharacterString



                                                          <<DataType>>
                                                        Capabilities {Abstract}
                                 <<DataType>>
                                                          (from OGC Web Service)
                               Description {Abstract}
                                                 + version [0..1] : CharacterString
                                (from Content Metadata)
                                                 + updateSequence [0..1] : CharacterString
                            + label : CharacterString




                                <<DataType>>
                                                                <<DataType>>
                                 Service                +service
                                                                WCS_Capbilites
                     1 + version [0..1] : CharacterString                        (from WCS Get Capabilities)
                      + updateSequence [0..1] : CharacterString          1      1


                                      1
        +keywords      0..*                      1     1
                                                                 +accessConstraints
                                                             1
               <<DataType>>
                Keywords                                       <<DataType>>
             (from ISO 19115 Subset)
                                                            CodeList
                                              1..*
        + keyword [1..*] : CharacterString                                  (from GML Subset)
                                                + codes : Sequence <CharacterString>
                                             +fees
                                                + codeSpace [0..1] : URI

                                      0..1
                          +responsibleParty
                                                         OneOrBoth of individualName
                                 <<DataType>>
                                                         OR organisationName
                                ResponsibleParty
                               (from ISO 19115 Subset)
      <<DataType>>            + individualName [0..1] : CharacterString
                                                               <<DataType>>
      OnlineResource           + organisationName [0..1] : CharacterString
                                                                Telephone
     (from ISO 19115 Subset)
                       + positionName [0..1] : CharacterString
                                                             (from ISO 19115 Subset)
    + linkage : URL
                                                       + voice [0..*] : CharcterString
                                                       + facsimile [0..*] : CharcterString
                        0..1         1                0..1
          +onlineResource
                             1    0..1   +contact 1
                                                   +phone
                                <<DataType>>
                                  Contact
                               (from ISO 19115 Subset)



                                   1
                                  0..1  +address
                                 <<DataType>>
                                  Address
                               (from ISO 19115 Subset)
                     +  deliveryPoint [0..*] : CharacterString
                     +  city [0..1] : CharacterString
                     +  administrativeArea [0..1] : CharacterString
                     +  postalCode [0..*] : CharcterString
                     +  country [0..*] : CharcterString
                     +  electronicMailAddress [0..*] : CharcterString



                Figure D.9 — Service package class diagram




52                                                               © OGC 2003 – All rights reserved
                                                          OGC 03-065r6


D.10 WCS Capability package

The WCS Capability package is shown in the class diagram in Figure D.10. This diagram
also shows several used classes from the OGC Web Service and ISO 19115 Subset pack-
ages. (The ISO 19115 Subset package is not detailed separately in this Annex.)

                   <<DataType>>                        <<DataType>>
                   WCS_Capbilites                      Capabilities {Abstract}
                  (from WCS Get Capabil ities)                 (from OGC Web Service)
                                       + version [0..1] : CharacterString
                                       + updateSequence [0..1] : CharacterString
                            1

                            1
                +capability
                        <<DataType>>
                        WCSCapability
               + version [0..1] : CharacterString
               + updateSequence [0..1] : CharacterString


                          1       1     1
                    1
         +exception                   1           0..1
                          +request                    +vendorSpecificCapabilities
      <<DataType>>                <<DataType>>               <<DataType>>
        Exception                Request            VendorSpecificCapabilities {Abstract}
+ format [1..*] : CharacterString
                              1   1  1

                                 +getCoverage
                              1..*
                            <<DataType>>
                      1..*                 1..*
                             DCPType
                          (from OGC Web Servi ce)
            +getCapabilities                   +describeCoverage

                                 1

                            +HTTP   1
                            <<DataType>>
                             HTTP
                          (from OGC Web Servi ce)
                       1               1


                            AtLeasdOne



                            <<DataType>>
                      0..*               0..*
                            OnlineResource
                          (from ISO 19115 Subset)
                    +get + linkage : URL         +post




           Figure D.10 — WCS Capability package class diagram




                                                                53
© OGC 2003 – All rights reserved
OGC 03-065r3


D.11 Content Metadata package

The Content Metadata package is shown in the class diagram in Figure D.11. This dia-
gram also shows several used classes from the OGC Web Service and GML Subset pack-
ages. (The GML Subset package, with the TimePosition class in it, is not detailed sepa-
rately in this Annex.)

Notice that the ContentMetadata class has an attached note which states that this class
“Can reference other service providing content metadata, instead of or in addition to in-
cluding CoverageOfferingBrief objects”. This other service can be a catalog service. The
association to the CoverageOfferingBrief class with the coverageOfferingBrief role is
thus modeled as an aggregation (instead of a composition) association, since the equiva-
lents of CoverageOfferingBrief objects can exist outside of ContentMetadata objects.

         <<DataType>>
       Capabilities {Abstract}
        (from OGC Web Service)
                                        <<DataType>>
+ version [0..1] : CharacterString
                                     DescriptionBase {Abstract}
+ updateSequence [0..1] : CharacterString
                                 + description [0..1] : CharacterString
                                 + name : CharacterString
                                                         1


                      Can reference other
       <<DataType>>                                                   0..1  +metadataLink
                      service providing
       WCS_Capbilites
                                                             <<DataType>>
                      content metadata,           <<DataType>>
     (from WCS Get Capabil ities)
                                                             MetadataLink
                      instead of or in          Description {Abstract}
                      addition to including                           (from OGC Web Servi ce)
                                      + label : CharacterString
             1         CoverageOfferingBrief                      +  reference : URI
                      objects                             +  title [0..1] : CharacterString
 +contentMetadata    1                                         +  about [0..1] : URI
                                                      +  metadataType : MetadataType
          <<DataType>>              +coverageOf
          ContentMetadata                         <<DataType>>
                               feringBrief
                                         CoverageOfferingBrief
+ version [0..1] : CharacterString
+ updateSequence [0..1] : CharacterString             1..*
                            1
                                                 1
                                       1                      <<CodeList>>
                                                             MetadataType
                                                 1
                                   +latLonEnvelope
                   +keywords                                    (from OGC Web Servi ce)
                                          <<DataType>>           + TC211
       <<DataType>>           0..*                 LatLonEnvelope          + FGDC
        Keywords
                                         (from OGC Web Servi ce)       + none
      (from ISO 19115 Subset)
                                 + position [2} : GML_pos
 + keyword [1..*] : CharacterString
                                 + crs : URI = "WGS84(DD)" {frozen}

             1
                                                 1
       +type    0..1                                  2
                                      +timePosition
       <<DataType>>                              <<DataType>>
         Code                                 TimePosition
       (from GM L Subset)
                                           (from GM L Subset)
    + code : CharacterString
    + codeSpace [0..1] : URI



            Figure D.11 — Content Metadata package class diagram




54                                                        © OGC 2003 – All rights reserved
                                                                  OGC 03-065r6


D.12 OGC Web Service package

The OGC Web Service package is shown in the class diagrams in Figures D.12 and D.13.
These diagrams also show several used classes from the ISO 19115 Subset and GML
Subset packages. (The ISO 19115 Subset and GML Subset packages are not detailed
separately in this Annex. Also, the TimePosition and Timeduration classes in the GML
Subset package are not detailed in these class diagrams.)

As shown, the OGC Web Service package contains several un-connected parts, which are
separately used by the various WCS packages defined in the preceding subclauses. No-
tice that the LatLonEnvelope class uses a type from GML 3, here named GML_pos but
not detailed in this Annex.

                                   This abstract class is subtyped and expanded
                                   by each OGC web service interface.




          <<DataType>>                            <<Interface>>
      OtherRequestBase {Abstract}                       OGCWebService {Abstract}
    + version : CharacterString
                              + getCapabilities(request : GetCapabilities) : Capabilities




                 <<DataType>>                                <<DataType>>
                 GetCapabilities                            Capabilities {Abstract}
   +  service : CharacterString = "WCS" {frozen}                   + version [0..1] : CharacterString
   +  request : CharacterString = "GetCapabilities" {frozen}             + updateSequence [0..1] : CharacterString
   +  version [0..1] : CharacterString
   +  section [0..1] : CapabilitiesSection = "/"
   +  updateSequence [0..1] : CharacterString




                                                <<DataType>>
            <<DataType>>                              TimeSequence
             DCPType

                                                      1
                                                 1
                 1
                                                Ordered,
           +HTTP    1
                                                AtLeasdOne           +timePeriod
                                                         0..*
                                           0..*
                                 +timePosition
            <<DataType>>
                                                             <<DataType>>
             HTTP                  <<DataType>>      1                 TimePeriod
         1                         TimePosition
                        1
                                                           + frame [0..1] : URI
                                             +beginPosition
                                 (from GML Subset)                1
           AtLeasdOne               2   +timePosition   +endPosition
                                                             1    1
                                           1
                                                                    0..1
                                                        +timeResolution
                               1
                                                               <<DataType>>
                                     <<DataType>>
            <<DataType>>
                          0..*
     0..*                                                        TimeDuration
                                     LatLonEnvelope
            OnlineResource
                                                               (from GML Subset)
           (from ISO 19115 Subset)        + position [2} : GML_pos
     +get + linkage : URL           +post  + crs : URI = "WGS84(DD)" {frozen}



         Figure D.12 — OGC Web Service package class diagram, page 1



                                                                         55
© OGC 2003 – All rights reserved
OGC 03-065r3


                                      <<DataType>>
         <<DataType>>
                                    SupportedInterpolations
         MetadataLink
                        + interpolationMethod [1..*] : InterpolationMethod
+  reference : URI
                        + default [0..1] : InterpolationMethod = nearest neighbor
+  title [0..1] : CharacterString
+  about [0..1] : URI
+  metadataType : MetadataType

                                       <<CodeList>>
                                     InterpolationMethod
                                   +  nearest neighbor
       <<CodeList>>
                                   +  bilinear
       MetadataType
                                   +  bicubic
      + TC211                         +  lost area
      + FGDC                          +  barycentric
      + none                          +  none



                     1              1
                        <<DataType>>
                        SupportedCRSs
                                   1
                     1


                       requestRespnseCRSs
                       OR (requestCRSs
                       AND responseCRSs)

                              +responseCRSs
              0..*                         0..*
                   +requestCRSs
                        <<DataType>>
                         CodeList
                                          0..*
                        (from GML Subset)
             0..*
             + codes : Sequence <CharacterString>
                                          +nativeCRSs
   +requestResponseCRSs + codeSpace [0..1] : URI


                         1..*  +formats

                           1

                        <<DataType>>
                       SupportedFormats
                 + nativeFormat [0..1] : CharacterString



       Figure D.13 — OGC Web Service package class diagram, page 2




56                                            © OGC 2003 – All rights reserved
                                    OGC 03-065r6


                  Bibliography


[1]  OGC 00-014r1, Guidelines for Successful OGC Interface Specifications

[2]  ISO 19103, Geographic Information – Conceptual schema language

[3]  OMG Unified Modeling Language Specification (UML), Version 1.5, March 2003,
    http://www.omg.org/docs/formal/03-03-01.pdf




                                         57
© OGC 2003 – All rights reserved
by jpublic — last modified 20-10-2006 19:07
 

Built with Plone