Approved

OGC Standard

OGC MetOcean Application profile for WCS2.1: Part 0 MetOcean Metadata
Peter Trevelyan Editor Paul Hershberg Editor Steve Olson Editor
Version: 1.0
Additional Formats: XML PDF DOC
OGC Standard

Approved

Document number:15-045r7
Document type:OGC Standard
Document subtype:Implementation
Document stage:Approved
Document language:English

 


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.

None of the Intellectual Property or underlying information or technology may be downloaded or otherwise exported or reexported in violation of U.S. export laws and regulations. In addition, you are responsible for complying with any local laws in your jurisdiction which may impact your right to import, export or use the Intellectual Property, and you represent that you have complied with any regulations or registration procedures required by applicable law to make this license enforceable.

Suggested additions, changes and comments on this standard are welcome and encouraged. Such suggestions may be submitted using the online change request form on OGC web site: http://portal.opengeospatial.org/public_ogc/change_request.php

 



I.  Abstract

This document defines a MetOcean Metadata profile consisting of an information model and an XML encoding for the following three operations:

  1. GetCapabilities - a WCS server describes the services and operations via a GetCapabilities document.

  2. DescribeCoverage - a WCS server describes the contents of a specific coverage via a DescribeCoverage document.

  3. DescribeCoverageCollection — a WCS server describes the contents of a specific coverage collection via a DescribeCoverageCollection document.

Metadata and vocabularies are defined that provide interoperability of these operations and documents using common semantics. The information model proposed supports MetOcean specific concepts, but these may be useful in other communities.

II.  Keywords

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

ogcdoc, OGC document, WCS, coverage, collection, meteorology, oceanography, NWP, analysis, result mask, observation, measurement, simulation, O&M and MetOcean


III.  Preface

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

VI.  Submitters

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

Name Affiliation
Peter Trevelyan Met Office, UK
Paul Hershberg

National Oceanic and Atmospheric Administration (NOAA)

National Weather Service (NWS)

Steve Olson

National Oceanic and Atmospheric Administration (NOAA)

National Weather Service (NWS)

OGC MetOcean Application profile for WCS2.1: Part 0 MetOcean Metadata

1.  Scope

The purpose of this Met Ocean profile of WCS2.1 is to define the metadata returned in the response documents resulting from the WCS2.1 operations: GetCapabilities, and DescribeCoverage; for use within the meteorological and oceanographic communities. It also defines the new operation DescribeCoverageCollection.

This work has been done by members of the OGC MetOcean Domain Working Group.

2.  Conformance

This standard defines:

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

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

a) http://cite.opengeospatial.org/

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

Requirements and conformance test URIs defined in this document are relative to:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/

This document establishes the following requirements and conformance classes:-

covcoll-offering of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/covcoll-offering defining covcoll-offering at a conceptual level in 8.1; the corresponding conformance class is covcoll-offering with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/covcoll-offering . See A.1.

metOcean-observation-specialisation of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/metOcean-observation-specialisation defining the metOcean-observation-specialisation at a conceptual level in clause 9.1; the corresponding conformance class is metOcean-observation-specialisation with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metOcean-observation-specialisation . See A.2.

simulation-process-metadata of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/simulation-process-metadata defining the simulation-process-metadata at a conceptual level in clause 9.2; the corresponding conformance class is simulation-process-metadata http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/simulation-process-metadata . See A.3.

result-mask of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/result-mask defining the result-mask at a conceptual level in clause 9.3; the corresponding conformance class is result-mask http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/result-mask . See A.4.

getCapabilities-metOcean-extension of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-metOcean-extension defining the getCapabilities-metOcean-extension in clause 9.4 the corresponding conformance class http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-metOcean-extension . See A.5.

getCapabilities-coverageSummary of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-coverageSummary defining the getCapabilities-coverageSummary response in clause 9.5 the corresponding conformance class with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageSummary . See A.6.

getCapabilities-coverageCollectionSummary of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-coverageCollectionSummary defining the getCapabilities-coverageCollectionSummary response in clause 9.6 the corresponding conformance class with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageCollectionSummary . See A.7.

getCapabilities-groups of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-groups defining the getCapabilities-groups response in clause 9.7 the corresponding conformance class with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-groups . See A.8.

describeCoverageCollection of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection defining the describeCoverageCollection response in clause 9.8 the corresponding conformance class with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection . See A.9.

describeCoverageCollection-protocol-binding of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-protocol-binding defining the describeCoverageCollection-protocol-binding on the conceptual level in clause 9.9 the corresponding conformance class is offering with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection-protocol-binding . See A.10.

describeCoverageCollection-get-kvp of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-get-kvp defining describeCoverageCollection-get-kvp on the conceptual level in clause 9.10 the corresponding conformance class is offering with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection-get-kvp . See A.11.

describeCoverageCollection-post-xml of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-post-xml defining describeCoverageCollection-post-xml on the conceptual level in clause 9.11 the corresponding conformance class is offering with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection-post-xml . See A.12.

describeCoverageCollection-soap of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-soap defining describeCoverageCollection-soap on the conceptual level in clause 9.12 the corresponding conformance class is offering with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection-soap . See A.13.

metoceanDescribeCoverage of URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverage defining the describeCoverage response in 9.13, the corresponding conformance class with URI http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverage . See A.14.

3.  Normative references

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

Policy SWG: OGC 08-131r3, The Specification Model — Standard for Modular specifications. Open Geospatial Consortium (2009). https://portal.ogc.org/files/?artifact_id=34762&version=2

ISO: ISO/TS 19103:2005, Geographic information — Conceptual schema language. International Organization for Standardization, Geneva (2005). https://www.iso.org/standard/37800.html

ISO: ISO 8601:2004, Data elements and interchange formats — Information interchange — Representation of dates and times. International Organization for Standardization, Geneva (2004). https://www.iso.org/standard/40874.html

ISO: ISO 19107:2019, Geographic information — Spatial schema. International Organization for Standardization, Geneva (2019). https://www.iso.org/standard/66175.html

ISO: ISO 19111:2007, Geographic information — Spatial referencing by coordinates. International Organization for Standardization, Geneva (2007). https://www.iso.org/standard/41126.html

ISO: ISO 19123:2005, Geographic information — Schema for coverage geometry and functions. International Organization for Standardization, Geneva (2005). https://www.iso.org/standard/40121.html

ISO: ISO 19115-1:2014, Geographic information — Metadata — Part 1: Fundamentals. International Organization for Standardization, Geneva (2014). https://www.iso.org/standard/53798.html

ISO: ISO 19156:2011, Geographic information — Observations and measurements. International Organization for Standardization, Geneva (2011). https://www.iso.org/standard/32574.html

ISO: ISO 19136:2007, Geographic information — Geography Markup Language (GML). International Organization for Standardization, Geneva (2007). https://www.iso.org/standard/32554.html

Peter Baumann: OGC 17-089r1, OGC Web Coverage Service (WCS) 2.1 Interface Standard — Core. Open Geospatial Consortium (2018). http://docs.opengeospatial.org/is/17-089r1/17-089r1.html

Marie-Françoise Voidrot-Martinez, Chris Little, Jürgen Seib, Roy Ladner, Adrian Custer, Jeff de La B: OGC 12-111r1, OGC Best Practice for using Web Map Services (WMS) with Time-Dependent or Elevation-Dependent Data. Open Geospatial Consortium (2014). https://portal.ogc.org/files/?artifact_id=56394

Simon Cox: OGC 10-025r1, Observations and Measurements — XML Implementation. Open Geospatial Consortium (2011). https://portal.ogc.org/files/?artifact_id=41510

Alexandre Robin: OGC 08-094r1, OGC® SWE Common Data Model Encoding Standard. Open Geospatial Consortium (2011). https://portal.ogc.org/files/?artifact_id=41157

Peter Baumann, Eric Hirschorn, Joan Masó: OGC 09-146r8, OGC Coverage Implementation Schema with Corrigendum. Open Geospatial Consortium (2019). http://docs.opengeospatial.org/is/09-146r8/09-146r8.html

Arliss Whiteside Jim Greenwood : OGC 06-121r9, OGC Web Service Common Implementation Specification. Open Geospatial Consortium (2010). https://portal.ogc.org/files/?artifact_id=38867

UCUM: Unified Code for Units of Measure (UCUM) – Version 1.9, 2013, http://unitsofmeasure.org/

OMG UML 2.5.1, Unified Modeling Language. (2017). https://www.omg.org/spec/UML/2.5.1/

W3C: Extensible Mark-up Language (XML) – Version 1.0 (Fifth Edition), August 2008

W3C: XML Schema – Version 1.0 (Second Edition), October 2004

4.  Terms and definitions

For the purposes of this document, the following terms and definitions apply.

This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], 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.

This document also uses terms defined in the OGC Standard for Modular specifications (OGC 08-131r3), also known as the ‘ModSpec’. The definitions of terms such as standard, specification, requirement, and conformance test are provided in the ModSpec.

For the purposes of this document, the following additional terms and definitions apply. There is some variation in the specific use of some technical terms within the meteorological domain. We have attempted to follow common usage, referring where possible to the WMO No.306 http://www.wmo.int/pages/prog/www/WMOCodes.

4.1. 

numerical weather prediction model

A mathematical model of the atmosphere and oceans used to predict the weather based on current weather conditions and are normally run at set times each day.

Synonyms: forecast model, NWP Model, simulation

EXAMPLE The ECMWF model that runs twice per day and creates a ten day prediction of the global atmosphere.

4.2. 

reference time

A temporal parameter used to represent a time axis that can be mapped to some relevant referent time other than validity time. The semantic meaning can differ for different types of data. For numerical weather forecasts it may be a nominal time where observations have been assimilated to initialize the calculation. This will be expressed by using the om:parameter element.

Synonym: model run time.

Note 1 to entry: “reference time” will used in preference to “model run time” as it is more generic and includes services that may be continually updated.

4.3. 

validity time

An attribute value specified by an instant in, or duration of, universal chronological time that identifies when information is valid or applicable. In [ISO 19156], the validity time has the semantics of phenomenonTime. Deciding if the data have a ‘validity time’ is an important step.

Synonym: verification time.

Note 1 to entry: Forecast models running with different reference times will have, for some fields, the same verification time if the durations of the different model runs overlap.

4.4. 

Result Mask

Provides the means to indicate for a set of elevations and times the availability of specific parameters for a given output dataset. See Section 7.6 and Figure 5. This mechanism is important as it allows the 2D coverages to be stacked together in time and elevation to form a 4D coverage even though some of the coverages have gaps.

Note 1 to entry: A data mask is described using a “cis:GeneralGridCoverage”.

4.5. 

GRIB

A WMO (World Meteorological Organisation) format for gridded binary data exchanged between member countries, including a controlled vocabulary defined in tables.

4.6. 

Web Coverage Service 2.1 (WCS2.1)

An OGC standard that refers to the exchange of geospatial information as ‘coverages’: digital geospatial information representing space-varying phenomena.

4.7. 

GetCapabilities

A WCS server request for a list of what operations and services (“capabilities”) are being offered by that server.

4.8. 

DescribeCoverage

A WCS server request for additional information about a coverage that a client wants to query. It returns information about the coordinate reference system (CRS), the metadata, the domain, the range and the formats available. A client generally will need to issue a DescribeCoverage request before it can make the proper GetCoverage request.

4.9. 

DescribeCoverageCollection

A WCS server request, newly defined in this document, for additional information about a CoverageCollection that a client wants to query. It returns information about the metadata and the domain, including, principally, a listing of the coverages that constitute the collection.

4.10. 

Groups

The MetOcean Profile introduces the term Groups as a way of structuring the GetCapabilities response to provide a hierarchical way of nesting “services”. The nesting reflects the architecture/organisation of the various services. This has the advantage of the client being able to connect to different service end points without having to know beforehand their respective addresses.

5.  Conventions

This sections provides details and examples for any conventions used in the document.

5.1.  Abbreviated terms

GML Geography Mark-up Language

O&M Observations and Measurements

OGC Open Geospatial Consortium

MetOcean Meteorological/Oceanographic

NWP Numerical Weather Prediction

SWE OGC Sensor Web Enablement

UML Unified Modelling Language

WCS2.1 OGC Web Coverage Service version 2.1

WMO World Meteorological Organisation

XML W3C Extensible Markup Language

XSD W3C XML Schema Definition Language

5.2.  Schema language

The XML implementation specified in this standard is described using the XML Schema language (XSD) [XML Schema Part 1: Structures, XML Schema Part 2: Datatypes] and Schematron [ISO/IEC 19757-3, Information technology — Document Schema Definition Languages (DSDL) — Part 3: Rule-based validation — Schematron].

5.3.  UML notation

The diagrams that appear in this standard are presented using the Unified Modeling Language (UML) static structure diagram.

Note: Within the context of this standard, the following color scheme is used to identify the package where the class exists. This is just for informative purposes.

Blue: CIS (Coverage Implementation Schema 1.1)

Orange: ISO19156 – Observations & Measurements

Green: This standard

Tan: WCS2.1

6.  Vocabularies

This standard defines a number of properties that require the use of codes or vocabulary items. In some cases a list of terms is provided. Where no codes are provided, (the link to the WMO registry is in italics), it is expected that a list will be developed in the future, or a local code list may be used. A summary of the vocabularies is shown in Table 1. The WMO is responsible for managing the content of these vocabularies. Once agreement is reached for definitions, the MetOcean DWG will submit updates to the OGC Naming Authority. In the future the vocabularies may be extended to other disciplines, e.g. climate community. These communities have their own conventions e.g CF (climate forecasting see http://cfconventions.org/)

(as used in the DescribeCoverage response)

Table 1 — Summary of vocabularies within this standard

Code list Package(s) Code items defined
disciplineCode SimulationProcessMetadata Yes
typeOfDataCode SimulationProcessMetadata Yes
significanceOfReferenceTimeCode SimulationProcessMetadata Yes
originatingCentreCode SimulationProcessMetadata Yes
productionStatusCode SimulationProcessMetadata Yes
typeOfCalendarCode SimulationProcessMetadata Yes
fixedSurfaceTypesAndUnitsCode SimulationProcessMetadata Yes

7.  Non-Normative (Informative) Material

The MetOcean Application Profile for WCS2.1 is an initiative of the MetOcean DWG to develop international standards and address interoperability of meteorological and oceanographic information systems.

What’s driving the work is the need to transfer increasing amounts of data across networks. This can be done more efficiently by sub-setting the data on the server side and transferring the relevant data to the client. The obvious candidate for addressing this increased data dissemination need is the OGC’s WCS2.1 and it is therefore logical to extend this standard to customise MetOcean specific metadata. In addition, the advent of the CIS1.1 (Coverage Implementation Schema) has made this much easier through the use of axis specific definitions.

7.1.  WCS2.1

The WCS2.1 specification (see OGC 17-089r1) forms the core Web Coverage Service standard and the extensions (see below). The core standard describes the key operations GetCapabilities, DescribeCoverage and GetCoverage. One of the shortcomings of the prior version WCS2.0 is the metadata aspects. The metadata (other than basic WCS) needs to be community specific and is added by using the wcs:Extension element. Currently, the only profile is for the Earth Observing community.

WCS Core Extensions

The main benefit of WCS2.1 is that it allows the description of a CIS 1.1 Coverage (see Figure 1 and Figure 3). This is important as CIS 1.1 supports multi-dimensional coverages and therefore supports the MetOcean profile.

image

Figure 1 — WCS CoverageDescriptions UML class diagram

7.2.  Key Concepts

7.2.1.  A Short NWP (Numerical Weather Prediction) Primer

The term “NWP model” refers to a computer simulation used to forecast the future state of the ocean/atmosphere. A NWP model is normally “run” at a set time and repeated at regular intervals during the day; the nominal “start” time is known (amongst the MetOcean community), as the “model run time” i.e. a notional starting point. All forecast times for a specific model run are therefore relative to this “reference” time. It is important to note that the term “reference time” will be used in preference to “model run time” as it is more generic and includes services that may be continually updated.

7.2.2.  Post processing

It is becoming increasingly common for raw NWP model output to be “post processed” using a number of techniques ranging from the application of statistical methods based on past model behaviour to adjustments made using ensemble forecasts. As we move away from simple deterministic models i.e. raw model output, the notion of reference time becomes less useful and terms such as “simulated forecast” become more meaningful.

7.3.  Coverages

The WCS core defines a coverage as a digital representation of some “space-time varying phenomenon”. Coverages contain a “DomainSet” component describing the coverage’s domain (i.e. the locations for which values are stored in the coverage) and a “Range­Set” component containing the values of the coverage. In addition, a “coverage” also contains a “RangeType” element that describes the coverage’s RangeSet data structure that consists of one or more fields (also referred to as parameters) that uses the SWE Common [OGC 08-094] Data­Record. The metadata component represents an extensible slot for metadata.

7.3.1.  4D Coverages

A typical NWP forecast simulation may be expressed as a set of 2D coverages, often, but not always based on rectified grids. A typical model run contains thousands of 2D coverages and the metadata returned by the GetCapabilites response therefore soon becomes unmanageable. The problem can be simplified by identifying, where possible, “4D Coverages” from many 2D coverages, as shown in Figure 2.

image

Figure 2 — Diagram denoting the visualization of a stack of 2D coverages as one true 4D coverage object

7.3.2.  CIS1.1 Dependency

This simplification of identifying a 4D coverage from many 2D coverages has been made much easier by using the OGC’s Coverage Implementation Schema (CIS1.1) OGC 09-146r5, which is shown in Figure 3. CIS1.1 is a core component of WCS2.1

image

Figure 3 — UML Diagram representing the coverage model (CIS1.1).

A typical NWP forecast simulation also has a number of different vertical coordinates: for example, pressure, height above mean sea level, height above ground, surface, max wind level, etc. As long as the 2D coverages all share one of these vertical coordinates, and the same horizontal and temporal domains, a 4D coverage can be identified from the many 2D coverages. This transformation of a stack of 2D coverages to one 4D coverage can be challaging as vertical and temporal axes are not regular and need to be specifically described; but it is the “GeneralGridCoverage”, as described by the OGC’s CIS1.1 (also shown in

Figure 3 – UML Diagram representing the coverage model (CIS1.1).), that makes this irregular axis labelling and enumeration possible.

Since this key concept, afforded by CIS1.1, changes the traditional view that coverage data is a set of 2D fields (each with a level, level type, parameter name and forecast period), we can now describe the whole atmosphere (ocean) as a multidimensional 4D cube that contains parameters, e.g. temperature, wind, humidity (salinity), etc. Coverages are no longer labelled as parameters (such as temperature or salinity), but instead are defined by (axis) dimensions that can contain one of more of these meteorological/oceanographic parameters.

The 2D to 4D transformation results in a reduction in the number of coverage identifiers, thus reducing complexity. This reduces 1) the number of data coverage queries necessary because the number of coverages is reduced (for WCS2.1 this equates to fewer GetCoverage operations) and 2) the amount of metadata returned in a GetCapabilities response document. The effect on both the GetCoverage requests and GetCapabilities responses for 2D vs 4D coverages was undertaken and can be accessed via the following link: https://sats.nws.noaa.gov/~WGDS/powerPointPresentations/Effect_of_4D_coverages_vs_2D_coverages.pptx.

