License Agreement

Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement.

If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR.

THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD.

THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY.

This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party.

Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications. This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it.


 

i. Abstract

The OGC Web Coverage Service (WCS) supports electronic retrieval of geospatial data as “coverages.” Coverages are digital geospatial information representing space/time-varying phenomena, specifically spatio-temporal regular and irregular grids, point clouds, and general meshes.

This document specifies the WCS core. Every implementation of a WCS shall adhere to this standard. This standard defines core requirements. Extensions to the core define extensions to meet additional requirements, such as the response encoding. Additional extensions are required in order to completely specify a WCS for implementation.

This WCS 2.1 standard extends WCS 2.0 in a backwards compatible manner by accommodating coverages as per the OGC Coverage Implementation Schema (CIS) 1.1 in addition to CIS 1.0 coverages as addressed by WCS 2.0.

ii.          Keywords

The following are keywords to be used by search engines and document catalogues.

ogcdoc, OGC document, coverage, Web Coverage Service, grid, mesh

iii.          Preface

This document specifies the OGC Web Coverage Service (WCS) core requirements, which are mandatory for any implementation claiming to be conformant with WCS. The WCS standard is based on the Coverage Implementation Schema (CIS), OWS Common, and OGC Abstract Topic 6. WCS 2.1 extends WCS 2.0 (which establishes how to offer coverages as per CIS 1.0) so that 2.1 servers may additionally offer coverages as per CIS 1.1. Therefore, WCS 2.1 is backwards compatible with WCS 2.0. Any service passing the WCS 2.1 conformance tests will also pass the WCS 2.0 tests. Further, all WCS 2.x extensions remain applicable in the context of WCS 2.1.

Suggested additions, changes, and comments on this draft document are welcome and encouraged. Such suggestions may be submitted by email message or by making suggested changes in an edited copy of this document

Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.

iv.          Security Considerations

No security considerations have been made for this standard

v.          Submitting organizations

The following organizations submitted this Document to the Open Geospatial Consortium (OGC):

  • Jacobs University Bremen
  • rasdaman GmbH
  • Envitia Ltd
  • European Union Satellite Center

vi.          Submitters

All questions regarding this submission should be directed to the editor or the submitters:

 

Name Affiliation

Peter Baumann

Jacobs University Bremen, rasdaman GmbH

1.    Scope

This document specifies how a Web Coverage Service (WCS) offers multi-dimensional (usually spatio-temporal) coverage data for access over the Internet. This document relies on and extends WCS 2.0, which operates on coverages as per the OGC Coverage Implementation Schema (CIS) 1.0, with support for coverages as per CIS 1.1.

All WCS 2.0 service extension standards remain applicable under WCS 2.1. However, in order to accommodate CIS 1.1 some extensions may need to be enhanced, leading to a minor version updates.

2.    Conformance

Standardization target are WCS 2.1 implementations (currently: servers).

This document establishes a single requirements class, core, http://www.opengis.net/spec/WCS/2.1/req/core with a single pertaining conformance class, core, with URI http://www.opengis.net/spec/WCS/2.1/conf /core. Requirements and conformance test URIs defined in this document are relative paths to be appended to http://www.opengis.net/spec/WCS/2.1/.

Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site[1].

In order to conform to this OGC®interface standard, a software implementation shall choose to implement:

a)     Any one of the conformance levels specified in Annex A (normative).

All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.

3.    References

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

  • OGC: OGC 07-011, Abstract Specification Topic 6: The Coverage Type and its Subtypes, version 7 (identical to ISO 19123:2005), 2007

  • OGC: OGC 06-121r9, OGC Web Service Common Specification, version 2.0, 2010

    ·      Conformance classes used: GetCapabilitiesoperation (Clause 7)

  • OGC: OGC 09-146r2, OGC® Coverage Implementation Schema, version 1.0, 2012

    ·      Conformance classes used: coverage

  • OGC: OGC 09-146r6, OGC® Coverage Implementation Schema, version 1.1, 2017

    ·      Conformance classes used: coverage

  • OGC: OGC 09-110r4, OGC® Web Coverage Service – Core, version 2.0, 2012

    ·      Conformance classes used: core

  • OGC: OGC 16-083r2, Coverage Implementation Schema – ReferenceableGridCoverage Extension, version 1.0, 2017

    ·      Conformance classes used: gmlcovrgrid

4.    Terms and Definitions

This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r9], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.

For the purposes of this document, all terms and definitions in OGC Abstract Specification Topic 6 apply.

5.    Conventions

5.1    UML notation

