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.
Copyright
© 2021 Open Geospatial Consortium
To obtain additional rights of use, visit
http://www.ogc.org/legal/
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.
Permission is hereby granted by the Open Geospatial Consortium, (“Licensor”), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement.
If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR.
THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD. THE INTELLECTUAL PROPERTY IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY.
This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party.
Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications. This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it.
None of the Intellectual Property or underlying information or technology may be downloaded or otherwise exported or reexported in violation of U.S. export laws and regulations. In addition, you are responsible for complying with any local laws in your jurisdiction which may impact your right to import, export or use the Intellectual Property, and you represent that you have complied with any regulations or registration procedures required by applicable law to make this license enforceable.
This document is an OGC Member approved international standard. This document is available on a royalty free, non-discriminatory basis. Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.
Suggested additions, changes and comments on this standard are welcome and encouraged. Such suggestions may be submitted using the online change request form on OGC web site: http://portal.opengeospatial.org/public_ogc/change_request.php
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.
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.
No security considerations have been made for this standard.
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) |
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.
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 site
In order to conform to this OGC™ interface standard, a software implementation shall choose to implement:
a)
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:
This document establishes the following requirements and conformance classes:-
covcoll-offering of URI defining covcoll-offering at a conceptual level in 8.1; the corresponding conformance class is covcoll-offering with URI . See A.1.
metOcean-observation-specialisation of URI defining the metOcean-observation-specialisation at a conceptual level in clause 9.1; the corresponding conformance class is metOcean-observation-specialisation with URI . See A.2.
simulation-process-metadata of URI defining the simulation-process-metadata at a conceptual level in clause 9.2; the corresponding conformance class is simulation-process-metadata . See A.3.
result-mask of URI defining the result-mask at a conceptual level in clause 9.3; the corresponding conformance class is result-mask . See A.4.
getCapabilities-metOcean-extension of URI defining the getCapabilities-metOcean-extension in clause 9.4 the corresponding conformance class . See A.5.
getCapabilities-coverageSummary of URI defining the getCapabilities-coverageSummary response in clause 9.5 the corresponding conformance class with URI . See A.6.
getCapabilities-coverageCollectionSummary of URI defining the getCapabilities-coverageCollectionSummary response in clause 9.6 the corresponding conformance class with URI . See A.7.
getCapabilities-groups of URI defining the getCapabilities-groups response in clause 9.7 the corresponding conformance class with URI . See A.8.
describeCoverageCollection of URI defining the describeCoverageCollection response in clause 9.8 the corresponding conformance class with URI . See A.9.
describeCoverageCollection-protocol-binding of URI defining the describeCoverageCollection-protocol-binding on the conceptual level in clause 9.9 the corresponding conformance class is offering with URI . See A.10.
describeCoverageCollection-get-kvp of URI defining describeCoverageCollection-get-kvp on the conceptual level in clause 9.10 the corresponding conformance class is offering with URI . See A.11.
describeCoverageCollection-post-xml of URI defining describeCoverageCollection-post-xml on the conceptual level in clause 9.11 the corresponding conformance class is offering with URI . See A.12.
describeCoverageCollection-soap of URI defining describeCoverageCollection-soap on the conceptual level in clause 9.12 the corresponding conformance class is offering with URI . See A.13.
metoceanDescribeCoverage of URI defining the describeCoverage response in 9.13, the corresponding conformance class with URI . See A.14.
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
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.
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.
“reference time” will used in preference to “model run time” as it is more generic and includes services that may be continually updated.
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.
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.
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.
A data mask is described using a “cis:GeneralGridCoverage”.
A WMO (World Meteorological Organisation) format for gridded binary data exchanged between member countries, including a controlled vocabulary defined in tables.
An OGC standard that refers to the exchange of geospatial information as ‘coverages’: digital geospatial information representing space-varying phenomena.
A WCS server request for a list of what operations and services (“capabilities”) are being offered by that server.
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.
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.
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.
This sections provides details and examples for any conventions used in the document.
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
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].
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
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
(as used in the DescribeCoverage response)
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 |
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.
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.
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.
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.
The WCS core defines a
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.
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
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
Figure 3 – UML Diagram representing the coverage model (CIS1.1).), that makes this
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
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: .
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.
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
A
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.
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.)
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.
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 ) 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.
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.
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.
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.
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
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
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 | |
---|---|
Dependency | |
Dependency | |
Dependency | |
Dependency | |
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. |
A WCS server implementing this extension offers a – possibly empty – set of CoverageCollection resources.
The new class CoverageOfferings extends wcs:CoverageOfferings, established in WCS core (OGC 17-089r1) by adding an additional content OfferedCoverageCollection, defined in
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) |
An OfferedCoverageCollection, as specified in
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) |
This requirements class describes the metocean observation class that provides the link to the Observations and Measurements standard.
Requirements Class | |
---|---|
Dependency | |
Requirement 5 |
/req/metOcean-observation-specialisation/structure A metocean: MetOceanObservation instance shall conform to Figure 7, |
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 |
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” |
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.
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
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.
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 ) |
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 |
ObservedProperties (See |
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) |
The properties relating to a NWP model as used in weather, climate and ocean forecast models.
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 |
One (mandatory) |
The SimulationProcessDomain.
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) |
A description of the horizontal domain of the Simulation.
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) |
A description of the horizontal domain of the Simulation.
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) |
A description of the horizontal domain of the Simulation.
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) |
This requirements class describes the process by which the simulation was performed.
Requirements Class | |
---|---|
Dependency | |
Dependency | |
Requirement 16 |
/req/simulation-process-metadata/structure A metocean:SimulationProcessDescription instance shall conform to Figure 8, |
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. |
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.
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.
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) |
A type capturing the relevant scientific discipline.
Code item | Definition | URL |
---|---|---|
Meteorological Products | Meteorological products |
|
Hydrological Products | Hydrological Products |
|
Land Surface Products | Land Surface Products |
|
Space products | Space products |
|
Oceanographic products | Oceanographic products |
|
A type code capturing the type of products.
Code item | Definition | URL |
---|---|---|
Analysis Products | Analysis Products |
|
Forecast Products | Forecast Products |
|
Analysis and Forecast Products | Analysis and Forecast Products |
|
Control Forecast Products | Control Forecast Products |
|
Perturbed Forecast Products | Perturbed Forecast Products |
|
Control and Perturbed Forecast Products | Control and Perturbed Forecast Products |
|
Processed Satellite Observations | Processed Satellite Observations |
|
A type code capturing the significance of the referenceTime.
Code item | Definition | URL |
---|---|---|
Analysis | The reference time of the analysis |
|
Start of Forecast | All forecast times are relative to this Reference time |
|
Verifying Time of Forecast | The reference time is used to denote the validity time of the forecast |
|
Observation Time | The Reference time is used to denote the time of observation. |
|
A code list to indicate the centre responsible for the product, this is referenced by
A type code capturing the significance of the reference time.
Code item | Definition | URL |
---|---|---|
Operational Products | Operational Products |
|
Operational Test Products | Operational Test Products |
|
Research Products | Research Products |
|
Re-Analysis Products | Re-Analysis Products |
|
A type code capturing the significance of the Calendar used.
Code item | Definition | URL |
---|---|---|
Gregorian | Gregorian |
|
360-day | 360-day |
|
365-day (see Note 1) | 365-day (Essentially a non-leap year) |
|
Proleptic Gregorian | Proleptic Gregorian (Extends the Gregorian calendar indefinitely in the past) |
|
The code list is used to indicate the surface type (cf vertical CRS) and the associated units.
This requirements class describes the result mask that is an instance of the O&M result quality.
Requirements Class | |
---|---|
Dependency | |
Dependency | |
Requirement 20 |
/req/result-mask/structure A metocean:ResultMask instance shall conform to Figure 9, |
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:
|
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.
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).
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) |
The properties relating to a 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) |
This requirements class describes the extension made to the GetCapabilities response.
Requirements Class | |
---|---|
Dependency | |
Dependency | |
Dependency | |
Dependency | |
Dependency | |
Dependency | |
Dependency | |
Dependency | |
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:
|
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:
|
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 |
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
This requirements class describes the extension made to the GetCapabilities response that exposes the coverageSummary extension.
Requirements Class | |
---|---|
Dependency | |
Dependency | |
Dependency | |
Dependency | |
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, |
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:
|
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:
The response fragment:
A full example is given in the appendix.
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.
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) |
The GetCapabiltiesExtension is a high level object that forms the core part of the MetOcean GetCapabilities response.
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) |
The metadata required to describe a listed coverage.
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 |
Additional Metadata properties about the coverage.
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) |
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) |
This requirements class describes the extension made to the GetCapabilities response that exposes the coverageCollectionSummary extension.
Requirements Class | |
---|---|
Dependency | |
Dependency | |
Dependency | |
Dependency | |
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, |
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”. |
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.
The metadata required to describe a listed coverage collection.
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) |
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:
An example of a response fragment:-
A full example is given at the end of the document
This requirements class describes the extension made to the GetCapabilities response that exposes the groups extension.
Requirements Class | |
---|---|
Dependency | |
Dependency | |
Dependency | |
Dependency | |
Dependency | |
Dependency | |
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, |
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”. |
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.
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) |
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).
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 |
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.
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 |
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.
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:
An example of a response fragment:-
There is a full example at the end of the document
This requirements class specifies a new operation DescribeCoverageCollection.
Requirements Class | |
---|---|
Dependency | [OGC06-121r9] () |
Dependency | |
Dependency | |
Dependency | |
Dependency | |
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 |
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, |
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, |
Requirement 54 |
/req/DescribeCoverageCollection/coverage-subtypes The value CoverageSubtype element shall be restricted to only those values enumerated in |
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.
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.
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
(shaded components originate from OWS Common)
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:
The response fragment:
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
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 illustrates how CoverageCollectionSummary elements are structured. New classes are highlighted in blue.
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)
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) |
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) |
The metadata required to describe a listed coverage collection.
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 |
Code item | Definition | URL |
---|---|---|
VerticalDependency | e.g. pressure levels | |
ComputedSurface | e.g. maximum wind, Isentropic (theta) Level, Tropopause |
|
NamedRange | Difference between two geopotential heights (Thickness) | |
NoVerticalDependency | Ground |
This requirements class specifies the binding of the DescribeCoverageCollection operation to a concrete protocol.
Requirements Class | |
---|---|
Dependency | |
Dependency | |
Dependency | |
Dependency | |
Dependency | WCS 2.0 protocol extension GET/KVP [OGC 09-147r3]. |
Requirement 55 |
/req/DescribeCoverageCollection-protocol-binding Implementations of the class shall support at least one of the requirements classes:
|
This requirements class specifies how the DescribeCoverageCollection operation is provided in WCS servers that implement the HTTP/GET using KVP protocol binding.
Requirements Class | |
---|---|
Dependency | |
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: 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 |
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 |
The DescribeCoverageCollection request for HTTP/GET using KVP is defined below.
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:
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 | |
---|---|
Dependency | |
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 |
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 |
This requirements class specifies how the DescribeCoverageCollection operation is provided in WCS servers that implement the SOAP protocol.
Requirements Classs | |
---|---|
Dependency | |
Dependency | |
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:
|
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. |
This requirements class specifies how the DescribeCoverage operation is provided in WCS servers that implement the SOAP protocol.
Requirements Class | |
---|---|
Dependency | [OGC06-121r9] () |
Dependency | |
Dependency | |
Dependency | |
Dependency | [OGC09-1110r7] () |
Requirement 71 |
/req/DescribeCoverage/structure The metocean:DescribeCoverage instance shall conform to Figure 16, |
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 |
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.
The extension point that links MetOcean specific metadata to the DescribeCoverage response:
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
extensionProperty | References the Metadata section. | CoverageMetadata | one (mandatory) |
A MetOceanObservation is a more specialised Observation (as defined by O&M) that adds specific metadata and is used by MetOceanCoverageDescription:
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
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
Dependency | ||
Dependency | ||
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
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, |
|
Test method |
Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the Observation component and ensure it conforms to Figure 7, |
|
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 |
|
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 |
|
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
Dependency | ||
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, |
|
Test method |
Retrieve a CoverageDescriptions document via a DescribeCoverage operation. Inspect the SimulationProcessDescription component and ensure it conforms to Figure 8, |
|
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 |
|
Test type |
Conformance |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
Test | /conf/result-mask/structure | |
Requirement 20 |
/req/result-mask/structure | |
Test purpose | Ensure a metocean:ParameterMask instance shall conform to Figure 9, |
|
Test method |
Retrieve a CoverageDescriptions document via a DescribeCoverage operation Inspect the NWPObservation component and ensure it conforms to Figure 9, |
|
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:
|
|
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
|
|
Test type |
Conformance |
Conformance Class | ||
---|---|---|
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 |
|
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
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, |
|
Test method |
Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document and check that the data structure conforms to Figure 11, |
|
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
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, |
|
Test method |
Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document and check that the data structure conforms to Figure 12, |
|
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
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, |
|
Test method |
Retrieve a GetCapabilities document via a GetCapabilities operation. Inspect the document and check that the data structure conforms to Figure 13, |
|
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | [OGC 06-121r9] Clause 7 () | |
Dependency | OGC06-121r9] Clause 8 () | |
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | [OGC 06-121r9] 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 |
|
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, |
|
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, |
|
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 |
|
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. |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | ||
Test | /conf/describeCoverageCollection-protocol-binding | |
Requirement 55 |
/req/describeCoverageCollection-protocol-binding | |
Test purpose | /req/describeCoverageCollection-protocol-binding Implementations of the class shall support at least one of the requirements classes: | |
Test method |
Determine the list of supported extensions via a valid GetCapabilities request; check that the extension required is listed. |
|
Test type |
Conformance |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
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 |
|
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
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 |
|
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | ||
Dependency | ||
Dependency | ||
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:
|
|
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 |
Conformance Class | ||
---|---|---|
Requirements | ||
Dependency | [OGC06-121r9] () | |
Dependency | ||
Dependency | ||
Dependency | ||
Dependency | [OGC09-1110r7] () | |
Test | /conf/describeCoverage/structure | |
Requirement 71 |
/req/describeCoverage/structure | |
Test purpose |
The metocean:DescribeCoverage instance shall conform to Figure 16, |
|
Test method |
Retrieve a DescribeCoverage document via a DescribeCoverage operation. Inspect the document to ensure that the MetoceanGroup conforms to Figure 16, |
|
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 |
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 |
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.