Note, there are special cases where the vertical axis has no vertical dependency, e.g. surface, max wind level, but still needs to be specified in order for it to be named. It is also the case that some parameters will belong to more than one coverage, e.g. surface, isobaric, etc.

7.4.  Groups and Collections

7.4.1.  Groups

Meteorological and oceanographic data are by nature hierarchical and the ability to group entities together is important. Thus, a set of simulations may be clustered together to form a logical group. The MetOcean Profile introduces the term Groups as a way of structuring the GetCapabilities response to provide a hierarchical way of nesting “services”. Groups simply allow for the organization of data, and, if required, have service endpoints also known as serviceInstances. There is nothing geospatial about Groups. The main benefit of Groups is in creating a structure that reflects the organization of the intended use of data, rather than its underlying structure. Figure 4 depicts a top level Group as “US Models” with two subsequent Groups as the “GFS” and “HRRR” NWP models. The MetOcean Profile supports an organized response from a GetCapabilities request by utilizing Groups.

hiarchy-2.pptx.jpg

Figure 4 — An example of a set of groups and coverage collections

7.4.2.  CoverageCollections

A CoverageCollection is a useful mechanism for grouping together coverages into a collection, very similar to a feature collection. This mechanism for grouping coverages is particularly relevant to a NWP output as this by nature is a collection of coverages which are related by their horizontal and temporal footprint.

Each CoverageCollection is a single, uniquely identified resource identifying the member coverages. Each coverage within a CoverageCollection shares characteristics such as provenance and the horizontal and temporat CRS’s. Use of CoverageCollection resources makes it simpler to refer to an aggregate set of coverage resources (using the identifier), and common metadata may be attributed to the CoverageCollection resource itself. The CoverageCollection identifier may have a semantically meaningful name such as GFS_Global_2015-05-15T00.00.00Z; synonymous with a specific “model run” or simulation (Figure 4 also denotes a CoverageCollection as a specific model at a specific run time, e.g. “GFS 00Z Run”).

There is also an additional benefit of CoverageCollections: a WCS server is able to suppress information about individual coverages in its GetCapabilities response. Thus, the XML document provided by the WCS end-point that supports the CoverageCollection is significantly smaller and easier to parse. This results in mitigating challenges arising from working with very large XML documents. In such situations, a client application may gather information about the CoverageCollection resources from a WCS server using the new “DescribeCoverageCollection” service. All coverages contained in the collection are returned in a DescribeCoverageCollection response. A user can then request information for each member coverage in the DescribeCoverage request.

Again, this reiterates how the new MetOcean Application Profile’s higher dimensional concepts of Groups and CoverageCollections help to reduce the size of GetCapabilities response documents that was first described in Section 7.3.2.

7.5.  Time Dependant data (from WMS Best Practice OGC document:12-111r1)

Complex data sets can have temporal dependencies of many kinds. This document adopts the phrase ‘validity time’ that is essentially identical to the concept of ‘phenomenonTime’ from the standard ISO 19156:2011, Geographic Information — Observations and Measurements, which refers to the applicability of the data using the chronological Gregorian calendar.

Frequently, data are additionally temporally dependent relative to some reference time instant. For example, observations may have an accession time into a data repository. Furthermore, numerical weather forecasts may have a nominal time where observations have been assimilated to initialize the calculation. Finally, watches, warnings, and advisory alerts may have a time when they are issued or published.

The diversity of such references precludes defining a dimension type with explicit semantics though the need for a mechanism to distinguish data based on some temporal referent is widely shared. The definition of a generic dimension called referenceTimeAxis, may be used for such occasions and is supported in this profile.

This WCS2.1 standard uses a combination of time stamp, a list of time stamps, or a start_time/end_time/time_interval to enumerate time. The semantics of this string representation of a time stamp is built from the time components and specific separators. A full string representation has the following format:

“YYYY-MM-DDThh:mm:ss.SSSZ”

Where:

  • YYYY indicates a 4-digit year

  • MM indicates a month

  • DD indicates a day of a month

  • T is the separator between the date part and the time part

  • hh indicates an hour

  • mm indicates a minute

  • ss indicates a second

  • SSS indicates a millisecond

  • Z is the time zone designator for the zero UTC offset

The precision of a time stamp t is determined by the last time component. Time stamps may be associated with a time zone. If no time zone is specified with a time stamp t, then t is assumed to be in local time.

A time interval is a triple tmin/tmax/r where tmin and tmax are time stamps that define the lower and upper bounds of the interval and r is the resolution. The interval contains all time stamps tmin + i * r, i >= 0, that are lower or equal than tmax. A resolution r is represented by the format P [n1Y] [n2M] [n3D] [T [n4H] [n5M] [n6S]] where:

  • P is a starting character.

  • Y is the year designator that follows the value n1 for the number of years.

  • M is the month designator that follows the value n2 for the number of months.

  • D is the day designator that follows the value n3 for the number of days.

  • T is the time designator that precedes the time components of the representation.

  • H is the hour designator that follows the value n4 for the number of hours.

  • M is the minute designator that follows the value n5 for the number of minutes.

    Some Examples:

1- A Time stamp

2015-05-15T00:00:00Z

2- A list of time stamps

2015-05-15T00:00:00Z, 2015-05-15T06:00:00Z, etc.

3- A start and end time

2015-05-15T00:00:00Z/2015-05-17T12:00:00Z

4- Example of a start time/end time/interval

2015-05-15T00:00:00Z/2015-05-17T00:00:00Z/PT12H

Example of a list of durations: (Note a reference time is specified using om:phenomenonTime) PT0H, PT6H, PT12H. Thus PT12H denotes a time duration of 12 hours relative to the reference time.

Where no reference time is specified, but the times are relative to a starting and end point, then a recurring time interval can be used:

2015-05-15T00:00:00Z/2015-05-17T00:00:00Z/PT12H

Where no reference time is specified, a set of time stamps may be used, e.g. 2015-05-15T00:00:00Z, 2015-05-15T12:00:00Z, 2015-05-15T18:00:00Z (Note, where times are irregular then the form start/end/interval is not appropriate.)

7.6.  Result Mask

A result mask is used to depict the quality of data. The O&M model supports a result quality property (om:resultQuality) which is key in supporting a ResultMask, which would then allow a value to reflect the result quality for a given parameter (data values), level, and forecast period (Figure 5). In Figure 5, a blue symbol indicates missing data.

image

Figure 5 — Result Mask Diagram representing the irregularity of the time and vertical axes and the sparsity of the output in the coverage model

The ResultMask has a “GeneralGridCoverage” property as described by CIS1.1. Using a GeneralGridCoverage type allows for each axis of the coverage to be described using an irregular axis (i.e. cis:irregularAxis, which allows for enumeration) or a regular axis (i.e. cis:regularAxis, with start, end, and interval).