Unified Modeling Language (UML) static structure diagrams appearing in this standard are used as described in Sub-clause 5.2 of OGC Web Service Common [OGC 06-121r9]. Further, the following conventions hold.

  • UML elements having a package name of “OWS Common” are those defined in the UML model of OWS Common [OGC 06-121r9].
  • UML elements having a package name of GML are those defined in the UML model of GML [OGC 07-036].
  • UML elements having a package name of “SWE Common” are those defined in the UML model of SWE Common [OGC 08-094].
  • UML elements having a package name of CIS are those defined in the UML model of CIS 1.0 [OGC 09-146r2].
  • UML elements not qualified with a package name are those defined in this Standard.
  • UML data type Any is used here as an equivalent to XML’s xsd:any.

5.2    Data dictionary tables

The UML model data dictionary is specified herein in a series of tables. The contents of the columns in these tables are described in Sub-clause 5.5 of [OGC 06-121r9]. The contents of these data dictionary tables are normative, including any table footnotes.

For the reader’s convenience, table rows describing inherited components are shaded.

5.3    Namespace prefix conventions

The following namespaces are used in this document. The prefix abbreviations used constitute conventions, but are notnormative. The namespaces to which the prefixes refer are normative, however.

Table : Namespace mappings
Prefix Namespace URI Description

xsd

http://www.w3.org/2001/XMLSchema

XML Schema

gml32

http://www.opengis.net/gml/3.2

GML 3.2.1

gml33

http://www.opengis.net/gml/3.3

GML 3.3

swecommon20

http://www.opengeospatial.org/standards/swecommon

SWE Common 2.0

cis10

http://www.opengis.net/cis/1.0

CIS 1.0 (aka GMLCOV 1.0)

cis11

http://www.opengis.net/cis/1.1

CIS 1.1

wcs20

http://www.opengis.net/wcs/2.0

WCS 2.0

gmlcovrgrid10

http://www.opengis.net/gmlcov/gmlcovrgrid/1.0

GMLCOV/CIS 1.0
Referenceable Grid Extension

wcs21

http://www.opengis.net/wcs/2.1

WCS 2.1

6.    WCS Data Model

A WCS server offers a – possibly empty – set of coverage objects, each of which can be either a CIS 1.0 coverage or a CIS 1.1 coverage.

7.    WCS Service Model

The WCS Core service model is identical to WCS 2.0, but extended with CIS 1.1 coverages in its offering (Figure 1). In particular, the requests syntax and semantics remain unchanged so that a WCS 2.1 server offers the services established in WCS Core 2.0 [OGC 09-110r4] on both CIS 1.0 [OGC 09-146r2] and CIS 1.1 [OGC 09-146r6] coverages. Syntax is added which allows differentiating between CIS 1.0 and CIS 1.1 structures as results.

Figure : WCS CoverageOfferings UML class diagram

NOTE 1    As per OGC Web Services, the functionality of extensions listed in the Capabilities is available on all coverages offered, both CIS 1.0 and 1.1.

NOTE 2    There is no formal requirement on the contents of this diagram because it will be a segue of the requirements on requests.

Extended behavior of WCS 2.1 over WCS 2.0 is described in the following clauses.

8.    WCS Core Operations

8.1    GetCapabilities operation

The WCS2.1 GetCapabilities request is identical to the definition provided in WCS 2.0.

The WCS 2.1 GetCapabilities response additionally reports CIS 1.1 coverages.

Requirement 1                 /req/core/getCapabilities-cis11:
The GetCapabilities request of a WCS 2.1 server shall handle CIS 1.0 [OGC 09-146r2] and CIS 1.1 [OGC 09-146r6] coverages identically.
Dependency:http://www.opengis.net/spec/WCS/2.0/conf/core,
http://www.opengis.net/spec/CIS/1.0/conf/coverage, http://www.opengis.net/spec/CIS/1.1/conf/coverage

NOTE       Often a single implementation will support both WCS 2.0 and 2.1 requests. However, both will not necessarily return the same list of coverages offered: a GetCapabilities request against a WCS 2.0 server will only list CIS 1.0 coverages, but not list any CIS 1.1 coverages as these are unknown per definition of WCS 2.0 and cannot be retrieved through a WCS 2.0 DescribeCoverage or GetCoverage request – whereas under a WCS 2.1 regime, both CIS 1.0 and CIS 1.1 coverages will be listed, if any.

8.2    DescribeCoverage operation

The WCS 2.1 DescribeCapabilities request is identical to its definition in WCS 2.0.

The WCS 2.1 DescribeCoverage response is identical to WCS 2.0 for CIS 1.0 coverages; for CIS 1.1 coverages, the response structure is adjusted accordingly.

Requirement 2                 /req/core/describeCoverage-cis11:
The response to a successful DescribeCoveragerequest on a CIS 1.1 coverage [OGC 09-146r6] shallconsist of a CoverageDe­script­ions element as described in Figure 2 and Table 2.

Table 2 lists the structure of the CIS 1.1 enhanced subtype WCS 2.1::Cover­age­Desc­ript­ion. Depending on the coverage type requested the result will be a WCS 2.0 coverage description (for CIS 1.0 coverages) or a WCS 2.10 description (for CIS 1.1 coverages).

