I. Abstract
This document defines a MetOcean Metadata profile consisting of an information model and an XML encoding for the following three operations:
-
GetCapabilities - a WCS server describes the services and operations via a GetCapabilities document.
-
DescribeCoverage - a WCS server describes the contents of a specific coverage via a DescribeCoverage document.
-
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):
- Met Office, UK
- National Weather Service (NOAA), US
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:
-
A MetOcean application profile that outlines the MetOcean specific metadata to be part of the DescribeCoverage response.
-
An amended GetCapabilities operation whose response provides a means of grouping together coverages and coverage collections such that the response document can reflect a user defined hierarchy. A client application may request this information about CoverageCollection resources in a GetCapabilities response by specifying the token, in the Sections element of the GetCapabilities request (See section 9.5, 9.6, 9.7 for details).
-
A new operation “DescribeCoverageCollection” that is used to list the coverages contained within a “CoverageCollection” including the respective bindings.
-
The conformance classes that describe the CoverageCollection data model.
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
-
WCS Range Subsetting Extension, version 1.0.0, OGC 12-040
-
WCS Scaling Extension, version 1.0.0, OGC 12-039
-
WCS Interpolation Extension, version 1.0.0, OGC 12-049
-
WCS CRS Extension, version 1.0, OGC 11-053r1
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.
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 “RangeSet” 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] DataRecord. 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.
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
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.
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.
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.
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::offeredCoverage | Set of coverages offered by this service | wcs::OfferedCoverage | zero or more (optional) |
wcs::serviceMetadata | Information specific to the WCS service as a whole | wcs::ServiceMetadata | one (mandatory) |
offeredCoverageCollection | Set of CoverageCollection resources offered by this service | OfferedCoverageCollection | zero 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:coverageCollectionId | Identifier of a CoverageCollection offered by this service | NCName | one (mandatory) |
cis:Envelope | The 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:AxisExtent | one (mandatory) |
wcs:offeredCoverage | Coverages offered within this CoverageCollection | WCS::OfferedCoverage | zero 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” |
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:phenomenonTime | This parameter is used indicate the time period for which the simulation is valid | TM_Object | One (mandatory) |
om:resultTime | issue time (e.g. result time) i.e. the time when the entire NWP model output was published | TM_Instant | One (mandatory) |
om:validTime | The 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:procedure | The 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:resultQuality | A 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:featureOfInterest | The 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:observedProperty | The 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 | One (mandatory) (optional as om:procedure is nillable) |
om:parameter | This is used to denote the simulation reference time by use of xsi:type=”gml:TimeInstantType | om: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 |
---|---|---|---|
observedParameters | The 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:shape | SimulationProcessDescription 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 |
---|---|---|---|
horizontalDomain | The horizontal domain (or its projection) on the ground i.e. the footprint of the simulation | gml: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:context | The horizontal domain (or its projection) on the ground i.e. the footprint of the simulation | SimulationProcessMetadata | 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:value | the 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. |
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 |
---|---|---|---|
discipline | This 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) |
typeOfData | A 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) |
significanceOfReferenceTime | Defines the meaning of “Reference Time (reference WMO GRIB2 table 1.2) | SignificanceOfReferenceTimeCode | zero or one (optional) |
originatingCentre | National and international originating Centre’s (this will reference WMO GRIB2 table 0) | OriginatingCentreCode | zero or one (optional) |
productionStatusOfData | The 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) |
typeOfCalendar | The 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) |
fixedSurfaceTypesAndUnits | The 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 Products | Meteorological products | http://codes.wmo.int/grib2/codeflag/0.0/_1 |
Hydrological Products | Hydrological Products | http://codes.wmo.int/grib2/codeflag/0.0/_1 |
Land Surface Products | Land Surface Products | http://codes.wmo.int/grib2/codeflag/0.0/_2 |
Space products | Space products | http://codes.wmo.int/grib2/codeflag/0.0/_3 |
Oceanographic products | Oceanographic 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 Products | Analysis Products | http://codes.wmo.int/grib2/codeflag/1.4 |
Forecast Products | Forecast Products | http://codes.wmo.int/grib2/codeflag/1.4 |
Analysis and Forecast Products | Analysis and Forecast Products | http://codes.wmo.int/grib2/codeflag/1.4 |
Control Forecast Products | Control Forecast Products | http://codes.wmo.int/grib2/codeflag/1.4 |
Perturbed Forecast Products | Perturbed Forecast Products | http://codes.wmo.int/grib2/codeflag/1.4 |
Control and Perturbed Forecast Products | Control and Perturbed Forecast Products | http://codes.wmo.int/grib2/codeflag/1.4 |
Processed Satellite Observations | Processed 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 |
---|---|---|
Analysis | The reference time of the analysis | http://codes.wmo.int/grib2/codeflag/1.2 |
Start of Forecast | All forecast times are relative to this Reference time | http://codes.wmo.int/grib2/codeflag/1.2 |
Verifying Time of Forecast | The reference time is used to denote the validity time of the forecast | http://codes.wmo.int/grib2/codeflag/1.2 |
Observation Time | The 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 Products | Operational Products | http://codes.wmo.int/grib2/codeflag/1.3 |
Operational Test Products | Operational Test Products | http://codes.wmo.int/grib2/codeflag/1.3 |
Research Products | Research Products | http://codes.wmo.int/grib2/codeflag/1.3 |
Re-Analysis Products | Re-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 |
---|---|---|
Gregorian | Gregorian | http://codes.wmo.int/grib2/codeflag/1.6 |
360-day | 360-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 Gregorian | Proleptic 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 |
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:result | The ResultMask specializes AbstractDQ_Element that has a the property gmd:result containing ParameterMask, by specializing gmd:AbstractDQ_Result | ParameterMask | 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 |
---|---|---|---|
timeHeightMask | A 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 |
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: |
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:Extension | Extends 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
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
metocean:name | A meaningful name that gives identity to the group | NCName | zero or one (optional) |
metocean:serviceInstance | The service address of the server that will serve the coverages/coverageCollection | ows:DCP | zero or one (optional) |
ows:metadata | An extension point for any additional metadata | ows:abstractMetadata | zero or one (optional) |
metocean:coverageSummary | The summary of the coverages listed in the GetCapabilities response. | metocean:CoverageSummary | one 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:coverageId | Identifier of a coverage offered by the service on hand | NCName | one |
cis:Envelope | The 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:metadata | An extension point for any additional metadata | ows:abstractMetadata | zero 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 |
---|---|---|---|
Metadata | Reference to more metadata about this coverage | OWS Common:: Metadata | zero or one (optional) |
referenceTime | The analysis time i.e. the start or “reference time” of the simulation process. | gml:timePosition | zero or one (optional) |
referenceTimeAxis | The 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 |
---|---|---|---|
CountDefault | CountDefault Default value for the count parameter defined for DescribeCoverageCollection requests. | Integer greater than or equal to zero | zero 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: |
Requirement 37 | /req/getCapabilities-coverageCollectionSummary/response-operationsMetadata The OperationsMetadata component shall contain four Operation instances with case-sensitive name values “GetCapabilities”, “DescribeCoverage”, “GetCoverage”, and “DescribeCoverageCollection”. |
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
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
Name | A meaningful name that gives identity to the group | NCName | zero or one (optional) |
serviceInstance | The service address of the server that will serve the coverages/coverageCollections | anyURI | zero or one (optional) |
ows:metadata | An extension point for any additional metadata | ows:abstractMetadata | zero or one (optional) |
metocean:coverageCollectionSummary | The summary of the coverages listed in the GetCapabilities response. | covcoll:CoverageCollectionSummary | one or more (mandatory) |
Table 24 — COVCOLL::CoverageCollectionSummary properties
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
covcoll:coverageCollectionId | Identifier of a CoverageCollection offered by this service | NCName | one (Mandatory) |
cis:Envelope | The 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:metadata | An extension point for any additional metadata | ows: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 OperationsMetadata component shall contain four Operation instances with the case-sensitive name values: “GetCapabilities”, “DescribeCoverage”, “GetCoverage”, and “DescribeCoverageCollection”. |
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
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
Name | A meaningful name that gives identity to the group | NCName | zero or one (optional) |
serviceInstance | The service address of the server that will serve the coverages/coverageCollection | anyURI | zero or one (optional) |
ows:metadata | An extension point for any additional metadata | ows:abstractMetadata | zero or one (optional) |
group | The summary of the coverages listed in the GetCapabilities response. | metocean:Group | one 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 |
---|---|---|---|
simulationCollection | A 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. | SimulationCollection | zero 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 |
---|---|---|---|
simulationMember | An individual member of the series of simulation (aka Model Run) | SimulationMember | one or more (mandatory) |
cis:Envelope | The 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 |
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:coverageCollectionId | Identifier of a CoverageCollection offered by this service, aka the identifier of each member (e.g. model run) of the simulation. | NCName | one (mandatory) |
cis:Envelope | The 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 |
ows:metadata | An extension point for any additional metadata | ows:abstractMetadata | zero or one |
simulationCoverageSummary | The 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 CoverageCollectionDescriptions 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.
Figure 14 — DescribeCoverageCollection request UML class diagram
(shaded components originate from OWS Common)
Table 29 — COVCOLL::DescribeCoverageCollection request components
Name | Definition | Data type | Multiplicity |
---|---|---|---|
service | Service identifier | String, fixed to “WCS” | one (mandatory) |
version | WCS service version indicator | String, fixed to a pattern of three dot-separated decimal digits | one (mandatory) |
extension | Any ancillary information to be sent from client to server | Any | zero or more (optional) |
coverageCollectionId | CoverageCollection identifiers | NCName | one or more (mandatory) |
count | Maximum number of CoverageCollectionDescription elements to be included in the response | Integer greater than zero | zero 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&
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 |
---|---|---|---|
NoSuchCoverageCollection | 404 | One or more of the identifiers passed does not match with any of the CoverageCollection resources offered by this server | list of violating CoverageCollection resource identifiers |
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:coverageCollectionId | Identifier of a CoverageCollection offered by this service | NCName | one (mandatory) |
ows:metadata | Reference to more metadata about this CoverageCollection | OWS Common:: Metadata | zero or one (optional) |
covcoll:coverageSummary | A summary of the coverages contained within a coverage collection | wcs:CoverageSummary | zero or many (optional) |
(shaded components originate from OWS Common)
Table 32 — WCS::CoverageSummary additional components
Name | Definition | Data type | Multiplicity |
---|---|---|---|
CoverageId | Identifier of a coverage offered by the service on hand | NCName | one (mandatory) |
coverageSubtype | Type name of the coverage on hand | QName | one (mandatory) |
coverageSubtypeParent | Recursive list of the coverage’s supertypes | CoverageSubtypeParent | zero or one (optional) |
WGS84-BoundingBox | Minimum bounding rectangle surrounding dataset, using WGS 84 CRS with decimal degrees and longitude before latitude | OWS Common:: WGS84BoundingBox | zero or more (optional) |
ows:boundingBox | Minimum bounding rectangle surrounding dataset, in available CRS | OWS Common:: BoundingBox | zero or more (optional) |
ows:Metadata | Reference to more metadata about this dataset | OWS Common:: Metadata | zero or more (optional) |
Table 33 — COVCOLL::CoverageDescription
Name | Definition | Data type | Multiplicity |
---|---|---|---|
covcoll: referenceTime | The analysis time, i.e. the start or “reference time” of the simulation process. | gml:timePosition | zero or one (optional) |
cis:Envelope | The 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 more (optional) |
coverageName | An attribute that, if used, adds semantic meaning. | string | zero 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:coverageCollectionId | Identifier of a CoverageCollection offered by this service | NCName | one |
cis:Envelope | The 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 |
ows:metadata | An extension point for any additional metadata | ows:abstractMetadata | zero or one |
Table 35 — Coverage Sub-Type definition
Code item | Definition | URL |
---|---|---|
VerticalDependency | e.g. pressure levels | http://codes.wmo.int/grib2/codeflag/4.5/_100 |
ComputedSurface | e.g. maximum wind, Isentropic (theta) Level, Tropopause | http://codes.wmo.int/grib2/codeflag/4.5/_6 |
NamedRange | Difference between two geopotential heights (Thickness) | http://codes.wmo.int/grib2/codeflag/_4.91 |
NoVerticalDependency | Ground | http://codes.wmo.int/grib2/codeflag/4.5/_1 |
9.9. Requirements Class: describeCoverageCollection-protocol-binding
This requirements class specifies the binding of the DescribeCoverageCollection operation to a concrete protocol.
Requirements Class | |
---|---|
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 |
Dependency | WCS 2.0 protocol extension GET/KVP [OGC 09-147r3]. |
Requirement 55 | /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-soap |
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 |
---|---|---|---|
service | Service identifier | String, fixed to “WCS” | one (mandatory) |
version | WCS service version indicator | String | one (mandatory) |
request | Request type name | String, fixed to “DescribeCoverageCollection” | one (mandatory) |
coverageCollectionId | CoverageCollection identifiers | Comma-separated NCName list | one (mandatory) |
count | Maximum number of CoverageCollectionDescription elements to be included in the response | Integer greater than zero | zero 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: |
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 |
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 |
---|---|---|---|
extensionProperty | References the Metadata section. | CoverageMetadata | one (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 |
---|---|---|---|
nwpObservation | OM::OM_Observation_PropertyType | zero or one (optional) | |
simulatedObservation | OM::OM_Observation_PropertyType | zero 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: | |
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/getCapabilities-coverageCollectionSummary/response-operationsMetadata | |
Requirement 37 | /req/getCapabilities-coverageCollectionSummary/response-operationsMetadata | |
Test purpose |
The OperationsMetadata component shall contain four Operation instances with case-sensitive name values “GetCapabilities”, “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: “GetCapabilities”, “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 OperationsMetadata component shall contain four Operation instances with case-sensitive name values “GetCapabilities”, “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 “GetCapabilities”, “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 CoverageCollectionDescriptions 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
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: | |
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: | |
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:
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
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 |