The vertical CRS is assigned by reference (see http://codes.wmo.int/grib2/codeflag/4.5) and the units of measure are specified in the WMO GRIB2 table 4.5. The “RangeSet” part of the coverage is a tuple list used to define quality value.

7.6.1.  CoverageSummary

Defines the summary of the coverages listed in the GetCapabilities response. This includes summary information for each coverage contained in each member (e.g. model run) of the simulation.

7.7.  MetOcean Profile and GetCapabilities

The MetOcean Application Profile modifies the GetCapabilities function to support three distinctive patterns, each having its own conformance class. These three patterns are based on the way the GetCapabilities response is configured, i.e. Groups, CoverageCollections or Coverage Summaries. These are illustrated in Figure 10, Figure 11, Figure 12, and Figure 13.

As stated in Section 7.4.1, the use of groups allows for a very flexible hierarchical approach, and, it is conceivable that each group may have separate “serviceInstances”. The net result is that groups support a service orientated architecture. It should be pointed out that these “end points” do not need to point to specific MetOcean services (e.g. a digital elevation model). Section 9.4 and Section 9.5 will provide examples to illustrate the supported patterns.

7.8.  The basic Observation type

The major elements of the model are indicated in bold and modelled through associations in the UML model. In addition, an observation has the following attributes and associations:

  • phenomenonTime (mandatory): The attribute phenomenonTime:TM_Object shall describe the time that the result applies to the property of the feature-of-interest. This is often the time of interaction by a sampling procedure or observation procedure with a real-world feature. In the case of a simulation this may be interpreted as a validity period denoting the time period for which the data is valid.

  • resultQuality (optional): the quality of the result

  • resultTime (mandatory): the time when the result becomes available (e.g. if postprocessing or laboratory analysis is required, it might be different to the phenomenonTime)

  • validTime (optional): the time period during which the result is intended to be used e.g. for a meteorological forecast then it is intended to denote the time period for which the forecast may be used.

  • relatedObservation (optional): related observations providing important context for understanding the result

  • metadata (optional): descriptive metadata

  • featureOfInterest (mandatory): The association Domain links the OM_Observation to the GFI_Feature that is the subject of the observation and carries the observed property. This feature has the role featureOfInterest with respect to the observation.

  • observedProperty (mandatory): The association Phenomenon links the OM_Observation to the GFI_PropertyType for which the OM_Observation: result provides an estimate of its value. The property type has the role observedProperty with respect to the observation.

  • result: The association Range links the OM_Observation to the value generated by the procedure. The value has the role result with respect to the observation.

  • procedure: The association ProcessUsed links the OM_Observation to the OM_Process used to generate the result. The process has the role procedure with respect to the observation.

  • parameter: if present, the attributes parameter:NamedValue shall describe an arbitrary event-specific parameter, in this case the reference time of the simulation.

7.9.  MetOcean Observation metadata mapping to the Observations and Measurements model

To represent MetOcean metadata in a DescribeCoverage response, this profile extends the Observations and Measurements properties with MetOcean specific information. The relationship of MetOceanObservation to the O&M model is shown in Figure 7, Figure 8, Section 9.1, and Table 4. The adaptation, in places, uses specialisation particularly with respect to the basic Observation Type. In the examples the object MetOceanObservation is an abstract type and has to be substituted by a concrete object of type ObservationType.

There are benefits of organizing MetOcean metadata in line with the O&M model in a DescribeCoverage Response. By utilizing the O&M model’s ability to link to WMO registers there is support for a controlled vocabulary, facilitating interoperability and extensibility. Secondly, the O&M model supports links for references. Thus, the metadata is not tied to a specific data format, i.e. GRIB2. Thirdly, the O&M model supports the use of supports the use of common Atmopheric/Oceanic vertical reference systems. And finally, as described in Section 7.6, the O&M model provides a mechanism for quality control using a data Result Mask.

8.  CoverageCollection data model

8.1.  Requirements Class covcoll-offering

This requirements class specifies the underlying data model used to describe CoverageCollection resources and their relationship with the coverage resources themselves. These optional resources are part of the GetCapabilities response.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/covcoll-offering
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/CIS/1.1/conf/coverage
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents

Requirement 1

/req/covcoll_offering/minimum-axis-envelope

The cis:Envelope property, shall contain at a minimum, a horizontal bounding limit. Note the cis:Envelope element may be used to provide the bounding box in as many dimensions as is appropriate.

Requirement 2

/req/covcoll_offering/envelope-shared-axes

The OfferedCoverageCollection cis:Envelope property shall only have those axes (as listed by the cis:axisLabels) that are shared by the Offered Coverages. Thus any axis that is unique to one of the constituent coverages would not be referenced by the CoverageCollection property cis:Envelope.

Requirement 3

/req/covcoll_offering/coverages-axis-bounds

All axes shared by the component coverages shall have the same axisExtent.

Requirement 4

/req/covcoll_offering/coverageCollection-unique-identifier

Each CoverageCollection resource offered by a WCS server implementing this extension shall specify an identifier that is unique within the scope of that WCS server through their coverageCollectionId identifier.

8.2.  Requirement class overview

A WCS server implementing this extension offers a – possibly empty – set of CoverageCollection resources.

image

Figure 6 — Relationship of CoverageCollection resources with CoverageOffer

8.2.1.  CoverageOfferings

The new class CoverageOfferings extends wcs:CoverageOfferings, established in WCS core (OGC 17-089r1) by adding an additional content OfferedCoverageCollection, defined in Table 2 and shown in Figure 6.

Table 2 — METOCEAN::CoverageOfferings components

Name Definition Data type Multiplicity
wcs::offeredCoverageSet of coverages offered by this servicewcs::OfferedCoveragezero or more (optional)
wcs::serviceMetadataInformation specific to the WCS service as a wholewcs::ServiceMetadataone (mandatory)
offeredCoverageCollectionSet of CoverageCollection resources offered by this serviceOfferedCoverageCollectionzero or more (optional)

8.2.2.  OfferedCoverageCollection

An OfferedCoverageCollection, as specified in Table 3, contains a single CoverageCollection resource.

Table 3 — COVCOLL::OfferedCoverageCollection components

Name Definition Data type Multiplicity
covcoll:coverageCollectionIdIdentifier of a CoverageCollection offered by this serviceNCNameone
(mandatory)
cis:EnvelopeThe envelope around a coverage is defined by the lower and upper bound of each axis, respectively; an asterisk “*” in lower/upper bound denotes a null value.cis:AxisExtentone (mandatory)
wcs:offeredCoverageCoverages offered within this CoverageCollectionWCS::OfferedCoveragezero or more (optional)

9.  MetOcean Application Profile UML & Requirements (normative)

9.1.  Requirements class: metOcean-observation-specialisation

This requirements class describes the metocean observation class that provides the link to the Observations and Measurements standard.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/metOcean-observation-specialisation
Dependency http://www.opengis.net/spec/OMXML/2.0/req/observation

Requirement 5

/req/metOcean-observation-specialisation/structure

A metocean: MetOceanObservation instance shall conform to Figure 7, Table 4, Table 5, and Table 6

Requirement 6

/req/metOcean-observation-specialisation/observed-property

The observed property of the OM_Observation type shall link the WMO code definitions of as GRIB2 table 0.0 “Discipline” e.g. for meteorology http://codes.wmo.int/grib2/codeflag/0.0/_0

Requirement 7

/req/metOcean-observation-specialisation/result-quality

If the MetOceanObservation contains the optional resultQuality property (from OM_Observation) then that element shall reference the ResultMask by substitution with AbstractDQ_Element.

Requirement 8

/req/metOcean-observation-specialisation/feature-of-interest

The ‘featureOfInterest’ property of the MetOceanObservation element shall reference a SimulationProcessDescription element that is an instance of SF_SpatialSamplingPoint (from ISO 19156:2011 Spatial Sampling Features).

Requirement 9

/req/metOcean-observation-specialisation/reference-time

If present the om:NamedValue element shall be used to express the value of the “referenceTime” using the child elements om:name and om:value

Requirement 10

/req/metOcean-observation-specialisation/referenceTime-value

If present the value of om:value shall conform to section 7.5

Requirement 11

/req/metOcean-observation-specialisation/referenceTime-name

The attribute gml_id of om:name shall have the value of “referenceTime”

Requirement 12

/req/metOcean-observation-specialisation/phenomenon-time

The om:phenomenonTime element value shall conform to section 7.5

Requirement 13

/req/ metOcean-observation-specialisation/valid-time

An attribute value shall specify an instant in, or duration of, universal chronological time that identifies when information is valid or applicable by referencing gml:TimePeriod

Requirement 14

/req/metOcean-observation-specialisation/observation-type

A specialized observation (e.g. NWPObservation) shall be derived from OM_Observation through the abstract type MetOceanObservation

Requirement 15

/req/metOcean-observation-specialisation-procedure

The om:procedure element shall contain an instance of “SimulationProcessMetadata”

image

Figure 7 — MetOceanObservationSpecialisation UML class diagram

9.1.1.  Requirements class overview

The MetOceanObservation requirements class defines how metadata appropriate to the MetOcean community will be expressed as part of the responses to a WCS2.1 DescribeCoverage request.

9.1.2.  MetOceanObservation

MetOcean observations are defined as a specialised type OM_Observation from ISO19156 (as previously denoted in Section 7.9), with the following qualifications:

  • The feature of interest is the entity about which the observation is made and forecasts clearly relate to the real world. For example, we may provide a weather forecast for the North Atlantic European area with the express intention of sampling the grid to provide a forecast for a specific location and time such as a town or airport. Thus the sampling regime is a proxy for the real entity of interest and the Observations and Measurements model provides a conceptual model linking to these two concepts i.e. SamplingFeatures. The sampling feature is related to the real world via the property <sam:sampledFeature> (and further specialisations are provided by the addition of the shape property via SF_SpatialSamplingFeature and sub-types thereof). For NWP models the most obvious real-world-entity is the domain over which the simulation was carried out by using the shape property.

  • The observedProperty references WMO GRIB2 code tables that list, by “Product Discipline” ref http://codes.wmo.int/grib2/codeflag/0.0; the list of disciplines defines the domain of the environment being measured.

  • The procedure references the metadata that describes the procedure that was used by the simulation process. This is described in a separate conformance class. Note that this is done by reference and although in this document these point to the WMO GRIB2 code tables, other controlled vocabularies could be used.

  • The resultQuality will point to the result mask used to indicate if a parameter is available at a particular time/level.

  • The validTime is the time period that spans the first and last validity times of the forecast.

Table 4 — METOCEAN::MetOceanObservation properties

Name Definition Data types and values Multiplicity
om:phenomenonTimeThis parameter is used indicate the time period for which the simulation is validTM_Object

One

(mandatory)

om:resultTimeissue time (e.g. result time) i.e. the time when the entire NWP model output was publishedTM_Instant

One

(mandatory)

om:validTimeThe time period denoting the whole time range for which the forecast is relevant.

TM_Period

(Note the reference time as defined in http://codes.wmo.int/grib2/codeflag/1.2)

zero or one

(optional)

om:procedureThe procedure used in making the observation. A specialised type is provided to detail important aspects of the observation procedure. The key aspects are captured here to provide useful metadata for result interpretation.metce:Process

One

(mandatory) (optional as om:procedure is nillable)

om:resultQualityA reference to a pertaining TimeHeight mask is stored, together with the name of the physical parameter to which it relates. A Time-Height Mask is of a cis:GeneralGridCoverage Type, typically with height/time axes. Such a mask may be used to indicate areas where all range values, across the whole horizontal extent, contain only nil values. This serves to denote to applications to which regions contain “interesting” (i.e., non-nil) values. The range values of the mask could also be used to indicate quality.ResultMask

zero or one

(optional)

om:featureOfInterestThe feature of interest is the entity about which the observation is made. It may be used describe the computer simulation used to create a forecast.SimulationProcessDomain.

One

(mandatory) (optional as om:procedure is nillable)

om:observedPropertyThe OM_Observation model allows only a single instance of <om:observedProperty>. In the case of the computer simulations, many individual physical properties may be measured that are associated with a particular environmental domain, e.g. Meteorological Products, Hydrological Products, Space Products, Oceanographic Products, etc. These domains are defined in the WMO GRIB2 code table “Product Discipline” ref http://codes.wmo.int/grib2/codeflag/0.0.

ObservedProperties

(See http://codes.wmo.int/grib2/codeflag/0.0)

One

(mandatory) (optional as om:procedure is nillable)

om:parameterThis is used to denote the simulation reference time by use of xsi:type=”gml:TimeInstantTypeom:NamedValue

zero or one

(optional)

9.1.3.  metocean::ObservedProperties

The properties relating to a NWP model as used in weather, climate and ocean forecast models.

Table 5 — METOCEAN::ObservedProperties

Name Definition Data types and values Multiplicity
observedParametersThe code used to indicate the discipline, i.e. meteorology, oceanography, space etc. (this will reference WMO GRIB2 table 0.0)DisciplineCode (see Table 11)

One

(mandatory)

9.1.4.  SimulationProcessDomain

The SimulationProcessDomain.

Table 6 — METOCEAN::SimulationProcessDomain Properties

Name Definition Data types and values Multiplicity
sams:shapeSimulationProcessDescription that specializes SF_SpatialSamplingPoint using the “shape” element to reference metocean:Footprint.Footprint

zero or one

(optional)

9.1.5.  metocean::Footprint

A description of the horizontal domain of the Simulation.

Table 7 — METOCEAN::Footprint

Name Definition Data types and values Multiplicity
horizontalDomainThe horizontal domain (or its projection) on the ground i.e. the footprint of the simulationgml:Polygon

One

(mandatory)

9.1.6.  metce:MeasurementContext

A description of the horizontal domain of the Simulation.

Table 8 — METCE::Process

Name Definition Data types and values Multiplicity
metce:contextThe horizontal domain (or its projection) on the ground i.e. the footprint of the simulationSimulationProcessMetadata

zero or one

(optional)

9.1.7.  NamedValue

A description of the horizontal domain of the Simulation.

Table 9 — OM::NamedValue

Name Definition Data types and values Multiplicity
om:name

This references the table:

Reference Time (reference WMO GRIB2 table 1.2)

gml:ReferenceType

One

(mandatory)

om:valuethe om:value shall refer to a “string” with the value “referenceTime”The om:value shall be of xsi:type=gml:TimeInstantType

One

(mandatory)

9.2.  Requirements class: simulation-process-metadata

This requirements class describes the process by which the simulation was performed.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/simulation-process-metadata
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/metOcean-observation-specialisation
Dependency http://www.opengis.net/spec/OMXML/2.0/req/observation

Requirement 16

/req/simulation-process-metadata/structure

A metocean:SimulationProcessDescription instance shall conform to Figure 8, Table 6, Table 10, Table 11, Table 12, Table 13, Table 14, Table 15 and the XML schema being part of this standard.

Requirement 17

/req/simulation-process-metadata/metadata

SimulationProcessMetadata shall have a set of properties each using gml:reference to link to the relevant controlled registers e.g. WMO.

Requirement 18

/req/simulation-process-metadata/fixedSurfaceType

If the fixed surface type has no vertical dependency (e.g. Ground, Max Wind Level) then the cis:regularAxis element shall be used with the lowerBound and upperBound attributes set to the value of 1 and the resolution set to 0.

Requirement 19

/req/simulation-process-metadata/footprint

The shape property of the sampledFeature shall contain the component Footprint that will define the horizontal domain of the simulation model.

image

Figure 8 — MetOceanObservationSpecialisation UML class diagram

9.2.1.  Requirements class overview

Simulations of weather, climate and ocean forecasts are made using mathematical models based on principles that are used to generate either short-term weather forecasts or longer-term climate predictions and as such have many properties that describe the spatial/temporal domain of the model and these are expressed using the simulation process description. Figure 8 contains the elements that are specialised for this profile that are referenced by the O&M model.

9.2.2.  SimulationProcessMetadata

The metadata for the computer simulation. Note that other tables may be used, but will have to be defined. As yet no other controlled vocabularies, that are accessible via register, have been created.

Table 10 — METOCEAN::SimulationProcessMetadata Properties

Name Definition Data types and values Multiplicity
disciplineThis table is used to indicate the discipline of the processed data contained within a specified Coverage. (this will reference WMO GRIB2 table 0.0)DisciplineCode

zero or one

(optional)

typeOfDataA code to indicate the kind of NWP product, e.g. analysis, forecast, analysis and forecast etc.(this will reference WMO GRIB2 table 1.4)TypeOfDataCode

zero or one

(optional)

significanceOfReferenceTimeDefines the meaning of “Reference Time (reference WMO GRIB2 table 1.2)SignificanceOfReferenceTimeCode

zero or one

(optional)

originatingCentreNational and international originating Centre’s
(this will reference WMO GRIB2 table 0)
OriginatingCentreCode

zero or one

(optional)

productionStatusOfDataThe code used to indicate the production status, e.g. operational, research etc. (this will reference WMO GRIB2 table 1.3)ProductionStatusOfDataCode

zero or one

(optional)

typeOfCalendarThe code used to indicate the type of calendar being used e.g. Gregorian, 360 day (often used by climate models), (this will reference WMO GRIB2 table 1.6)TypeOfCalendarCode

zero or one

(optional)

fixedSurfaceTypesAndUnitsThe code is used to indicate the surface type (cf vertical CRS) and the associated units. (this will reference WMO GRIB2 table 4.5)FixedSurfaceTypesAndUnitsCode

zero or one

(optional)

9.2.3.  DisciplineCode

A type capturing the relevant scientific discipline.

Table 11 — METOCEAN::DisciplineCode code items

Code item Definition URL
Meteorological ProductsMeteorological products http://codes.wmo.int/grib2/codeflag/0.0/_1
Hydrological ProductsHydrological Products http://codes.wmo.int/grib2/codeflag/0.0/_1
Land Surface ProductsLand Surface Products http://codes.wmo.int/grib2/codeflag/0.0/_2
Space productsSpace products http://codes.wmo.int/grib2/codeflag/0.0/_3
Oceanographic productsOceanographic products http://codes.wmo.int/grib2/codeflag/0.0/_10

9.2.4.  TypeOfDataCode

A type code capturing the type of products.

Table 12 — METOCEAN::TypeOfDataCode code items

Code item Definition URL
Analysis ProductsAnalysis Products http://codes.wmo.int/grib2/codeflag/1.4
Forecast ProductsForecast Products http://codes.wmo.int/grib2/codeflag/1.4
Analysis and Forecast ProductsAnalysis and Forecast Products http://codes.wmo.int/grib2/codeflag/1.4
Control Forecast ProductsControl Forecast Products http://codes.wmo.int/grib2/codeflag/1.4
Perturbed Forecast ProductsPerturbed Forecast Products http://codes.wmo.int/grib2/codeflag/1.4
Control and Perturbed Forecast ProductsControl and Perturbed Forecast Products http://codes.wmo.int/grib2/codeflag/1.4
Processed Satellite ObservationsProcessed Satellite Observations http://codes.wmo.int/grib2/codeflag/1.4

9.2.5.  SignificanceOfReferenceTimeCode

A type code capturing the significance of the referenceTime.

Table 13 — METOCEAN::SignificanceOfReferenceTimeCode code Items

Code item Definition URL
AnalysisThe reference time of the analysis http://codes.wmo.int/grib2/codeflag/1.2
Start of ForecastAll forecast times are relative to this Reference time http://codes.wmo.int/grib2/codeflag/1.2
Verifying Time of ForecastThe reference time is used to denote the validity time of the forecast http://codes.wmo.int/grib2/codeflag/1.2
Observation TimeThe Reference time is used to denote the time of observation. http://codes.wmo.int/grib2/codeflag/1.2

9.2.6.  OriginatingCentreCode

A code list to indicate the centre responsible for the product, this is referenced by http://codes.wmo.int/grib2/codeflag/0

9.2.7.  ProductionStatusCode

A type code capturing the significance of the reference time.

Table 14 — METOCEAN::ProductionStatusCode code Items

Code item Definition URL
Operational ProductsOperational Products http://codes.wmo.int/grib2/codeflag/1.3
Operational Test ProductsOperational Test Products http://codes.wmo.int/grib2/codeflag/1.3
Research ProductsResearch Products http://codes.wmo.int/grib2/codeflag/1.3
Re-Analysis ProductsRe-Analysis Products http://codes.wmo.int/grib2/codeflag/1.3

9.2.8.  TypeOfCalendarCode

A type code capturing the significance of the Calendar used.

Table 15 — METOCEAN::TypeOfCalendarCode code Items

Code item Definition URL
GregorianGregorian http://codes.wmo.int/grib2/codeflag/1.6
360-day360-day http://codes.wmo.int/grib2/codeflag/1.6
365-day (see Note 1)365-day (Essentially a non-leap year) http://codes.wmo.int/grib2/codeflag/1.6
Proleptic GregorianProleptic Gregorian (Extends the Gregorian calendar indefinitely in the past) http://codes.wmo.int/grib2/codeflag/1.6

9.2.9.  FixedSurfaceTypesAndUnits

The code list is used to indicate the surface type (cf vertical CRS) and the associated units. http://codes.wmo.int/grib2/codeflag/4.5

9.3.  Requirements class: result-mask

This requirements class describes the result mask that is an instance of the O&M result quality.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/result-mask
Dependency http://www.opengis.net/spec/OMXML/2.0/req/observation
Dependency http://www.opengis.net/spec/CIS/1.1

Requirement 20

/req/result-mask/structure

A metocean:ResultMask instance shall conform to Figure 9, Table 16, and Table 17

Requirement 21

/req/result-mask/mask-extension

The ResultMask shall through the specialisation of gmd:AbstractDQ_Result (that has a property gmd:result), reference a ParameterMask that contains the property TimeHeight Mask of type cis:GeneralGridCoverage Type

Requirement 22

/req/result-mask/metocean/getCapabilities-response-conformance-class-in-profile

A WCS service implementing this conformance class shall include the following URI in an ows:Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/result-mask

image

Figure 9 — ResultMask UML class diagram

9.3.1.  Requirements class overview

The result mask is used in the DescribeCoverage response document and is linked by the element om:resultQuality that is part of the OM:Observation class. This result mask is quite generic and may be used, for example, to indicate where data may be missing (see Figure 5). It may also be used to indicate a quantifiable data quality. The ResultMask references a ParameterMask that contains the property TimeHeight Mask of type cis:GeneralGridCoverage. The “Domain Set” will define the axes and for the examples a (See appendix) temporal axis and vertical axis is used. One of the key uses is to be able to define a 4D coverage from a set of 2D coverages.

9.3.2.  ResultMask

The Resultmask holds quality control information and normally has a vertical and temporal axis as it most frequently used to indicate missing data (see figure 5).

Table 16 — METOCEAN::ResultMask

Name Definition Data types and values Multiplicity
gmd:resultThe ResultMask specializes AbstractDQ_Element that has a the property gmd:result containing ParameterMask, by specializing gmd:AbstractDQ_ResultParameterMask

One

(mandatory)

9.3.3.  ParameterMask

The properties relating to a Parameter Mask.

Table 17 — METOCEAN::Parameter Mask

Name Definition Data types and values Multiplicity
timeHeightMaskA Time-Height Mask is a ”cis:GeneralGridCoverage” type (using the Coverage Implementation Schema v1.1) with height/time axes and range values.TimeHeightMask

zero or one

(optional)

rangeComponent

The list of parameters for which the ResultMask applies.

Multiple parameters are separated by a “/” delimiter.

string

One

(mandatory)

9.4.  Requirements class: getCapabilities-metOcean-extension

This requirements class describes the extension made to the GetCapabilities response.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-metOcean-extension
Dependency http://www.opengis.net/doc/IS/WCS/2.1#clause:8.2
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/GetCapabilities-groups
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/GetCapabilities-coverageCollectionSummary
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/GetCapabilities-coverageSummary
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/covcoll-offering

Requirement 23

/req/getCapabilities-metOcean-extension/mandatory

A WCS service implementing this profile shall support at least one of the following conformance classes;-

/conf/GetCapabilities-coverageSummary

/conf/GetCapabilities-coverageCollectionSummary

/conf/GetCapabilities-groups

Requirement 24

/req/getCapabilities-metOcean-extension/response-extension-identification

A WCS service implementing this profile shall indicate which GetCapabilities requirements classes are supported using the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean

Requirement 25

/req/getCapabilities-metOcean-extension/response-conformance-class-in-profile

A WCS service implementing this profile shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean

Requirement 26

/req/getCapabilities-metOcean-extension/response-countDefault:

If the response to a successful GetCapabilities request contains an ows:Constraint element in its ows:OperationsMetadata element then its name attribute shall hold a value as defined in Table 22 and the XML Schema being part of this standard

image

Figure 10 — GetCapabilitiesExtension UML class diagram

9.4.1.  Requirements class overview

The MetOcean profile supports an extended GetCapabilites operation that allows for three distinct patterns, described in the next three requirements classes. To make implementation easier they are mutually exclusive. This MetOcean profile also provides a method of defining a hierarchical structure through the use of groups, with each group, if required, having a serviceInstance (as denoted in Section 7.4.1). The main benefit of this approach is to create a structure that reflects the organisation of intended use of the data, rather than its underlying structure.

Note that the CoverageCollectionMetadata element has a choice construct that means the three GetCapabilites conformance classes are based on each of these choices. These classes are described in sections 9.5, 9.6 and 9.7.

There is an optional constraint CountDefault specifying the maximum number of CoverageDescription elements reported in a DescribeCoverageCollection response

9.5.  Requirements class: getCapabilities-coverageSummary

This requirements class describes the extension made to the GetCapabilities response that exposes the coverageSummary extension.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-coverageSummary
Dependency http://www.opengis.net/doc/IS/WCS/2.1#clause:8.2
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents

Requirement 27

/req/getCapabilities-coverageSummary/response-structure

The response to a successful GetCapabilites containing a metocean:CoverageSummary section shall consist of a data structure as defined in Figure 11, Table 18, Table 19, Table 20 and Table 21, and the XML Schemas being part of this standard.

Requirement 28

/req/getCapabilities-coverageSummary/request-sections

The GetCapabilites request shall accept an ows:Sections element with the value defined in OWS Common and “MetoceanCoverageSummary” to ensure only a list of metocean:CoverageSummary elements

Requirement 29

/req/getCapabilities-coverageSummary/response-coverages

In response to a successful GetCapabilities request containing a CoverageSummary section, each Coverage identifier listed shall refer to a Coverage offered by the server.

Requirement 30

/req/getCapabilities-coverageSummary/response-coverage-no-duplicates

A WCS server implementing this profile shall not offer any duplicate coverages

Requirement 31

req/getCapabilities-coverageSummary/response-extension-identification

A WCS service implementing this profile shall include the following URI in a Profile element in the ServiceIdentification element in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageSummary

image

Figure 11 — GetCapabilitiesCoverageSummary UML class diagram

9.5.1.  Requirements class overview

The GetCapabilities-CoverageSummary requirements class supports the listing of coverage identifiers that have MetOcean specific metadata. This profile supports the listing of coverages, as well as a full geospatial/temporal footprint by use of the cis:Envelope element. The following example showcases this:

An example of a GetCapabilities request with MetOceanCoverageSummary:

<?xml version="1.0" encoding="UTF-8"?>
<wcs:GetCapabilities
xmlns:metocean="http://www.opengis.net/wcs/metoceanProfile/1.0"
xmlns:cis="http://www.opengis.net/cis/1.1/gml"
xmlns:wcs="http://www.opengis.net/wcs/2.0"
xmlns:ows="http://www.opengis.net/ows/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd http://www.opengis.net/wcs/metoceanProfile/1.0 http://schemas.opengis.net/wcs/metoceanProfile/1.0/wcsMetOceanGetCapabilitiesExtension.xsd" service="WCS">
<ows:AcceptVersions>
<ows:Version>2.1.0</ows:Version>
</ows:AcceptVersions>
<ows:Sections>
<ows:Section>OperationsMetadata</ows:Section>
<ows:Section>MetOceanCoverageSummary</ows:Section>
</ows:Sections>
</wcs:GetCapabilities>

The response fragment:

<metocean:CoverageSummary>
<wcs:CoverageId>BestData_AGL</wcs:CoverageId>
<cis:Envelope srsName="http://www.opengis.net/def/crs-compound?
1=http://www.opengis.net/def/crs/EPSG/0/4326;
2=http://http://www.opengis.net/def/crs/OGC/0/Time"
axisLabels="Lat Lon Time" srsDimension="3">
<cis:AxisExtent axisLabel="Lat" uomLabel="deg" lowerBound="-90" upperBound="90" />
<cis:AxisExtent axisLabel="Lon" uomLabel="deg" lowerBound="-180" upperBound="180" />
<cis:AxisExtent axisLabel="Time" uomLabel="ISO8601" lowerBound="2015-05-15T00.00.00Z"
upperBound="2015-05-20T00.00.00Z" />
</cis:Envelope>
</metocean:CoverageSummary>

A full example is given in the appendix.

9.5.2.  wcs:Extension

Even though this is not part of the MetOcean profile it is used to show the relationship between this extension point and the MetOcean specific metadata.

Table 18 — WCS::Extension properties

Name Definition Data types and values Multiplicity
wcs:ExtensionExtends the metadata in the GetCapabilities response to include MetOcean specific detail. (this is done because wcs:Extension is type “any”)GetCapabiltiesMetOceanExtension

one or more

(mandatory)

9.5.3.  metocean:GetCapabiltiesExtension

The GetCapabiltiesExtension is a high level object that forms the core part of the MetOcean GetCapabilities response.

Table 19 — METOCEAN::GetCapabiltiesMetOceanExtension properties

NameDefinitionData types and valuesMultiplicity
metocean:nameA meaningful name that gives identity to the groupNCNamezero or one (optional)
metocean:serviceInstanceThe service address of the server that will serve the coverages/coverageCollectionows:DCP

zero or one

(optional)

ows:metadataAn extension point for any additional metadataows:abstractMetadata

zero or one

(optional)

metocean:coverageSummaryThe summary of the coverages listed in the GetCapabilities response.metocean:CoverageSummaryone or more
(mandatory)

9.5.4.  metocean:CoverageSummary

The metadata required to describe a listed coverage.

Table 20 — METOCEAN::CoverageSummary properties

Name Definition Data types and values Multiplicity
wcs:coverageIdIdentifier of a coverage offered by the service on handNCNameone
cis:EnvelopeThe envelope around a coverage is defined by the lower and upper bound of each axis, respectively; an asterisk “*” in lower/upper bound denotes a null value.cis:AxiaExtent

(mandatory)

zero or one

ows:metadataAn extension point for any additional metadataows:abstractMetadatazero or one

9.5.5.  metocean:AdditionalMetadata

Additional Metadata properties about the coverage.

Table 21 — METOCEAN::AdditionalMetadata properties

Name Definition Data types and values Multiplicity
MetadataReference to more metadata about this coverageOWS Common::
Metadata
zero or one
(optional)
referenceTimeThe analysis time i.e. the start or “reference time” of the simulation process.gml:timePositionzero or one
(optional)
referenceTimeAxisThe analysis axis time i.e. a list of reference times that constitute an axis

Choice

cis:regularAxis

cis:irregularAxis

zero or one
(optional)

Table 22 — Values for OWS::Constraint elements

Name Definition Data type Multiplicity
CountDefaultCountDefault Default value for the count parameter defined for DescribeCoverageCollection requests.Integer greater than or equal to zerozero or one
(optional)

9.6.  Requirements class: getCapabilities-coverageCollectionSummary

This requirements class describes the extension made to the GetCapabilities response that exposes the coverageCollectionSummary extension.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-coverageCollectionSummary
Dependency http://www.opengis.net/doc/IS/WCS/2.1#clause:8.2
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents

Requirement 32

/req/getCapabilities-coverageCollectionSummary/response-structure

The response to a successful GetCapabilites responses shall consist of a data structure as defined in Figure 12, Table 18, Table 19, Table 21, Table 22, Table 24 and the XML Schemas being part of this standards.

Requirement 33

/req/getCapabilities-coverageCollectionSummary/request-sections

The GetCapabilites request shall accept an ows:Sections element with the value defined in OWS Common and “MetoceanCoverageCollectionSummary” so ensuring only a list of metocean:CoverageCollectionSummary elements

Requirement 34

/req/getCapabilities-coverageCollection/Summary/response-coverageCollections

In response to a successful GetCapabilites request containing a CoverageCollectionSummary section, each CoverageCollection identifier listed shall refer to a CoverageCollection offered by the server.

Requirement 35

/req/getCapabilities-coverageCollectionSummary/response-coverageCollections-no-duplicates

A WCS server implementing this profile shall not offer any duplicate coverageCollections

Requirement 36

/req/getCapabilities-coverageCollectionSummary/response-extension-identification

A WCS service implementing this profile shall include the following URI in a Profile element in the ServiceIdentification element in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean/CoverageCollectionSummary

Requirement 37

/req/getCapabilities-coverageCollectionSummary/response-operationsMetadata

The Operations­Meta­data com­pon­ent shall contain four Operat­ion instanc­es with case-sensitive name values “Get­Capab­il­ities”, “DescribeCoverage”, “GetCoverage”, and “DescribeCoverageCollection”.

image

Figure 12 — GetCapabilitiesCoverageCollectionSummary UML class diagram

9.6.1.  Requirements class overview

The GetCapabilities-coverageCollectionSummary requirements class supports the listing of CoverageCollection identifiers that have MetOcean specific metadata. The CoverageCollection is an important construct within the MetOcean community as it describes the assembly of the output from a computer simulation that by nature uses a number of vertical CRS’s, but a common horizontal/temporal domain.

9.6.2.  CoverageCollectionSummary

The metadata required to describe a listed coverage collection.

Table 23 — METOCEAN::GetCapabiltiesMetOceanExtension properties

NameDefinitionData types and valuesMultiplicity
NameA meaningful name that gives identity to the groupNCNamezero or one (optional)
serviceInstanceThe service address of the server that will serve the coverages/coverageCollectionsanyURI

zero or one

(optional)

ows:metadataAn extension point for any additional metadataows:abstractMetadata

zero or one

(optional)

metocean:coverageCollectionSummaryThe summary of the coverages listed in the GetCapabilities response.covcoll:CoverageCollectionSummaryone or more (mandatory)

Table 24 — COVCOLL::CoverageCollectionSummary properties

Name Definition Data types and values Multiplicity
covcoll:coverageCollectionIdIdentifier of a CoverageCollection offered by this serviceNCNameone (Mandatory)
cis:EnvelopeThe envelope around a coverage is defined by the lower and upper bound of each axis, respectively; an asterisk “*” in lower/upper bound denotes a null value.cis:AxiaExtent

zero or one

(optional)

ows:metadataAn extension point for any additional metadataows:abstractMetadata

zero or one

(optional)

An example of a GetCapabilities request with MetoceanCoverageCollectionSummary:

<?xml version="1.0" encoding="UTF-8"?>
<wcs:GetCapabilities
xmlns:ows="http://www.opengis.net/ows/2.0"
xmlns:wcs="http://www.opengis.net/wcs/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd http://www.opengis.net/wcs/metoceanProfile/1.0 http://schemas.opengis.net/wcs/metoceanProfile/1.0/wcsMetOceanGetCapabilitiesExtension.xsd" service="WCS">
<ows:AcceptVersions>
<ows:Version>2.1.0</ows:Version>
</ows:AcceptVersions>
<ows:Sections>
<ows:Section>OperationsMetadata</ows:Section>
<ows:Section>MetoceanCoverageCollectionSummary</ows:Section>
</ows:Sections>
</wcs:GetCapabilities>

An example of a response fragment:-

<wcs:Contents>
<wcs:Extension>
<metocean:CoverageCollectionMetadata>
<metocean:coverageCollectionSummary>
<metocean:CoverageCollectionSummary>
<metocean:coverageCollectionId>UK_Global_Climate_HistoricCO2</metocean:coverageCollectionId>
<cis:Envelope srsName="http://www.opengis.net/def/crs-compound?
1=http://www.opengis.net/def/crs/EPSG/0/4326;
2=http://http://www.opengis.net/def/crs/OGC/0/Time"
axisLabels="Lat Lon Time" srsDimension="3">
<cis:AxisExtent axisLabel="Lat" uomLabel="deg" lowerBound="-90" upperBound="90" />
<cis:AxisExtent axisLabel="Lon" uomLabel="deg" lowerBound="-180" upperBound="180" />
<cis:AxisExtent axisLabel="Time" uomLabel="ISO8601" lowerBound="2015-05-15T00.00.00Z" upperBound="2015-05-20T00.00.00Z" />
</cis:Envelope>
</metocean:CoverageCollectionSummary>
<metocean:CoverageCollectionSummary>
<metocean:coverageCollectionId>UK_Global_Climate_DoubleCO2</metocean:coverageCollectionId>
<cis:Envelope srsName="http://www.opengis.net/def/crs-compound?
1=http://www.opengis.net/def/crs/EPSG/0/4326;
2=http://http://www.opengis.net/def/crs/OGC/0/Time"
axisLabels="Lat Lon Time" srsDimension="3">
<cis:AxisExtent axisLabel="Lat" uomLabel="deg" lowerBound="-90" upperBound="90" />
<cis:AxisExtent axisLabel="Lon" uomLabel="deg" lowerBound="-180" upperBound="180" />
<cis:AxisExtent axisLabel="Time" uomLabel="ISO8601" lowerBound="2015-05-15T00.00.00Z" upperBound="2015-05-20T00.00.00Z" />
</cis:Envelope>
</metocean:CoverageCollectionSummary>
</metocean:coverageCollectionSummary>
</metocean:CoverageCollectionMetadata>
</wcs:Extension>
</wcs:Contents>

A full example is given at the end of the document

9.7.  Requirements class: getCapabilities-groups

This requirements class describes the extension made to the GetCapabilities response that exposes the groups extension.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-groups
Dependency http://www.opengis.net/doc/IS/WCS/2.1#clause:8.2
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageSummary
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageCollectionSummary

Requirement 38

/req/getCapabilities-groups/response-structure

The response to a successful GetCapabilites responses shall consist of a data structure as defined in Figure 13, Table 18, Table 19, Table 20, Table 21, Table 22, Table 24, Table 25, Table 26, Table 27, Table 28 and the XML Schemas being part of this standards.

Requirement 39

/req/getCapabilities-groups/request-sections

If a GetCapabilites request contains an ows:Section element then this element shall contain ows:Section elements with the values defined in OWS Common and “MetoceanGroups”.

Requirement 40

/req/getCapabilities-groups/response-coverages

In response to a successful GetCapabilites request containing a CoverageSummary section, each Coverage identifier listed shall refer to a Coverage offered by the server.

Requirement 41

/req/getCapabilities-groups/response-coverageCollections

In response to a successful GetCapabilites request containing an OfferedCollections section, each coverageCollection identifier listed shall refer a CoverageCollection offered by the server.

Requirement 42

/req/getCapabilities-groups/response-coverage-no-duplicates

A WCS server implementing this profile shall not offer any duplicate coverages

Requirement 43

/req/getCapabilities-groups/response-coverageCollections-no-duplicates

A WCS server implementing this profile shall not offer any duplicate coverageCollections

Requirement 44

req/getCapabilities-groups/response-extension-identification

A WCS service implementing this profile shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean/Groups

Requirement 45

/req/getCapabilities-groups/response-operationsMetadata

The Operations­Meta­data com­pon­ent shall contain four Operat­ion instanc­es with the case-sensitive name values: “Get­Capab­il­ities”, “DescribeCoverage”, “Get­Coverage”, and “DescribeCoverageCollection”.

image

Figure 13 — GetCapabilitiesGroups UML class diagram

9.7.1.  Requirements class overview

The GetCapabilities-Groups class structures the GetCapabilities file to provide a hierarchical way of nesting “services”. Even though this requirements class is part of the MetOcean profile it is not restricted to MetOcean and any service may be referenced as long as it has the concept of coverageCollections.

The GetCapabilities-groups requirements class is dependent on the DescribeCoverageCollection operation being supported by the WCS server.

Table 25 — METOCEAN::GetCapabiltiesMetOceanExtension properties

NameDefinitionData types and valuesMultiplicity
NameA meaningful name that gives identity to the groupNCNamezero or one (optional)
serviceInstanceThe service address of the server that will serve the coverages/coverageCollectionanyURI

zero or one

(optional)

ows:metadataAn extension point for any additional metadataows:abstractMetadata

zero or one

(optional)

groupThe summary of the coverages listed in the GetCapabilities response.metocean:Groupone or more
(mandatory)

9.7.2.  metocean:Group

Meteorological and oceanographic data is by nature hierarchical and the ability to group entities together is important. Thus a set of simulations may be clustered together to form a logical group (see Figure 4).

Table 26 — METOCEAN::Group properties

Name Definition Data types and values Multiplicity
simulationCollectionA simulation is the construction of a mathematical model to reproduce the characteristics of a forecast based on a computer simulation of the atmosphere/ocean. A common example would be a NWP model run collection.SimulationCollectionzero or more

9.7.3.  metocean:SimulationCollection

The development and use of computer models for the study of actual or postulated dynamic systems is common in the field of environment science. It is commonplace to “run” simulations at regular intervals and it is convenient to group together these simulations and list each instance (or member) of that series with each member having a unique identifier.

Table 27 — METOCEAN::SimulationCollection properties

Name Definition Data types and values Multiplicity
simulationMemberAn individual member of the series of simulation (aka Model Run)SimulationMember

one or more

(mandatory)

cis:EnvelopeThe envelope around a coverage is defined by the lower and upper bound of each axis, respectively; an asterisk “*” in lower/upper bound denotes a null value.cis:AxiaExtentzero or one

9.7.4.  metocean:SimulationMember

This simulation member identifier will point to a CoverageCollection resource that, for example, may be a NWP model run. The CoverageCollectionId will uniquely identify a collection of coverages.

Table 28 — METOCEAN::SimulationMember properties

Name Definition Data types and values Multiplicity
covcoll:coverageCollectionIdIdentifier of a CoverageCollection offered by this service, aka the identifier of each member (e.g. model run) of the simulation.NCNameone
(mandatory)
cis:EnvelopeThe envelope around a coverage is defined by the lower and upper bound of each axis, respectively; an asterisk “*” in lower/upper bound denotes a null value.cis:AxiaExtentzero or one
ows:metadataAn extension point for any additional metadataows:abstractMetadatazero or one
simulationCoverageSummaryThe summary information for each coverage contained in each member (e.g. model run) of the simulation.

SimulationCoverageSummary

Type (wcs:CoverageSummary)

one or more
(mandatory)

An example of a GetCapabilities request with MetoceanGroups:

<?xml version="1.0" encoding="UTF-8"?>
<wcs:GetCapabilities
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:metocean="http://www.opengis.net/wcs/metoceanProfile/1.0"
xmlns:cis="http://www.opengis.net/cis/1.1/gml"
xmlns:wcs="http://www.opengis.net/wcs/2.0"
xmlns:ows="http://www.opengis.net/ows/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd http://www.opengis.net/wcs/metoceanProfile/1.0 http://schemas.opengis.net/wcs/metoceanProfile/1.0/wcsMetOceanGetCapabilitiesExtension.xsd" service="WCS">
<ows:AcceptVersions>
<ows:Version>2.1.0</ows:Version>
</ows:AcceptVersions>
<ows:Sections>
<ows:Section>OperationsMetadata</ows:Section>
<ows:Section>MetoceanGroups</ows:Section>
</ows:Sections>
</wcs:GetCapabilities>

An example of a response fragment:-

<metocean:group>
<metocean:Group>
<metocean:name>Atmospheric Models</metocean:name>
<metocean:Group>
<metocean:name>Global Models</metocean:name>
<metocean:Group>
<metocean:name>USA_GFS</metocean:name>
<metocean:serviceInstance>
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://www.noaa/GFS_Forecast" xlink:type="simple"/>
<ows:Post xlink:href="http://www.noaa.org/GFS_Forecast" xlink:type="simple">
<ows:Constraint name="PostEncoding">
<ows:AllowedValues>
<ows:Value>XML</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Post>
</ows:HTTP>
</ows:DCP>
</metocean:serviceInstance>
<metocean:coverageCollectionSummary>
<metocean:CoverageCollectionSummary>
<metocean:coverageCollectionId>GFS_Global_2017-04-26T00.00.00Z</metocean:coverageCollectionId>
</metocean:CoverageCollectionSummary>
<metocean:CoverageCollectionSummary>
<metocean:coverageCollectionId>GFS_Global_2017-04-26T12.00.00Z</metocean:coverageCollectionId>
</metocean:CoverageCollectionSummary>
</metocean:coverageCollectionSummary>
</metocean:Group>
</metocean:Group>
</metocean:Group>
</metocean:group>

There is a full example at the end of the document

9.8.  Requirements Class: describeCoverageCollection

This requirements class specifies a new operation DescribeCoverageCollection.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection
Dependency [OGC06-121r9] (http://www.opengis.net/doc/OWS/2.0/clause/8)
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/covcoll-offering
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/coverageSummary

Requirement 46

/req/DescribeCoverageCollection/request-structure

The DescribeCoverageCollection request structure is derived from RequestBase, extended with a non-empty list of coverage collection identifiers. A WCS server implementing this extension shall accept requests on the DescribeCoverageCollection operation that conform to the structure specified in Figure 13 and Table 29

Requirement 47

/req/DescribeCoverageCollection/request-valid-identifier

Each value provided in a coverageCollectionId element within a DescribeCoverageCollection request shall identify a CoverageCollection resource offered by the WCS server.

Requirement 48

/req/DescribeCoverageCollection/response-structure

A WCS server implementing this extension shall provide a response to a successful DescribeCoverageCollection request consisting of a CoverageCollectionDe­script­ions element, as described in Figure 14 Figure 15, Table 29, Table 30, Table 31, Table 32, Table 33, Table 34, and Table 35.

Requirement 49

/req/DescribeCoverageCollection/response-description-containment

The element CoverageCollectionDescription shall contain at least one wcs:CoverageSummary element.

Requirement 50

/req/DescribeCoverageCollection/response-structure-list

The response to a successful DescribeCoverageCollection request shall comprise a list containing one CoverageCollectionDescription element for each of the requested CoverageCollection resources.

Requirement 51

/req/DescribeCoverageCollection/response-no-duplicates

A coverage offering specified in a given CoverageCollection shall be listed once, and only once, in the associated CoverageCollectionDescription element.

Requirement 52

/req/DescribeCoverageCollection/response-count

In the response to a successful DescribeCoverageCollection request the sum of wcs:CoverageSummary elements shall be less or equal to the minimum of the value of the CountDefault element, and the count parameter, if present, in the request. If none of both are present all matching elements shall be reported.

Requirement 53

/req/DescribeCoverageCollection/response-list-size

The response to a successful DescribeCoverageCollection request with “n” CoverageCollection identifiers shall contain a CoverageCollectionDescriptions element consisting of “n” coverageCollectionDescription items as specified in Figure 14, Table 31, Table 32 and Table 33

Requirement 54

/req/DescribeCoverageCollection/coverage-subtypes

The value CoverageSubtype element shall be restricted to only those values enumerated in Table 35 according to its type.

The response to a successful DescribeCoverageCollection request with CoverageCollection identifiers shall contain a CoverageCollectionDescriptions element consisting of “n” coverageCollectionDescription items as specified in Figure 6.

9.8.1.  Requirements class overview

A DescribeCoverageCollection request submits a list of identifiers for CoverageCollection resources and returns, for each identified CoverageCollection resource, a description of the CoverageCollection. The description of a CoverageCollection resource in a DescribeCoverageCollection response includes:

  • An identifier for the CoverageCollection resource,

  • Summary information about coverages which comprise this CoverageCollection resource (if any),

  • Information about the boundary spatial (or spatiotemporal) extent of the CoverageCollection,

  • Other metadata or extension information.

9.8.2.  DescribeCoverageCollection request

The DescribeCoverageCollection request structure is derived from RequestBase, extended with a non-empty list of CoverageCollection identifiers. This structure is shown in Figure 14 and Table 29.

image

Figure 14 — DescribeCoverageCollection request UML class diagram

(shaded components originate from OWS Common)

Table 29 — COVCOLL::DescribeCoverageCollection request components

Name Definition Data type Multiplicity
serviceService identifierString,
fixed to “WCS”
one
(mandatory)
versionWCS service version indicatorString,
fixed to a pattern of three dot-separated decimal digits
one
(mandatory)
extensionAny ancillary information to be sent from client to serverAnyzero or more
(optional)
coverageCollectionIdCoverageCollection identifiersNCNameone or more (mandatory)
countMaximum number of CoverageCollectionDescription elements to be included in the responseInteger greater than zerozero or one (optional

The following XML excerpt shows an example of a DescribeCoverageCollectionRequest:

<?xml version="1.0" encoding="UTF-8"?>
<covcoll:DescribeCoverageCollection
xmlns:covcoll="http://www.opengis.net/wcs/metoceanProfile/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cis="http://www.opengis.net/cis/1.1"
service="WCS" version="2.1.0" count="100"
xsi:schemaLocation="http://www.opengis.net/wcs/metoceanProfile/1.0 http://schemas.opengis.net/wcs/metoceanProfile/1.0/wcsMetOceanCoverageCollection.xsd">
<covcoll:coverageCollectionId>someCoverageCollectionId</covcoll:coverageCollectionId>
</covcoll:DescribeCoverageCollection>

The response fragment:

<metocean:CoverageCollectionDescriptions
xmlns:wcs="http://www.opengis.net/wcs/2.0"
xmlns:cis="http://www.opengis.net/cis/1.1/gml"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ows="http://www.opengis.net/ows/2.0"
xmlns:wcs21="http://www.opengis.net/wcs/2.1/gml"
xmlns:wcs20="http://www.opengis.net/wcs/2.0"
xmlns:cis11="http://www.opengis.net/cis/1.1/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:metocean="http://www.opengis.net/wcs/metoceanProfile/1.0"
xsi:schemaLocation="http://www.opengis.net/wcs/metoceanProfile/1.0 http://schemas.opengis.net/wcs/metoceanProfile/1.0/wcsMetOceanProfileALL.xsd">
<metocean:CoverageCollectionDescription>
<metocean:coverageCollectionId>GFS_Global_2016-10-12T00.00.00Z</metocean:coverageCollectionId>
<ows:Metadata xlink:href="www.codes.wmo.int/GRIB2/codeflag/0.0/_0/Meteorological Products">
<metocean:collectionDescription collectionName="Generic NWP Model Run">
<cis:Envelope srsName="http://www.opengis.net/def/crs-compound?
1=http://www.opengis.net/def/crs/EPSG/0/4326;
2=http://http://www.opengis.net/def/crs/OGC/0/AnsiDate"
axisLabels="Lat Lon Time " srsDimension="3">
<cis:AxisExtent axisLabel="Lat" uomLabel="deg" lowerBound="-90" upperBound="90" />
<cis:AxisExtent axisLabel="Lon" uomLabel="deg" lowerBound="-180" upperBound="180" />
<cis:AxisExtent axisLabel="Time" uomLabel="ISO8601" lowerBound="2016-10-12T00.00.00Z" upperBound="2015-05-17T00:00:00Z" />
</cis:Envelope>
</metocean:collectionDescription>
</ows:Metadata>
<metocean:coverageSummary>
<wcs:CoverageSummary>
<wcs:CoverageId>GFS_Global_2016-10-12T00.00.00Z_ISBL</wcs:CoverageId>
<wcs:CoverageSubtype>VerticalDependency</wcs:CoverageSubtype>
<ows:Metadata xlink:href="www.codes.wmo.int/GRIB2/table4.5/IsobaricSurface">
<metocean:coverageDescription coverageName="Isobaric Surface">
<metocean:referenceTime>
<gml:timePosition>2015-05-15T00.00.00Z</gml:timePosition>
</metocean:referenceTime>
<cis:Envelope srsName="http://www.opengis.net/def/crs-compound?
1=http://www.opengis.net/def/crs/EPSG/0/4326;
2=http://http://www.opengis.net/def/crs/OGC/0/AnsiDate&amp;
3=http://www.codes.wmo.int/GRIB2/table4.5/IsobaricSurface"
axisLabels="Lat Lon Time Pressure" srsDimension="4">
<cis:AxisExtent axisLabel="Lat" uomLabel="deg" lowerBound="-90" upperBound="90" />
<cis:AxisExtent axisLabel="Lon" uomLabel="deg" lowerBound="-180" upperBound="180" />
<cis:AxisExtent axisLabel="Time" uomLabel="ISO8601" lowerBound="2016-10-12T00.00.00Z" upperBound="2015-05-17T00:00:00Z" />
<cis:AxisExtent axisLabel="Pressure" uomLabel="hPa" lowerBound="1000.0" upperBound="200.0" />
</cis:Envelope>
</metocean:coverageDescription>
</ows:Metadata>
</wcs:CoverageSummary>
<wcs:CoverageSummary>
<wcs:CoverageId>GFS_Global_2016-10-12T00.00.00Z_Max_Wind</wcs:CoverageId>
<wcs:CoverageSubtype>ComputedSurface</wcs:CoverageSubtype>
<ows:Metadata xlink:href="www.codes.wmo.int/GRIB2/table4.5/MaximumWindLevel">
<metocean:coverageDescription coverageName="Maximum Wind Level">
<metocean:referenceTime>
<gml:timePosition>2015-05-15T00.00.00Z</gml:timePosition>
</metocean:referenceTime>
<cis:Envelope srsName="http://www.opengis.net/def/crs-compound?
1=http://www.opengis.net/def/crs/EPSG/0/4326;
2=http://http://www.opengis.net/def/crs/OGC/0/AnsiDate"
axisLabels="Lat Lon Time" srsDimension="4">
<cis:AxisExtent axisLabel="Lat" uomLabel="deg" lowerBound="-90" upperBound="90" />
<cis:AxisExtent axisLabel="Lon" uomLabel="deg" lowerBound="-180" upperBound="180" />
<cis:AxisExtent axisLabel="Time" uomLabel="ISO8601" lowerBound="2016-10-12T00.00.00Z" upperBound="2015-05-17T00:00:00Z" />
<cis:AxisExtent axisLabel="Max_Wind" uomLabel="NA" lowerBound="1" upperBound="1"/>
</cis:Envelope>
</metocean:coverageDescription>
</ows:Metadata>
</wcs:CoverageSummary>
</metocean:coverageSummary>
</metocean:CoverageCollectionDescription>
</metocean:CoverageCollectionDescriptions>

9.8.3.  COVCOLL::DescribeCoverageCollection response

The response to a successful DescribeCoveragecollection request contains a list of coverage metadata, one for each Coveragecollection identifier passed in the request. This structure is shown in Figure 15 and Table 30, Table 31, Table 32, Table 33, Table 34, and Table 35.

Table 30 — Exception codes for DescribeCoverage operation

exceptionCode value HTTP code Meaning of exception code locator value
NoSuchCoverageCollection404One or more of the identifiers passed does not match with any of the CoverageCollection resources offered by this serverlist of violating CoverageCollection resource identifiers
image

Figure 15 — CoverageCollectionDescription UML class diagram

Figure 15 illustrates how CoverageCollectionSummary elements are structured. New classes are highlighted in blue.

Table 31 — COVCOLL::CoverageCollectionDescription components

Name Definition Data type Multiplicity
covcoll:coverageCollectionIdIdentifier of a CoverageCollection offered by this serviceNCNameone
(mandatory)
ows:metadataReference to more metadata about this CoverageCollectionOWS Common::
Metadata
zero or one (optional)
covcoll:coverageSummaryA summary of the coverages contained within a coverage collectionwcs:CoverageSummaryzero or many (optional)

(shaded components originate from OWS Common)

Table 32 — WCS::CoverageSummary additional components

Name Definition Data type Multiplicity
CoverageIdIdentifier of a coverage offered by the service on handNCNameone
(mandatory)
coverage­SubtypeType name of the coverage on handQNameone
(mandatory)
coverage­Subtype­ParentRecursive list of the coverage’s supertypesCoverageSubtype­Parentzero or one
(optional)
WGS84-BoundingBoxMinimum bounding rectangle surrounding dataset, using WGS 84 CRS with decimal degrees and longitude before latitudeOWS Common::
WGS84BoundingBox
zero or more
(optional)
ows:boundingBoxMinimum bounding rectangle surrounding dataset, in available CRSOWS Common::
BoundingBox
zero or more
(optional)
ows:MetadataReference to more metadata about this datasetOWS Common::
Metadata
zero or more
(optional)

Table 33 — COVCOLL::CoverageDescription

Name Definition Data type Multiplicity
covcoll: referenceTimeThe analysis time, i.e. the start or “reference time” of the simulation process.gml:timePositionzero or one
(optional)
cis:EnvelopeThe envelope around a coverage is defined by the lower and upper bound of each axis, respectively; an asterisk “*” in lower/upper bound denotes a null value.cis:AxiaExtentzero or more
(optional)
coverageNameAn attribute that, if used, adds semantic meaning.stringzero or one
(optional)

9.8.4.  CoverageCollectionSummary

The metadata required to describe a listed coverage collection.

Table 34 — COVCOLL::CoverageCollectionSummary properties

Name Definition Data types and values Multiplicity
covcoll:coverageCollectionIdIdentifier of a CoverageCollection offered by this serviceNCNameone
cis:EnvelopeThe envelope around a coverage is defined by the lower and upper bound of each axis, respectively; an asterisk “*” in lower/upper bound denotes a null value.cis:AxiaExtentzero or one
ows:metadataAn extension point for any additional metadataows:abstractMetadatazero or one

Table 35 — Coverage Sub-Type definition

Code item Definition URL
VerticalDependencye.g. pressure levels http://codes.wmo.int/grib2/codeflag/4.5/_100
ComputedSurfacee.g. maximum wind, Isentropic (theta) Level, Tropopause

http://codes.wmo.int/grib2/codeflag/4.5/_6

http://codes.wmo.int/grib2/codeflag/4.5/_107

http://codes.wmo.int/grib2/codeflag/4.5/_7

NamedRangeDifference between two geopotential heights (Thickness) http://codes.wmo.int/grib2/codeflag/_4.91
NoVerticalDependencyGround http://codes.wmo.int/grib2/codeflag/4.5/_1

9.10.  Requirements Class: describeCoverageCollection-get-kvp

This requirements class specifies how the DescribeCoverageCollection operation is provided in WCS servers that implement the HTTP/GET using KVP protocol binding.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-get-kvp
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection
Dependency WCS 2.0 protocol extension GET/KVP [OGC 09-147r3].

Requirement 56

/req/DescribeCoverageCollection-get-kvp/mandatory

Implementations of the DescribeCoverageCollection extension that supports the DescribeCoverageCollection-get-kvp requirements class shall support the WCS 2.1 protocol extension GET/KVP [OGC 09-147r3].

Requirement 57

/req/DescribeCoverageCollection-get-kvp/conformance-class-in-profile

Implementations of this DescribeCoverageCollection extension that supports the DescribeCoverageCollection-get-kvp requirements class shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/ DescribeCoverageCollection-get-kvp

Requirement 58

/req/DescribeCoverageCollection-get-kvp/describeCoverageCollection-request-structure

A WCS server implementing both this get-kvp protocol binding extension shall encode the DescribeCoverageCollection operation request as specified in Table 36.

Requirement 59

/req/DescribeCoverageCollection-get-kvp/describeCoverageCollection-request-parameter

The request parameter in the DescribeCoverageCollection request parameter of a DescribeCoverageCollection request shall be indicated as follows: request=DescribeCoverageCollection

Requirement 60

/req/DescribeCoverageCollection-get-kvp/describeCoverageCollection-request-coverageCollectionId

The coverageCollectionId parameter in the DescribeCoverageCollection request parameter of a DescribeCoverageCollection request shall be indicated as follows, for parameter values v1, …, vn: coverageCollectionId=v1,…,vn

Requirement 61

/req/DescribeCoverageCollection-get-kvp/describeCoverageCollection-request-SetCount

The count parameter of a DescribeCoverageCollection request shall be indicated as follows for a positive integer I count=I

9.10.1.  DescribeCoverageCollection HTTP/GET using KVP request structure

The DescribeCoverageCollection request for HTTP/GET using KVP is defined below.

Table 36 — COVCOLL::DescribeCoverageCollection request URL encoding

Name Definition Data type Multiplicity
serviceService identifierString,
fixed to “WCS”
one
(mandatory)
versionWCS service version indicatorStringone
(mandatory)
requestRequest type nameString, fixed to “DescribeCoverageCollection”one
(mandatory)
coverageCollectionIdCoverageCollection identifiersComma-separated NCName listone (mandatory)
countMaximum number of CoverageCollectionDescription elements to be included in the responseInteger greater than zerozero or one (optional)

The following KVP-encoded DescribeCoverageCollection example request addresses the service path on server www.service.org at port 8080, and retrieves all Coverages that are contained within the CoverageCollection with an identifier of UKPP4-201-10-15-12Z:

http://www:server.org:port/8080?
service=WCS&version=2.1.0
&request=DescribeCoverageCollection
&count=100
&coverageCollectionId=UKPP4-2016-10-15-12Z

9.11.  Requirements Class: describeCoverageCollection-post-xml

This requirements class specifies how the DescribeCoverageCollection operation is provided in WCS servers that implement the HTTP/POST using XML request body protocol binding.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-post-xml
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection
Dependency WCS 2.1 protocol extension XML-POST [OGC 09-148r1]

Requirement 62

/req/DescribeCoverageCollection-post-xml/mandatory

Implementations of this DescribeCoverageCollection extension that support the DescribeCoverageCollection post-xml requirements class shall support the WCS 2.1 protocol extension XML-POST [OGC 09-148r1].

Requirement 63

/req/DescribeCoverageCollection-post-xml/conformance-class-in-profile

Implementations of this DescribeCoverageCollection extension that support the DescribeCoverageCollection-xml-post requirements class shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/DescribeCoverageCollection-post-xml

Requirement 64

/req/DescribeCoverageCollection-post-xml/describeCoverageCollection-request-structure

A WCS server implementing the XML/POST protocol binding extension shall encode request body of the DescribeCoverageCollection operation using an XML document of type covcoll:DescribeCoverageCollection and described in Table 36.

Requirement 65

/req/DescribeCoverageCollection-post-xml/describeCoverageCollection-request-SetCount

The count parameter of a DescribeCoverageCollection request shall be indicated as follows for a positive integer I count=I

9.12.  Requirements Class: describeCoverageCollection-soap

This requirements class specifies how the DescribeCoverageCollection operation is provided in WCS servers that implement the SOAP protocol.

Requirements Classs
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-soap
Dependency http://www.opengis.net/spec/WCS_protocol-binding_soap/1.0/conf/soap
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection

Requirement 66

/req/DescribeCoverageCollection-soap/mandatory

Implementations of this DescribeCoverageCollection extension that support the DescribeCoverageCollection soap requirements class shall support the WCS 2.0 protocol extension SOAP [OGC 09-149r1]

Requirement 67

/req/DescribeCoverageCollection-soap/conformance-class-in-profile

Implementations of this covcoll-WCS which support the covcoll_soap requirements class shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/DescribeCoverageCollection-soap

Requirement 68

/req/DescribeCoverageCollection-soap/describeCoverageCollection-request-structure

A DescribeCoverageCollection request shall contain exactly one Body element containing exactly one DescribeCoverageCollection element.

Requirement 69

/req/DescribeCoverageCollection-soap/describeCoverageCollection-response-structure

In the response to a successful DescribeCoverageCollection request, the SOAP Envelope shall contain exactly one Body element

Requirement 70

/req/DescribeCoverageCollection-soap/describeCoverageCollection-Set-wdsl

For the service under test, retrieve the WSDL description and issue requests which make use of this service definition. Check that the service can be addressed and that queries can be retrieved properly.

9.13.  Requirements class: metoceanDescribeCoverage

This requirements class specifies how the DescribeCoverage operation is provided in WCS servers that implement the SOAP protocol.

Requirements Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverage
Dependency [OGC06-121r9] (http://www.opengis.net/doc/OWS/2.0/clause/8)
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/metOcean-observation-specialisation
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/coverageSummary
Dependency [OGC09-1110r7] (http://www.opengis.net/doc/wcs/2.1/clause/8.3)

Requirement 71

/req/DescribeCoverage/structure

The metocean:DescribeCoverage instance shall conform to Figure 16, Table 37 and Table 38.

Requirement 72

/req/DescribeCoverage/coverage-metadata-property

A MetOceanMetadata instance shall have a specialised observation derived from OM:Observation through the abstract class MetOceanObservation

Requirement 73

/req/DescribeCoverage/rangeType

The cis:rangeType shall reference swe:DataRecord

Requirement 74

/req/DescribeCoverage/domainType

The element cis:DomainSet shall reference the element cis:generalGrid

image

Figure 16 — CoverageDescriptions UML class diagram

9.13.1.  Requirements class overview

The additional metadata uses the cis:Extension hook to link, via the CoverageMetadata entity, to the MetOceanObservation. The DescribeCoverage response encodes the MetOceanObservation to provide metadata that is based on the WMO (World Meteorological Organisation) GRIB2 coding. The MetOceanObservation is specialised by community specific types, e.g. NWPObservation, SimulatedObservation, and others yet to be defined.

9.13.2.  cis:Extension

The extension point that links MetOcean specific metadata to the DescribeCoverage response:

Table 37 — CIS::Extension properties

Name Definition Data types and values Multiplicity
extensionPropertyReferences the Metadata section.CoverageMetadataone
(mandatory)

9.13.3.  MetOceanCoverageMetadata

A MetOceanObservation is a more specialised Observation (as defined by O&M) that adds specific metadata and is used by MetOceanCoverageDescription:

Table 38 — METOCEAN::CoverageMetadata properties

Name Definition Data types and values Multiplicity
nwpObservationOM::OM_Observation_PropertyTypezero or one (optional)
simulatedObservationOM::OM_Observation_PropertyTypezero or one (optional)

An example of a DescribeCoverage Request

<?xml version="1.0" encoding="UTF-8"?>
<DescribeCoverage xmlns="http://www.opengis.net/wcs/2.1/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wcs="http://www.opengis.net/wcs/2.1/gml"
xmlns:wcs20="http://www.opengis.net/wcs/2.0"
xmlns:metocean="http://www.opengis.net/wcs/metoceanProfile/1.0"
xsi:schemaLocation="http://www.opengis.net/wcs/2.1/gml http://schemas.opengis.net/wcs/2.1/gml/wcsDescribeCoverage.xsd http://www.opengis.net/wcs/2.1/gml http://schemas.opengis.net/wcs/2.1/gml/wcsAll.xsd"
service="WCS" version="2.1.0">
<wcs20:Extension>
<metocean:sections>
<metocean:Section>metocean_ResultMask</metocean:Section>
<metocean:Section>metocean_DescribeCoverageProfile</metocean:Section>
</metocean:sections>
</wcs20:Extension>
<wcs20:CoverageId>GlobEGRR_2015-10-15T00.00.00Z_ISBL</wcs20:CoverageId>
</DescribeCoverage>

Annex A
(normative)
Conformance Class Abstract Test Suite (Normative)

A.1.  Conformance class: covcoll-offering

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/covcoll-offering
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/covcoll-offering
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Test /conf/covcoll_offering/minimum-axis-envelope

Requirement 1

/req/covcoll_offering/minimum-axis-envelope
Test purpose

The cis:Envelope property, shall contain at a minimum, a horizontal bounding limit. Note the cis:Envelope element may be used to provide the bounding box in as many dimensions as is appropriate.

Test method

Obtain the coverageCollectionDescriptions via DescribeCoverageCollection operation and check that all instances of cis:Envelope within a coverageCollectionDescription contain a horizontal bounding box.

Obtain the coverageCollectionSummary via getCapabilities request and check that all instances of cis:Envelope within a coverageCollectionSummary contain a horizontal bounding box.

Test type

Conformance

Test /conf/covcoll_offering/envelope-shared-axes

Requirement 2

/req/covcoll_offering/envelope-shared-axes
Test purpose

The OfferedCoverageCollection cis:Envelope property shall only have those axes (as listed by the cis:axisLabels) that are shared by the Offered Coverages. Thus any axis that is unique to one of the constituent coverages would not be referenced by the CoverageCollection property cis:Envelope.

Test method

Retrieve a set of CoverageCollectionDescriptions via a DescribeCoverageCollection operation. Inspect all coverages referenced by the wcs:summary component of the collectionDescription component. Check the axisLabels attribute of the cis:Envelope referenced by the collectionDescription element does not contain a value that does not appear in all of the referenced coverages.

Test type

Conformance

Test /conf/covcoll_offering/coverages-axis-bounds

Requirement 3

/req/covcoll_offering/coverages-axis-bounds
Test purpose

All axes shared by the component coverages shall have the same axisExtent.

Test method

Retrieve a set of CoverageCollectionDescriptions via a DescribeCoverageCollection operation. Inspect all coverages referenced by the covcoll:coverageDescription component and check that all coverages have the same value of axisExtent for all shared axes as described by the cis:Envelope.

Test type

Conformance

Test /conf/covcoll_offering/coverageCollection-unique-identifier

Requirement 4

/req/covcoll_offering/coverageCollection-unique-identifier
Test purpose

Each CoverageCollection resource offered by a WCS server implementing this extension shall specify an identifier that is unique within the scope of that WCS server through their coverageCollectionId identifier

Test method

Check the responses of a GetCapabilities and DescribeCoverageCollection request and ensure all CoverageCollection identifiers are unique.

Test type

Conformance

A.2.  Conformance class: metOcean-observation-specialisation

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metOcean-observation-specialisation
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/metOcean-observation-specialisation
Dependency http://www.opengis.net/spec/OMXML/2.0/req/observation
Test /conf/metOcean-observation-specialisation/structure

Requirement 5

/req/metocean_metOcean-observation-specialisation/structure
Test purpose A metocean: MetOceanObservation instance shall conform to Figure 7, Table 4, Table 5, and Table 6
Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the Observation component and ensure it conforms to Figure 7, Table 4, and Table 5

Test Type

Conformance

Test /conf/metOcean-observation-specialisation/observed-property

Requirement 6

/req/metOcean-observation-specialisation/observed-property
Test purpose

The observed property of the OM_Observation type shall link the WMO code definitions of as GRIB2 table 0.0 “Discipline” e.g. for meteorology http://codes.wmo.int/grib2/codeflag/0.0/_0

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the Observation component and ensure the observedProperty component links to a valid WMO definition as described in GRIB2 table 0.0

Test Type

Conformance

Test /conf/metOcean-observation-specialisation/result-quality

Requirement 7

/req/metOcean-observation-specialisation/result-quality
Test purpose

If the MetOceanObservation contains the optional resultQuality property (from OM_Observation) then that element shall reference the ResultMask by substitution with AbstractDQ_Element.

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the MetOceanObservation component and validate that the element “om:resultQuality” (if not null) property contains the element metocean:ResultMask.

Test type

Conformance

Test /conf/metOcean-observation-specialisation/feature-of-interest

Requirement 8

/req/metOcean-observation-specialisation/feature-of-interest
Test purpose

The ‘featureOfInterest’ property of the MetOceanObservation element shall reference a SimulationProcessDescription element that is an instance of SF_SpatialSamplingPoint (from ISO 19156:2011 Spatial Sampling Features).

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the MetOceanObservation component and validate that the featureOfInterest’ component contains a SimulationProcessDescription element that is an instance of SF_SpatialSamplingPoint (from ISO 19156:2011 Spatial Sampling Features).

Test type

Conformance

Test /conf/metOcean-observation-specialisation/reference-time

Requirement 9

/req/metOcean-observation-specialisation/reference-time
Test purpose

If present the om:NamedValue element shall be used to express the value of the “referenceTime” using the child elements om:name and om:value

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation and check that the use of the property om:parameter conforms to Table 6

Test type

Conformance

Test /conf/metOcean-observation-specialisation/referenceTime-value

Requirement 10

/req/metOcean-observation-specialisation/referenceTime-value
Test purpose

If present the value of om:value shall conform to section 7.5

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation and check that the use of the property om:value conforms to section 7.5

Test type

Conformance

Test /conf/metOcean-observation-specialisation/referenceTime-name

Requirement 11

/req/metOcean-observation-specialisation/referenceTime-name
Test purpose

The attribute gml_id of om:name shall have the value of “referenceTime”

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation and check om:name has the gml_id value of “referenceTime”

Test type

Conformance

Test /conf/metOcean-observation-specialisation/phenomenon-time

Requirement 12

/req/metOcean-observation-specialisation/phenomenon-time
Test purpose

The om:phenomenonTime element value shall conform to section 7.5

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation and check that the use of the property om:phenomenonTime conforms to section 7.5

Test type

Conformance

Test /conf/metOcean-observation-specialisation/valid-time

Requirement 13

/req/metOcean-observation-specialisation/valid-time
Test purpose

An attribute value shall specify an instant in, or duration of, universal chronological time that identifies when information is valid or applicable by referencing gml:TimePeriod

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the om:validTime component and check that it has a property of gml:TimePeriod.

Test type

Conformance

Test /conf/metOcean-observation-specialisation/observation-type

Requirement 14

/req/metOcean-observation-specialisation/observation-type
Test purpose

A specialized observation (e.g. NWPObservation) shall be derived from OM_Observation through the abstract type MetOceanObservation

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure the specialised observation is of type om:OM_ObservationType.

Test type

Conformance

Test /conf/metOcean-observation-specialisation-procedure

Requirement 15

/req/metOcean-observation-specialisation-procedure
Test purpose

The om:procedure element shall contain an instance of “SimulationProcessMetadata

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure that the om:procedure component contains the metocean:SimulationProcessMetadata component.

Test type

Conformance

A.3.  Conformance class: simulation-process-metadata

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/simulation-process-metadata
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/simulation-process-metadata
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/metOcean-observation-specialisation
Dependency http://www.opengis.net/spec/OMXML/2.0/req/observation
Test conf/simulation-process-metadata/structure

Requirement 16

/req/simulation-process-metadata/structure
Test purpose To ensure that metocean: SimulationProcessDescription component shall conform to Figure 8, Table 6, Table 10, Table 11, Table 12, Table 13, Table 14, Table 15, and the XML schema being part of this standard.
Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the SimulationProcessDescription component and ensure it conforms to Figure 8, Table 6, Table 10, Table 11, Table 12, Table 13, Table 14, Table 15, and the XML schema being part of this standard.

Test type

Conformance

Test /conf/simulation-process-metadata/metadata

Requirement 17

req/simulation-process-metadata/metadata
Test purpose

SimulationProcessMetadata shall have a set of properties each using gml:reference to link to the relevant controlled registers e.g. WMO.

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure that the SimulationProcessMetadata component contains links via gml:reference to a set of controlled registers.

Test type

Conformance

Test /conf/simulation-process-metadata/fixedSurfaceType

Requirement 18

/req/simulation-process-metadata/fixedSurfaceType
Test purpose

If the fixed surface type has no vertical dependency (e.g. Ground, Max Wind Level) then the cis:regularAxis element shall be used with the lowerBound and upperBound attributes set to the value of 1 and the resolution set to 0.

Test purpose

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure that any fixed surface type that has not vertical dependency has the lowerBound and upperBound attributes set to the value of 1 and the resolution set to 0

Test type

Conformance

Test /conf/simulation-process-metadata/footprint

Requirement 19

req/simulation-process-metadata/footprint
Test purpose

The shape property of the sampledFeature shall contain the component Footprint that will define the horizontal domain of the simulation model.

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure that the sams:shape component contains a Footprint component (see Table 6) that describes the domain of the simulation.

Test type

Conformance

A.4.  Conformance class: result-mask

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/result-mask
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/result-mask
Dependency http://www.opengis.net/spec/CIS/1.1/
Test /conf/result-mask/structure

Requirement 20

/req/result-mask/structure
Test purpose Ensure a metocean:ParameterMask instance shall conform to Figure 9, Table 16, and Table 17.
Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation Inspect the NWPObservation component and ensure it conforms to Figure 9, Table 16, and Table 17.

Test type

Conformance

Test /conf/result-mask/mask-extension

Requirement 21

/req/result-mask/mask-extension
Test purpose

The ResultMask shall through the specialisation of gmd:AbstractDQ_Result (that has a property gmd:result), reference a ParameterMask that contains the property TimeHeight Mask of type cis:GeneralGridCoverageType

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure that the component ParameterMask is of type cis:GeneralGridCoverageType

Test type

Conformance

Test /conf/result-mask/getCapabilities-response-conformance-class-in-profile

Requirement 22

/req/result-mask/getCapabilities-response-conformance-class-in-profile
Test purpose

A WCS service implementing this extension shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/result-mask

Test method

Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document to ensure a server that supports a ResultMask has an ows:profile element of

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/result-mask

Test type

Conformance

A.5.  Conformance class: getCapabilities-metOcean-extension

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-metOcean-extension
Dependency http://www.opengis.net/doc/IS/WCS/2.1#clause:8.2
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverages
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-collections
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-groups
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/covcoll-offering
Test /conf/getCapabilities-metOcean-extension/mandatory

Requirement 23

/req/getCapabilities-metOcean-extension/mandatory
Test purpose

A WCS service implementing this profile shall support at least one of the following conformance classes;-

/conf/getCapabilities-coverageSummary

/conf/getCapabilities-coverageCollectionSummary

/conf/getCapabilities-groups

Test method

Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document to ensure a server that supports this extension has at least one of. ows:profile element of

/conf/getCapabilities-coverageSummary

/conf/getCapabilities-coverageCollectionSummary

/conf/getCapabilities-groups

Test type

Conformance

Test /conf/getCapabilities-extension/response-extension-identification

Requirement 24

/req/getCapabilities-metOcean-extension/response-extension-identification
Test purpose

A WCS service implementing this profile shall indicate which GetCapabilities requirements classes are supported using the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean

Test method

Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document to ensure a server that supports this MetOcean WCS extension has a an ows:Profile element of:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean

Test type

Conformance

Test /conf/getCapabilities-metOcean-extension/response-conformance-class-in-profile

Requirement 25

/req/getCapabilities-metOcean-extension/response-conformance-class-in-profile
Test purpose

A WCS service implementing this profile shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean

Test method

Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document to ensure a server that supports this MetOcean WCS extension has a an ows:Profile element of:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean

Test type

Conformance

Test /conf/getCapabilities-metOcean-extension/response-countDefault

Requirement 26

/req/getCapabilities-metOcean-extension/response-countDefault
Test purpose

If the response to a successful GetCapabilities request contains an ows:Constraint element in its ows:OperationsMetadata element then its name attribute shall hold a value as defined in Table 22 and the XML Schema being part of this standard.

Test method

Send a valid GetCapabilities request to the server under test, check that its ows:OperationsMetadata element contains an ows:Constraint element, as defined in the places referenced.

Test type

Conformance

A.6.  Conformance class: getCapabilities-coverageSummary

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageSummary
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-coverageSummary
Dependency http://www.opengis.net/doc/IS/WCS/2.1#clause:8.2
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Test /conf/getCapabilities-coverageSummary/response-structure

Requirement 27

/req/getCapabilities-coverageSummary/response-structure
Test purpose

The response to a successful GetCapabilities containing a metocean:CoverageSummary section shall consist of a data structure as defined in Figure 11, Table 18, Table 19, Table 20, Table 21, and the XML Schemas being part of this standard.

Test method

Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document and check that the data structure conforms to Figure 11, Table 18, Table 19, Table 20, Table 21, and the XML Schemas being part of this standard.

Test type

Conformance

Test /conf/getCapabilities-coverageSummary/request-sections

Requirement 28

/req/getCapabilities-coverageSummary/request-sections
Test purpose

The GetCapabilities request shall accept an ows:Sections element with the value defined in OWS Common and “MetoceanCoverageSummary” so ensuring only a list of metocean:CoverageSummary elements

Test method

Send a valid GetCapabilities request containing a sections element and this element contains section elements with the values defined in OWS Common, or “MetoceanCoverageSummary”, to the server under test, check the result consists of an XML document of type Capabilities and the appropriate components, as defined in the places referenced.

Test type

Conformance

Test /conf/getCapabilities-coverageSummary/response-coverages

Requirement 29

/req/getCapabilities-coverageSummary/response-coverages
Test purpose

In response to a successful GetCapabilities request containing a CoverageSummary section each Coverage identifier listed shall refer to a Coverage offered by the server.

Test method

Send a valid GetCapabilities request to the service under test. If a metocean:CoverageSummary section is contained in the response then send, for each wcs:CoverageId, a valid DescribeCoverage request. Check that none of these requests results in an exception. Test passes if all checks are successful.

Test type

Conformance

Test /conf/getCapabilities-coverageSummary/response-coverage-no-duplicates

Requirement 30

/req/getCapabilities-coverageSummary/response-coverage-no-duplicates
Test purpose

A WCS server implementing this profile shall not offer any duplicate coverages

Test method

Send a valid GetCapabilities request to the service under test. If a metocean:CoverageSummary section is contained in the response then check the response to ensure there are no duplicate wcs:CoverageId(s). Test passes if all checks are successful.

Test type

Conformance

Test /conf/getCapabilities-coverageSummary/response-extension-identification

Requirement 31

/req/getCapabilities-coverageSummary/response-extension-identification
Test purpose

A WCS service implementing this profile shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed. http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageSummary

Test type

Conformance

A.7.  Conformance class: GetCapabilities-coverageCollectionSummary

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageCollectionSummary
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-coverageCollectionSummary
Dependency http://www.opengis.net/doc/IS/WCS/2.1#clause:8.2
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Test /conf/getCapabilities-coverageCollectionSummary/response-structure

Requirement 32

/req/getCapabilities-coverageCollectionSummary/response-structure
Test purpose

/req/getCapabilities-coverageCollectionSummary/response-structure

The response to a successful GetCapabilities responses shall consist of a data structure as defined in Figure 12, Table 18, Table 19, Table 21, Table 22, Table 24, and the XML Schemas being part of this standards.

Test method

Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document and check that the data structure conforms to Figure 12, Table 18, Table 19, Table 21, Table 22, Table 24, and the XML Schemas being part of this standards.

Test type

Conformance

Test /req/getCapabilities-coverageCollectionSummary/request-sections

Requirement 33

/req/getCapabilities-coverageCollectionSummary/request-sections
Test purpose

The GetCapabilities request shall accept an ows:Section element with the value defined in OWS Common and “MetoceanCoverageCollectionSummary” so ensuring only a list of metocean:CoverageCollectionSummary elements

Test method

Send a valid GetCapabilities request containing a sections element (making sure this element contains section elements with the values defined in OWS Common, or “MetoceanCoverageCollectionSummary”), to the server under test. Check that the result consists of an XML document of type Capabilities and the appropriate components, as defined in the places referenced.

Test type

Conformance

Test /conf/getCapabilities-coverageCollection/Summary/response-coverageCollections

Requirement 34

/req/getCapabilities-coverageCollection/Summary/response-coverageCollections
Test purpose

In response to a successful GetCapabilities request containing a CoverageCollectionSummary section each CoverageCollection identifier listed shall refer to a CoverageCollection offered by the server.

Test method

Send a valid GetCapabilities request to the service under test. If a metocean:CoverageCollectionSummary section is contained in the response then send, for each covcoll: CoverageCollectionId, a valid DescribeCoverageCollection request. Check that none of these requests results in an exception. Test passes if all checks are successful.

Test type

Conformance

Test /conf/getCapabilities-coverageCollectionSummary/response-coverageCollections-no-duplicates

Requirement 35

/req/getCapabilities-coverageCollectionSummary/response-coverageCollections-no-duplicates
Test purpose

A WCS server implementing this profile shall not offer any duplicate coverageCollections

Test method

Send a valid GetCapabilities request to the service under test. If a metocean:CoverageCollectionSummary section is contained in the response then check the response to ensure there are no duplicate covcoll:CoverageCollectionId(s). Test passes if all checks are successful.

Test type

Conformance

Test /conf/getCapabilities-coverageCollectionSummary/response-extension-identification

Requirement 36

req/getCapabilities-coverageCollectionSummary/response-extension-identification
Test purpose

A WCS service implementing this profile shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean/CoverageCollectionSummary

Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed.

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean/CoverageCollectionSummary

Test type

Conformance

Test /conf/getCapabilities-coverageCollectionSummary/response-operationsMetadata

Requirement 37

/req/getCapabilities-coverageCollectionSummary/response-operationsMetadata
Test purpose

The Operations­Meta­data com­pon­ent shall contain four Operat­ion instanc­es with case-sensitive name values “Get­Capab­il­ities”, “DescribeCoverage”, “GetCoverage”, and “DescribeCoverageCollection”.

Test method

Send a valid GetCapabilities request to the server under test, check that its ows:OperationsMetadata element contains the case-sensitive name values: “Get­Capab­il­ities”, “DescribeCoverage”, “GetCoverage”, and “DescribeCoverageCollection”.

Test type

Conformance

A.8.  Conformance class: GetCapabilities-groups

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-groups
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/getCapabilities-groups
Dependency http://www.opengis.net/doc/IS/WCS/2.1#clause:8.2
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/getCapabilities
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageSummary
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/getCapabilities-coverageCollectionSummary
Test /conf/getCapabilities-groups/response-structure

Requirement 38

/req/getCapabilities-groups/response-structure
Test purpose

The response to a successful GetCapabilities responses shall consist of a data structure as defined in Figure 13, Table 18, Table 19, Table 20, Table 21, Table 22, Table 24, Table 25, Table 26, Table 27, Table 28, and the XML Schemas being part of this standards.

Test method

Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document and check that the data structure conforms to Figure 13, Table 18, Table 19, Table 20, Table 21, Table 22, Table 24, Table 25, Table 26, Table 27, Table 28, and the XML Schemas being part of this standards.

Test type

Conformance

Test /conf/getCapabilities-groups/request-sections

Requirement 39

/req/getCapabilities-groups/request-sections
Test purpose

If a GetCapabilities request contains a ows:Section element then this element shall contain ows:Section elements with the values defined in OWS Common and “MetoceanGroups”.

Test method

Send a valid GetCapabilities request containing a sections element (and this element contains section elements with the values defined in OWS Common, or “MetoceanGroups”), to the server under test. Check that the result consists of an XML document of type Capabilities and the appropriate components, as defined in the places referenced.

Test type

Conformance

Test /conf/getCapabilities-groups/response-coverages

Requirement 40

req/getCapabilities-groups/response-coverages
Test purpose

In response to a successful GetCapabilities request containing a MetoceanCoverageSummary section each Coverage identifier listed shall refer to a Coverage offered by the server.

Test method

Send a valid GetCapabilities request to the service under test. If a metocean:SimulationCoverageSummary section is contained in the response then send, for each wcs:CoverageId, a valid DescribeCoverage request. Check that none of these requests results in an exception. Test passes if all checks are successful.

Test type

Conformance

Test /conf/getCapabilities-groups/response-coverageCollections

Requirement 41

/req/getCapabilities-groups/response-coverageCollections
Test purpose

In response to a successful GetCapabilities request containing an OfferedCollections section each coverageCollection identifier listed shall refer to a CoverageCollection offered by the server.

Test method

Send a valid GetCapabilities request to the service under test. If a metocean:SimulationMember section is contained in the response then send, for each covcoll: CoverageCollectionId, a valid DescribeCoverageCollection request. Check that none of these requests results in an exception. Test passes if all checks are successful.

Test type

Conformance

Test /conf/getCapabilities-groups/response-coverage-no-duplicates

Requirement 42

/req/getCapabilities-groups/response-coverage-no-duplicates
Test purpose

A WCS server implementing this profile shall not offer any duplicate coverages

Test method

Send a valid GetCapabilities request to the service under test. If a metocean:SimulationCoverageSummary section is contained in the response then check the response to ensure there are no duplicate wcs:CoverageId(s). Test passes if all checks are successful.

Test type

Conformance

Test /conf/getCapabilities-groups/response-coverageCollections-no-duplicates

Requirement 43

/req/getCapabilities-groups/response-coverageCollections-no-duplicates
Test purpose

A WCS server implementing this profile shall not offer any duplicate coverageCollections

Test method

Send a valid GetCapabilities request to the service under test. If a metocean:SimulationMember section is contained in the response then check the response to ensure there are no duplicate covcoll:CoverageCollectionId(s). Test passes if all checks are successful.

Test type

Conformance

Test /conf/getCapabilities-groups/response-extension-identification

Requirement 44

/req/getCapabilities-groups/response-extension-identification
Test purpose

A WCS service implementing this profile shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean/Groups

Test method

Determine the list of supported extensions via a valid GetCapabilities request by checking that the extension required is listed.

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/metocean/Groups

Test type

Conformance

Test /conf/getCapabilities-groups/response-operationsMetadata

Requirement 45

/req/getCapabilities-groups/response-operationsMetadata
Test purpose

The Operations­Meta­data com­pon­ent shall contain four Operat­ion instanc­es with case-sensitive name values “Get­Capab­il­ities”, “DescribeCoverage”, “GetCoverage”, and “DescribeCoverageCollection”.

Test method

Send a valid GetCapabilities request to the server under test, check that its ows:OperationsMetadata element contains case-sensitive name values “Get­Capab­il­ities”, “DescribeCoverage”, “GetCoverage”, and “DescribeCoverageCollection”.

Test type

Conformance

A.9.  Conformance class: DescribeCoverageCollection

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection
Dependency [OGC 06-121r9] Clause 7 (http://www.opengis.net/doc/OWS/2.0/clause/7)
Dependency OGC06-121r9] Clause 8 (http://www.opengis.net/doc/OWS/2.0/clause/8)
Dependency http://www.opengis.net/spec/conf/covcoll_offering
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-structure
Dependency [OGC 06-121r9] Clause 7 (http://www.opengis.net/doc/OWS/2.0/clause/7)
Test /conf/describeCoverageCollection/request-structure

Requirement 46

/req/describeCoverageCollection/request-structure
Test purpose

The DescribeCoverageCollection request structure is derived from RequestBase, and extended with a non-empty list of coverage collection identifiers. A WCS server implementing this extension shall accept requests on the DescribeCoverageCollection operation that conform to the structure specified in Figure 14 and Table 29.

Test method

Send DescribeCoverageCollection requests with valid and invalid request structure. Pass test if appropriate valid results or exceptions, resp., are delivered.

Test type

Conformance

Test /conf/describeCoverageCollection/request-valid-identifier

Requirement 47

/req/describeCoverageCollection/request-valid-identifier
Test purpose

Each value provided in a coverageCollectionId element within a DescribeCoverageCollection request shall identify a CoverageCollection resource offered by the WCS server.

Test method

Check that for every coverageCollectionID, sent via a valid DescribeCoverageCollection request, that a valid collection is returned by the server.

Test type

Conformance

Test /conf/describeCoverageCollection/response-structure

Requirement 48

/req/describeCoverageCollection/response-structure
Test purpose

A WCS server implementing this extension shall provide a response to a successful DescribeCoverageCollection request consisting of a CoverageCollectionDe­script­ions element, as described in Figure 15, Table 29, Table 30, Table 31, Table 32, Table 33, Table 34, and Table 35.

Test method

Send a DescribeCoverageCollection request to the server under test, check that the result consists of a covcoll:CoverageCollectionDescriptions structure.

Test type

Conformance

Test /conf/describeCoverageCollection/response-description-containment

Requirement 49

/req/describeCoverageCollection/response-description-containment
Test purpose

The element CoverageCollectionDescription shall contain at least one wcs:CoverageSummary element.

Test method

For each CoverageCollectionId send a valid DescribeCoverageCollection request to the server under test. Check that each CoverageCollectionDescription contains at least one wcs:CoverageSummary element.

Test type

Conformance

Test /conf/describeCoverageCollection/response-structure-list

Requirement 50

/req/describeCoverageCollection/response-structure-list
Test purpose

The response to a successful DescribeCoverageCollection request shall comprise a list containing one CoverageCollectionDescription element for each of the requested CoverageCollection resources.

Test method

Send DescribeCoverageCollection request with “n” Collection Coverage identifiers and check that the response document contains “n” covcoll:CoverageCollectionDescription elements.

Test type

Conformance

Test /conf/describeCoverageCollection/response-no-duplicates

Requirement 51

/req/describeCoverageCollection/response-no-duplicates
Test purpose

A coverage offering specified in a given CoverageCollection shall be listed once, and only once, in the associated CoverageCollectionDescription element.

Test method

Send a DescribeCoverageCollection request and check the response for any duplication.

Test type

Conformance

Test /conf/describeCoverageCollection/response-count

Requirement 52

/req/describeCoverageCollection/response-count
Test purpose

In the response to a successful DescribeCoverageCollection request the sum of wcs:CoverageSummary elements shall be less or equal to the minimum of the value of the CountDefault element and the count parameter if present in the request. If none of both are present all matching elements shall be reported.

Test method

Send a valid DescribeCoverageCollection request and check the response to ensure that the number of CoverageCollectionDescription elements is equal to or less than the CountDefault element and the count parameter if present

Test type

Conformance

Test /req/describeCoverageCollection/response-list-size

Requirement 53

/req/describeCoverageCollection/response-list-size
Test purpose

The response to a successful DescribeCoverageCollection request with “n” CoverageCollection identifiers shall contain a CoverageCollectionDescriptions element consisting of “n” coverageCollectionDescription items as specified in Figure 15, Table 31, Table 32, and Table 33.

Test method

Send a valid DescribeCoverageCollection request for “n” coverageCollection identifiers and check that the response document has “n” CoverageCollectionDescription elements.

Test type

Conformance

Test /req/describeCoverageCollection/coverage-subtype

Requirement 54

/req/describeCoverageCollection/coverage-subtypes
Test purpose

The value CoverageSubtype element shall be restricted to only those values enumerated in Table 35 according to its’ type.

Test method

Send a valid DescribeCoverageCollection request to the server under test. Check that each Coverage listed contains the corresponding value in its WCS::CoverageSubtype element.

A.10.  Conformance class: DescribeCoverageCollection-protocol-binding

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection-protocol-binding
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-protocol-binding
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-get-kvp
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-post-xml
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-soap
Test /conf/describeCoverageCollection-protocol-binding

Requirement 55

/req/describeCoverageCollection-protocol-binding
Test purpose /req/describeCoverageCollection-protocol-binding Implementations of the http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection class shall support at least one of the requirements classes: http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-get-kvp http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-post-xml http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-soap
Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed.

Test type

Conformance

A.11.  Conformance class: DescribeCoverageCollection-get-kvp

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection-get-kvp
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-get-kvp
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection
Dependency WCS 2.0 protocol extension GET/KVP [OGC 09-147r3].
Test /conf/describeCoverageCollection-get-kvp/mandatory

Requirement 56

/req/describeCoverageCollection-get-kvp/mandatory
Test purpose

Implementations of the DescribeCoverageCollection extension that supports the DescribeCoverageCollection-get-kvp/mandatory requirements class shall support the WCS 2.1 protocol extension GET/KVP [OGC 09-147r3].

Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed.

Test type

Conformance

Test /conf/describeCoverageCollection-get-kvp/conformance-class-in-profile

Requirement 57

/req/describeCoverageCollection-get-kvp/conformance-class-in-profile
Test purpose

Implementations of this DescribeCoverageCollection extension that support the DescribeCoverageCollection-get-kvp requirements class shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-get-kvp

Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed.

Test type

Conformance

Test /conf/describeCoverageCollection-get-kvp/describeCoverageCollection-request-structure

Requirement 58

/req/describeCoverageCollection-get-kvp/describeCoverageCollection-request-structure
Test purpose

A WCS server implementing both this get-kvp protocol binding extension shall encode the DescribeCoverageCollection operation request as specified in Table 36.

Test method

Send a valid get-kvp DescribeCoverageCollection request as defined. Check that the response is not an exception Check proper response.

Test type

Conformance

Test /conf/describeCoverageCollection-get-kvp/describeCoverageCollection-request-parameter

Requirement 59

/req/describeCoverageCollection-get-kvp/describeCoverageCollection-request-parameter
Test purpose

The request parameter in the DescribeCoverageCollection request parameter of a DescribeCoverageCollection request shall be indicated as follows: request=DescribeCoverageCollection

Test method

Send a valid get-kvp DescribeCoverageCollection request as defined. Check that the response is not an exception

Test type

Conformance

Test /conf/describeCoverageCollection-get-kvp/describeCoverageCollection-request-coverageCollectionId

Requirement 60

/req/describeCoverageCollection-get-kvp/describeCoverageCollection-request-coverageCollectionId
Test purpose

The coverageCollectionId parameter in the DescribeCoverageCollection request parameter of a DescribeCoverageCollection request shall be indicated as follows, for parameter values v1, …, vn: coverageCollectionId=v1,…,vn

Test method

Send a valid get-kvp DescribeCoverageCollection request as defined. Check that the response is not an exception

Test type

Conformance

Test /conf/describeCoverageCollection-get-kvp/describeCoverageCollection-request-SetCount

Requirement 61

/req/describeCoverageCollection-get-kvp/describeCoverageCollection-request-SetCount
Test purpose

The count parameter of a DescribeCoverageCollection request shall be indicated as follows for a positive integer I count=I

Test method

Submit a DescribeCoverageCollection request and check the number of listed coverage identifier is less than or equal to the count parameter.

Test type

Conformance

A.12.  Conformance class: DescribeCoverageCollection-post-xml

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection-post-xml
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-post-xml
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection
Dependency WCS 2.1 protocol extension XML-POST [OGC 09-148r1]
Test /conf/describeCoverageCollection-post-xml/mandatory

Requirement 62

/req/describeCoverageCollection-post-xml/mandatory
Test purpose

Implementations of this DescribeCoverageCollection extension that support the DescribeCoverageCollection post-xml requirements class shall support the WCS 2.1 protocol extension XML-POST [OGC 09-148r1].

Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed.

Test type

Conformance

Test /conf/describeCoverageCollection-post-xml/conformance-class-in-profile

Requirement 63

/req/describeCoverageCollection-post-xml/conformance-class-in-profile
Test purpose

Implementations of this DescribeCoverageCollection extension that support the DescribeCoverageCollection-post-xml requirements class shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-post-xml

Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed.

Test type

Conformance

Test /conf/describeCoverageCollection-post-xml/describeCoverageCollection-request-structure

Requirement 64

/req/describeCoverageCollection-post-xml/describeCoverageCollection-request-structure
Test purpose

A WCS server implementing the XML/POST protocol binding extension shall encode the request body of the DescribeCoverageCollection operation using an XML document of type covcoll:DescribeCoverageCollection aa described in Table 36.

Test method

Send syntactically legal and illegal GetCoverage request to server under test, verify that the server responds appropriately.

Test type

Conformance

Test /conf/describeCoverageCollection-post-xml/describeCoverageCollection-request-SetCount

Requirement 65

/req/describeCoverageCollection-post-xml/describeCoverageCollection-request-SetCount
Test purpose

The count parameter of a DescribeCoverageCollection request shall be indicated as follows for a positive integer I count=I

Test method

Submit a DescribeCoverageCollection request and check the number of listed coverage identifier is less than or equal to the count parameter.

Test type

Conformance

A.13.  Conformance class: DescribeCoverageCollection-soap

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverageCollection-soap
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-soap
Dependency http://www.opengis.net/spec/WCS_protocol-binding_soap/1.0/conf/soap
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection
Dependency http://www.opengis.net/spec/WCS_protocol-binding_soap/1.0/conf/post-xml
Test /conf/describeCoverageCollection-soap/mandatory

Requirement 66

/req/describeCoverageCollection-soap/mandatory
Test purpose

Implementations of this DescribeCoverageCollection extension that support the DescribeCoverageCollection soap requirements class shall support the WCS 2.0 protocol extension SOAP [OGC 09-149r1]

Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed.

Test type

Conformance

Test /conf/describeCoverageCollection-soap/conformance-class-in-profile

Requirement 67

/req/describeCoverageCollection-soap/conformance-class-in-profile
Test purpose

Implementations of this DescribeCoverageCollection extension that support the DescribeCoverageCollection-soap requirements class shall include the following URI in a Profile element in the ServiceIdentification in a GetCapabilities response:

http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverageCollection-soap

Test method

Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed.

Test type

Conformance

Test /conf/describeCoverageCollection-soap/describeCoverageCollection-request-structure

Requirement 68

/req/describeCoverageCollection-soap/describeCoverageCollection-request-structure
Test purpose

A DescribeCoverageCollection request shall contain exactly one Body element containing exactly one DescribeCoverageCollection element.

Test method

Send otherwise valid soap DescribeCoverageCollection requests containing:

  • exactly one Body element containing exactly one DescribeCoverageCollection element;

  • exactly one Body element containing more than one DescribeCoverageCollection element;

  • exactly one Body element containing no DescribeCoverageCollection element;

  • more than one Body element;

  • without a Body element;

Pass test if appropriate valid results or exceptions, resp., are delivered.

Test type

Conformance

Test /conf/describeCoverageCollection-soap/describeCoverageCollection-response-structure

Requirement 69

/req/describeCoverageCollection-soap/describeCoverageCollection-response-structure
Test purpose

In the response to a successful DescribeCoverageCollection request, the SOAP Envelope shall contain exactly one Body element

Test method

Send a valid soap DescribeCoverageCollection request to the server under test. Check the response for whether the condition is fulfilled.

Test type

Conformance

Test /conf/describeCoverageCollection-soap/describeCoverageCollection-Set-wdsl

Requirement 70

/req/describeCoverageCollection-soap/describeCoverageCollection-Set-wdsl
Test purpose

For the service under test, retrieve the WSDL description and issue requests which make use of this service definition. Check that the service can be addressed and that queries can be retrieved properly.

Test method

For the service under test, retrieve the WSDL description and issue requests which make use of this service definition. Check that the service can be addressed and that queries can be retrieved properly.

Test type

Conformance

A.14.  Conformance class: metoceanDescribeCoverage

Conformance Class
http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/conf/describeCoverage
Requirements http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/describeCoverage
Dependency [OGC06-121r9] (http://www.opengis.net/doc/OWS/2.0/clause/8)
Dependency http://www.opengis.net/spec/WCS_application-profile_metocean/1.0/req/metOcean-observation-specialisation
Dependency http://www.opengis.net/spec/WCS/2.1/conf/core/wcsServiceMetadata-contents
Dependency http://www.opengis.net/spec/WCS/2.1/./conf/core/coverageSummary
Dependency [OGC09-1110r7] (http://www.opengis.net/doc/wcs/2.1/clause/8.3)
Test /conf/describeCoverage/structure

Requirement 71

/req/describeCoverage/structure
Test purpose

The metocean:DescribeCoverage instance shall conform to Figure 16, Table 37, and Table 38.

Test method

Retrieve a DescribeCoverage document via a DescribeCoverage operation. Inspect the document to ensure that the MetoceanGroup conforms to Figure 16, Table 37, and Table 38.

Test type

Conformance

Test /conf/describeCoverage/metocean-coverage-metadata-property

Requirement 72

/req/describeCoverage/metocean-coverage-metadata-property
Test purpose

A MetOceanMetadata instance shall have a specialised observation derived from OM:Observation through the abstract class MetOceanObservation

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure the specialised observation is of type om:OM_ObservationType.

Test type

Conformance

Test /conf/dDescribeCoverage/rangeType

Requirement 73

/req/describeCoverage/rangeType
Test purpose

The cis:rangeType shall reference swe:DataRecord

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure the requirement is fulfilled.

Test type

Conformance

Test /conf/describeCoverage/domainType

Requirement 74

/req/describeCoverage/domainType
Test purpose

The element cis:DomainSet shall reference the element cis:generalGrid

Test method

Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the document to ensure the requirement is fulfilled.

Test type

Conformance

A.15.  Example of a MetOceanDescribeCoverage response

DataMask

Figure A.1


Annex B
(informative)
Revision History

Date Release Editor Primary clauses modified Description
09-11-2016 1.0 Pete Trevelyan,Paul Hershberg All Created
15-02-2017 Chris Little All Formatting & typos accepted
01-03-2017 Pete Trevelyan/Marie-Françoise Voidrot All Comments and corrections
01-02-2018 Pete Trevelyan/Paul Hershberg/Steve Olson All

Requirements numbered

Service definition for Service Instances

Extra examples

01-02-2018 7 Pete Trevelyan

Update schemas to WCS2.1

Amend title to reflect it is part0 of the MetOcean profile


Bibliography