Table : WCS CoverageDescription components
(extended component white, all components inherited without modifications grey)
Name Definition Data type Multiplicity

coverage­Function

GML 3.2.1 coverage function to describe how range values at coverage locations can be obtained

GML 32::
Coverage­Function

zero or one
(optional)

envelope

Coverage bounding box

CIS 1.0::Envelope

zero or one
(optional)

domainSet

Domain extent description of this coverage

CIS 1.0::DomainSet
or
CIS 1.1::DomainSet

zero or one
(optional)

range­Type

Range structure description of this coverage

SWE Common 2.0::
DataRecord

one
(mandatory)

metadata

Application-specific metadata

CIS 1.0::Metadata

zero or more
(optional)

service­Parameters

Service-specific parameters of this coverage

WCS 2.0::
Service­Parameters

one
(mandatory)

 

To keep response size moderate, a coverage description does not include any recursively nested cov­erages, nor position/value pairs. To still provide information about the domain extent, the coverage envelope is mandatory in this case.

Requirement 3                 /req/core/no-description-nesting:
The response to a successful DescribeCoveragerequest on a CIS 1.1 coverage [OGC 09-146r6] which contains a CIS 1.1::PartitionSetshallnot contain a CIS 1.1:: PartitionSet and shallcontain an envelope.

NOTE       The domain set description variants added in CIS 1.1 [OGC 09-146r6] allow for recursive coverage nestings through the PartitionSet component, which obviously should be copied into a coverage description (which intuitively is expected to be comparatively small in size). However, beware that the domain extent description still can be large – the domain set of a CIS 1.0::Referenceable­Grid­Coverage and a CIS 1.1::Displace­ment­Axis­Nest (“warped”) coverage (CIS 1.1 conformance class grid-irregular) may grow as big as the range set, and actually can exceed its size, in certain situations.

WCS CoverageDescription UML class diagram
Figure : WCS CoverageDescription UML class diagram

Example: The response to a valid DescribeCoverage request for CIS 1.1 GeneralGridCoverage with id C0001 might be:


< CoverageDescriptions
     xmlns=’http://www.opengis.net/wcs/2.1/gml’
     xmlns:cis11=’http://www.opengis.net/cis/1.1/gml’
     xmlns:gml=’http://www.opengis.net/gml/3.2’
     xmlns:swe=’http://www.opengis.net/swe/2.0’
     xmlns:xsi=’http://www.w3.org/2001/XMLSchema-instance’
     xsi:schemaLocation=
                        ’http://www.opengis.net/swe/2.0 http://schemas.opengis.net/sweCommon/2.0/swe.xsd
                         http://www.opengis.net/wcs/2.1/gml http://schemas.opengis.net/wcs/2.1/gml/wcsAll.xsd’>
     <CoverageDescription gml:id="C0001">
         <cis11:envelope srsName=http://www.opengis.net/def/crs/EPSG/0/4326
             axisLabels="Lat Long" srsDimension="2"> 
             <cis11:axisExtent axisLabel="Lat"  uomLabel="deg" lowerBound="1" upperBound="5"/>
             <cis11:axisExtent axisLabel="Long" uomLabel="deg" lowerBound="1" upperBound="3"/>
         </cis11:envelope>
         <cis11:domainSet>
             <cis11:generalGrid srsName=http://www.opengis.net/def/crs/EPSG/0/4326
                 axisLabels="Lat Long">
                 <cis11:regularAxis axisLabel="Lat"  uomLabel="deg" lowerBound="1" upperBound="5"
                     resolution="1"/>
                 <cis11:regularAxis axisLabel="Long" uomLabel="deg" lowerBound="1" upperBound="3"
                     resolution="1"/>
                 <cis11:gridLimits srsName="http://www.opengis.net/def/crs/OGC/0/Index2D" axisLabels="i j">
                     <cis11:indexAxis axisLabel="i" lowerBound="0" upperBound="2"/>
                     <cis11:indexAxis axisLabel="j" lowerBound="0" upperBound="2"/>
                 </cis11:gridLimits>
             </cis11:generalGrid>
         </cis11:domainSet>
         <cis11:rangeType>
             <swe:DataRecord>
                 <swe:field name="singleBand">
                    <swe:Quantity definition="http://www.opengis.net/def/property/OGC/0/Radiance">
                        <swe:description>Panchromatic Channel</swe:description>
                        <swe:uom code="W/cm2"/>
                    </swe:Quantity>
                 </swe:field>
             </swe:DataRecord>
         </cis11:rangeType>
         <ServiceParameters>
             <CoverageSubtype>GridCoverage</CoverageSubtype>
             <nativeFormat>image/tiff</nativeFormat>
         </ServiceParameters>
     </CoverageDescription>
 </CoverageDescriptions>


 

8.3    GetCoverage operation

The GetCoveragerequest is identical to its definition in WCS 2.0: coverages offered can be retrieved. However, more coverage types than in WCS 2.0 can be queried in WCS 2.1, as is detailed in the extended response definition below.

The WCS 2.1 GetCoverageresponse is extended over WCS 2.0 (supporting CIS 1.0 only) to allow CIS 1.1, the Referenceable Grid Coverage extension, and GML 3.3.

Requirement 4                 /req/core/getCoverage-cis11:
The contents of the response to a successful WCS 2.1 GetCoveragerequestshall be a con­crete subtype of either CIS 1.0::AbstractCoverage or CIS 1.1::Abstract­Cov­erage or GMLCOVRGRID 1.0:: Referenceable­Grid­Coverage or a GML 3.3 cov­erage type.
Dependency:http://www.opengis.net/spec/WCS/2.0/conf/core,
http://www.opengis.net/spec/CIS/1.0/conf/coverage, http://www.opengis.net/spec/CIS/1.1/conf/coverage

NOTE       Currently, no translation between coverage types is defined so implementations should not be expected to perform any (although the specification does not exclude it); however, such functionality may be defined in future, e.g., through a bespoke WCS Extension.

8.4    Exceptions

Exceptions are the same as in WCS 2.0.


 

Annex : Conformance Class Abstract Test Suites (Normative)

 

A.1     Conformance Test Class: core

The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/WCS/2.1/conf/core.

Tests identifiers below are relative to http://www.opengis.net/spec/WCS/2.1/.

A.1.1   GetCapabilitieslists CIS 1.1 coverages

Test id:

/conf/core/getCapabilities-cis11

Test Purpose:

Requirement /req/core/getCapabilities-cis11:
The GetCapabilities request of a WCS 2.1 server shall handle CIS 1.0 [OGC 09-146r2] and CIS 1.1 [OGC 09-146r6] coverages identically.
Dependency: http://www.opengis.net/spec/WCS/2.0/conf/core,
http://www.opengis.net/spec/CIS/1.0/conf/coverage, http://www.opengis.net/spec/CIS/1.1/conf/coverage

Test method:

Provide at least one CIS 1.1 coverage on server under test. Send a GetCapabilities request to this server, check that the result lists all CIS 1.1 coverages inserted.

A.1.2   DescribeCoverageresponse structure for CIS 1.1 coverages

Test id:

/conf/core/describeCoverage-cis11

Test Purpose:

Requirement /req/core/describeCoverage-cis11:
The response to a successful DescribeCoverage request on a CIS 1.1 coverage [OGC 09-146r6] shall consist of a CoverageDe­script­ions element as described in Figure 2 and Table 2.

Test method:

Provide at least one CIS 1.1 coverage on the server under test. Send a DescribeCoverage request on these coverages to server under test, check the result con­sists of a structure as describ­ed in the requirement. Test passes if all individual tests pass.

A.1.3   DescribeCoverageresponse without CIS 1.1 partitionSet

Test id:

/conf/core/describeCoverage-cis11-no-nesting

Test Purpose:

Requirement /req/core/no-description-nesting:
The response to a successful DescribeCoverage request on a CIS 1.1 coverage [OGC 09-146r6] which contains a CIS 1.1::PartitionSet shall not contain a CIS 1.1:: PartitionSet and shall contain an envelope.

Test method:

Provide at least one CIS 1.1 coverage on the server under test which contains a partitionSet. Send a DescribeCoverage request on these coverages to server under test. Check that the results fulfil the requirement. Test passes if all individual tests pass.

A.1.4   GetCoverageresponse structure for CIS 1.1 coverages

Test id:

/conf/core/getCoverage-cis11

Test Purpose:

Requirement /req/core/getCoverage-cis11:
The contents of the response to a successful WCS 2.1 GetCoverage request shall be a con­crete subtype of either CIS10::AbstractCoverage or CIS11::Abstract­Coverage.
Dependency: http://www.opengis.net/spec/WCS/2.0/conf/core,
http://www.opengis.net/spec/CIS/1.0/conf/coverage, http://www.opengis.net/spec/CIS/1.1/conf/coverage

Test method:

Provide at least one CIS 1.1 coverage on the server under test. Send a GetCoverage request on these coverages to server under test, executing all WCS Core functionalities: complete download, trimming, slicing, format encoding. Check that the results of these operations are correct as per their specification in WCS 2.0. Test passes if all individual tests pass.

 

– end of ATS –

 


Annex :  Revision history

 

Date Release Author Paragraph modified Description

2016-02-14

2.1.0

Peter Baumann

all

created

2017-11-25

2.1.0

Peter Baumann

several

Implemented change requests from voting

 



[1] www.opengeospatial.org/cite