License Agreement

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

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

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

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

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

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


 

i. Abstract

This document proposes a set of best practices and guidelines for implementing and using the Open Geospatial Consortium (OGC) Web Map Service (WMS) to serve maps which are members of an ensemble of maps, each of which is a valid possible alternative for the same time and location. In the meteorological and oceanographic communities, it is Best Practice to produce a large number of simultaneous forecasts, whether for a short range of hours, a few days, seasonal or climatological predictions. These ensembles of forecasts indicate the probability distributions of specific outcomes. This document describes how to unambiguously specify an individual member of an ensemble, or one of a limited set of map products derived from a full ensemble.

In particular, clarifications and restrictions on the use of WMS are defined to allow unambiguous and safe interoperability between clients and servers, in the context of expert meteorological and oceanographic usage and non-expert usage in other communities. This Best Practice document applies specifically to WMS version 1.3, but many of the concepts and recommendations will be applicable to other versions of WMS or to other OGC services, such as the Web Coverage Service.

ii.          Keywords

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

meteorology, oceanography, ensemble, member, time, elevation, time-dependent, elevation-dependent, wms, web map service 1.3, 1.3.0, ogc, best practice, ogcdoc

iii.          Preface

This Best Practice document is the result of discussions within the Meteorology and Oceanography Domain Working Group (MetOcean DWG) of the Technical Committee (TC) of the Open Geospatial Consortium (OGC) regarding the use of the OGC Web Map Service (WMS) to provide map visualizations from the various types of data regularly produced, analyzed, and shared by those communities. The discussion considered the differences in the types of data as well as the issues, concerns, and responsibilities of data producers when sharing those data as maps with end users, including analysts within the meteorological and oceanographic communities, users with specific needs and the general public. The limited scope of the requirements and recommendations in this document reflects the consensus reached by groups with vastly different types of data, limitations in the current design of the WMS specification, and compromises to ensure these services remain applicable to a mass market audience. Future work includes extending this Best Practice once the community gains more experience with implementing the provisions of this document. This document does not require any changes to other OGC specifications, but it is hoped that the WMS specification will evolve to address issues encountered in this work such as providing a mechanism to define exclusive dimensions and to define sparse combinations of dimensions.

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 when possible.

iv.          Submitting organizations

The following organizations submitted this Document to the Open Geospatial Consortium Inc.

  • Deutscher Wetterdienst, Germany
  • ECWMF
  • KNMI, Ministry of Infrastructure and the Environment, Netherlands
  • Météo-France
  • Meteorological Service of Canada, Environment and Climate Change Canada
  • UK Met Office
  • US Air Force Directorate of Weather

v.          Submitters

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

Name

Affiliation

Chris Little

UK Met Office

Jürgen Seib

Deutscher Wetterdienst

Marie-Françoise Voidrot-Martinez

Météo-France

Stephan Siemen

ECWMF

Ernst de Vreede

KNMI

Tom Kralidis

MSC

Eric Wise

USAF Directorate of Weather

 

1.             Introduction

The meteorological and oceanographic communities have been exchanging information internationally for at least 150 years and well understand the importance of geospatial standards for interoperability. These standards have typically defined data formats, interfaces, processes, shared conceptual models, and sustainable maintenance processes.

Because of the demanding nature of meteorological and oceanographic data processing, the communities have evolved domain specific solutions. However, as computers have become more powerful, it has become feasible to use general geospatial software for day-to-day operational purposes, and interoperability problems have arisen. There has also been an increasing need to combine meteorological and oceanographic data with other forms of geospatial data from other domains, in ways convenient for those domains.

Meteorological and oceanographic data are inherently multidimensional, not just in time and space but also over other dimensions, such as probability. In the meteorological and oceanographic communities, it is best practice to produce a number of simultaneous forecasts, whether for a short range of hours, a few days, a season or climatological predictions for a century. These ensembles of forecasts give an indication of the probability of specific outcomes.

This document describes and justifies a set of best practices for offering and requesting maps representing meteorological and oceanographic data selected from an ensemble of possibilities through WMS. This set of best practices is intended to meet the interoperability requirements of the meteorological and oceanographic communities and enable them and their customers to gain the economic benefits of using commercial, off the shelf, software implementations of WMS servers and clients.

1.1           Ensemble Forecast

Ensemble forecasts are the output of a numerical weather prediction system that facilitates the estimation of uncertainty in a weather forecast as well as the most likely outcome.

Instead of running the prediction once (a deterministic forecast), many predictions are computed, where each prediction uses slightly different input conditions. The result is called an ensemble forecast.

An ensemble forecast is a set of forecasts for the same times and locations. They are based on a set of equally likely scenarios, produced e.g. by perturbing the initial state, modifying the simulated physics, equation approximations, or boundary conditions. Any convergent or divergent distribution of the resulting set of forecasts can give an indication of the likelihood of the forecasts. Ensemble forecasts are not exact evolutions of a Probability Distribution Function for the atmosphere or oceans, as calculating these is currently an intractable problem.

When more ensemble forecasts are made, rather than fewer, the ensemble of possible outcomes is more likely to capture the most likely and the most extreme possibilities.

Generally, ensembles of about 10 forecasts are not enough, but 100 forecasts are more than ample to capture a practical range of possible outcomes.

There is also real value in combining ensembles, for the same times and locations, from different forecasting organizations, to produce a larger, multi-sourced ensemble which has improved skill compared to smaller, single-sourced, ensembles or even a similarly sized, single-sourced ensemble.

The production system is usually known as an EPS, Ensemble Prediction System.

1.2           Ensemble Member

The individual forecasts that comprise an ensemble are referred to as ensemble members. A forecasting service may select one member of an ensemble as the most appropriate prediction to offer to a customer (see Figure 1). Such a selection may be automatic or manual. A different organization’s ensemble may even be used, for example, as a back-up. Consequently, there is a need to identify a complete ensemble, a specific member, and the source or sources of that ensemble.

An ensemble of 50 parallel forecasts based on perturbations from one ‘control’ forecast. These maps are all four day forecasts of mean sea level pressure for NW Europe.
Figure : An ensemble of 50 parallel forecasts based on perturbations from one ‘control’ forecast. These maps are all four day forecasts of mean sea level pressure for NW Europe.

Contrast:

Member 5 shows high pressure over the UK, with calm weather and clear skies;

Member 10 shows low pressure over the UK, with strong winds and precipitation.

As all the ensemble members are, a priori, equally likely, there is no simple, easy to calculate, concept of two members being ‘near’ or ‘far’ from each other, or any one being the ‘most likely’.

1.3           Ensemble Product

This section describes the most common ensemble products and it briefly explains how they may be used. In general, two different types of ensemble products can be distinguished. One type delivers a chart that visualizes the data of all members. In the following, this type is called an all-member map. The other type produces new data as the result of a production process which takes all members as input. Some examples of this product type are aggregation maps, quantile maps or probability maps.

1.3.1      All-member maps

So-called postage stamp maps and spaghetti maps are the two most common ways to give an overview of all members.

A postage stamp map is a set of small maps showing plots of each individual ensemble member (see Figure 1). This allows the forecaster to view the scenarios in each member forecast and assess the possible risks of extreme events. However, this presents a large amount of information that can be difficult to comprehend.

A spaghetti map is a chart showing the contours of one or more variables from all ensemble members. This can provide a useful image of the predictability of the field. Where all ensemble member contours lie close together the predictability is higher; where they look like spaghetti on a plate, there is less predictability.

Consider for example Figure 2 and Figure 3. The graph in Figure 2 shows a 10-day temperature forecast for Brussels. There is confidence that it will become warmer for 4 or 5 days, and then probably cool, but the amount of cooling is less certain.

An ensemble of forecasts, for 10 days, of air temperature for a single location
Figure : An ensemble of forecasts, for 10 days, of air temperature for a single location

Figure 3 below shows a ‘spaghetti map’ of a North Atlantic, four day forecast of the ‘thickness’ of the lower atmosphere. Thickness is a measure of how warm or cold a layer of the atmosphere is. Usually a layer in the lower troposphere is chosen, between pressures of 1000 hPa and 500 hPa. The thickness is the difference in the heights of these two pressure levels, usually measured in decameters (Dm). A thicker layer is warmer than a ‘thinner’ layer. Thus, thickness acts as a proxy for the average temperature of the layer of atmosphere.

For example, a 1000-500hPa thickness of 528 Dm is relatively cold and indicative of snow rather than rain at sea level in Western Europe. The ensemble members, shown in the map of Figure 3, all consistently forecast this. But the forecasts of the warmer areas, indicated by a thickness of 564 Dm, are less certain.

the 528, 546 and 564 Dm thickness contours of  an ensemble 500 hPa geopotential height forecast for 11 February 2001 at 12 UTC (T+96 from 2001-02-07, 12 UTC)
Figure : the 528, 546 and 564 Dm thickness contours of  an ensemble 500 hPa geopotential height forecast for 11 February 2001 at 12 UTC (T+96 from 2001-02-07, 12 UTC)

Source:  UK Met Office using data from ECMWF, © UK Crown Copyright

Trajectory data present another example of meteorological data that often have multiple possibilities. A trajectory is the path that a moving object follows through space as a function of time. Trajectories are well recognized as often being very sensitive to the starting conditions, thus producing an ensemble of possible tracks is eminently sensible.

The distribution of possible trajectories can be shown by displaying all of them, or perhaps the extremes cases and an ‘average’ or ‘most likely’ track, though objectively defining what these are is a research topic and dependent on the detailed use case (see [Cheung 2014]).

Trajectories can run forward or backward. Good examples of forward trajectories are those for volcanic ash. They are usually calculated using the data of a numerical weather forecast. Such a forward trajectory predicts the movement of air masses from a given geographical position, in this case the location of the volcano. The trajectory has the same temporal and probabilistic associations as the numerical weather forecast because it is based on these data. An example of a backward trajectory is to find the upwind source of a nuclear pollution observation.

Figure 4 below shows two ensembles of forecasts for the tracks of two hurricanes, not unlike trajectories. A particular track could be chosen as the most likely. However, an ‘envelope’ of all possible forecast tracks could be constructed to be displayed with the most likely track, as in Figure 5.

Two ensembles of possible tracks for two different hurricanes
Figure : Two ensembles of possible tracks for two different hurricanes

A possible envelope of all forecast hurricane tracks, with most likely track displayed
Figure : A possible envelope of all forecast hurricane tracks, with most likely track displayed

1.3.2      Aggregation maps

Rather than pick a specific ensemble member or plotting all members in a spaghetti map, the complete ensemble forecast may be processed to produce statistics on the ensemble data. A typical statistical analysis is aggregation, such as the mean or standard deviation.

The ensemble mean is the average of the parameter value at each underlying data point over all ensemble members. The ensemble mean normally verifies better than the control forecast by most standard verification scores (root mean squared error, mean absolute error, temporal anomaly correlation coefficient, etc.) because it smooths out unpredictable detail and simply presents the more predictable elements of the forecast. It can provide a good guide to the element of the forecast that can be predicted with confidence, but should not be relied on its own, as it will rarely capture the risk of extreme events.

The ensemble spread is calculated as the (non-biased) standard deviation of an ensemble forecast. It provides a measure of the level of uncertainty in a parameter in the forecast. It is often plotted on charts overlaid with the ensemble mean. Figure 6 shows both the ensemble mean of pressure at mean sea level as blue contours and spread of Mean Sea Level Pressure as color shading. The areas of strong colors indicate larger spread and therefore lower predictability.

A four day forecast of Mean Sea Level Pressure, with standard deviation
Figure : A four day forecast of Mean Sea Level Pressure, with standard deviation

 

1.3.3      Probability maps

A customer may require a probabilistic forecast service, rather than a deterministic one. For example:

“The probability that the surface temperature overnight at location (x,y) will fall below 4°C is 85%”

would be preferred to:

“The minimum temperature overnight at location (x,y) will be 2°C.”

The latter forecast, even though described deterministically, is in fact probabilistic, but the statistics can only be determined after that event, and many similar events. Informed customers may have an expectation of the accuracy of these verified forecasts.

Ensembles allow an estimation of the probability that an event occurs at a particular location or grid point. Figure 7 shows the probability of wind gusts exceeding 40 knots. There is a very high probability in the North Atlantic between Scotland and Iceland. The ensemble mean of Mean Sea Level Pressure is also included as grey contours.

Regional probability map for surface wind gust speed > 40 kt for 16 July 2010 at 03 UTC (T + 21 from 15 July 2010 at 06 UTC); ensemble mean of Mean Sea Level Pressure plotted as faint background
Figure : Regional probability map for surface wind gust speed > 40 kt for 16 July 2010 at 03 UTC (T + 21 from 15 July 2010 at 06 UTC); ensemble mean of Mean Sea Level Pressure plotted as faint background

1.3.4      Quantile maps

A set of quantiles of the ensemble distribution can provide a short summary of the uncertainty. Commonly used quantiles are quartiles. The first quartile, also called the lower quartile or the 25 percent quantile, separates the lowest 25% of data from the highest 75%. The second quartile, also called the median or the 50 percent quantile, divides the data set into two halves. The third quartile, also called the upper quartile or the 75 percent quantile, separates the highest 25% of data from the lowest 75%. Another set of quantiles which is often used includes the 5%, 10%, 90% and 95% percentiles.

1.3.5      Further statistic maps

Many more products can be derived from ensembles using statistical functions. Ensemble data can be used to make a trend analysis or to test the significance of a trend. Other statistical evaluations of an ensemble are the minimum, maximum and median values. The median is the mid-point value where half of the values are above and half below.

1.3.6      Site-specific meteograms

Forecast output variables can be extracted from the grid for specific locations. There are many presentations that can be used to represent the forecast at locations, such as plume charts and probability of precipitation. One of the most commonly used is the ensemble meteogram which uses a box and whisker plot to illustrate the main percentile points of the forecast distribution for one or more variables (see Figure 8).

European Meteogram for Brize Norton (51.8°N 1.6°W) from 2007-07-19, 09 UTC to 2007-07-21, 12 UTC
Figure : European Meteogram for Brize Norton (51.8°N 1.6°W) from 2007-07-19, 09 UTC to 2007-07-21, 12 UTC

Source: UK Met Office, © UK Crown Copyright

 

2.             Scope

This version of this Best Practice document intentionally addresses a limited number of issues related to the use of WMS for ensembles of data in order to produce an initial document as a basis for future development. The document considers the issues with some of the most common ensemble derived data.

The document describes how to offer WMS layers for:

  1. No dependency on ensembles;
  2. An ensemble forecast, i.e. a complete set of ensemble members for a given area and time;
  3. A single ensemble member of an ensemble forecast for a given area and time; and
  4. The following list of ensemble products:
    • Ensemble Mean;
    • Ensemble Spread (Standard Deviation);
    • Ensemble Minimum;
    • Ensemble Maximum;
    • Ensemble Median;
    • First Quartile (25% quantile); and
    • Third Quartile (75% quantile).

The document also specifies constraints on the behavior of WMS clients that have been created specifically to use WMS implementations that follow the requirements of this document. This document specifies a constrained, consistent interpretation of the WMS 1.3 standard that is applicable to government, academic, or commercial providers or users of ensemble data offered as a WMS product.

This version of this Best Practice document has left many issues out of its scope. Design issues with WMS such as related to offering a large number of layers or offering data that are updated frequently were not directly tackled. Issues in the workflow of users relying of a distributed spatial data infrastructure such as the discovery of services, or directly of layers, were not considered.

Rules for specifying Time and Elevation unambiguously are addressed elsewhere, but should be able to be used simultaneously with this specification.

Rules for the use of data using climatological periods, climatological ranges and non-Gregorian calendars proved too complex for this version. No work was done to address issues related to expressing the semantic content of particular layers. Developing a mechanism to obtain visualizations of non-horizontal data such as vertical slices was considered too but rejected as this would require modification of the design of WMS itself.

 

3.             References

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

OGC: OGC 06-042 - OpenGIS Web Map Server Implementation Specification, Version 1.3.0, 2006.
http://portal.opengeospatial.org/files/?artifact_id=14416 .

OGC: OGC 11-111r1 - OGC Best Practice for using Web Map Services (WMS) with Time-Dependent or Elevation-Dependent Data, Version 1.0, 2014.
https://portal.opengeospatial.org/files/?artifact_id=56394 .

WMO: WMO No. 306, Manual on Codes, World Meteorological Organization operational data formats, 2016.
http://www.wmo.int/pages/prog/www/WMOCodes/WMO306_vI2/LatestVERSION/LatestVERSION.html .

WMO: WMO No. 1091, Guidelines on Ensemble Prediction Systems and Forecasting, 2012.
https://www.wmo.int/pages/prog/www/DPFS/Manual/EPS-Guidelines.html .

W3C: SOAP Version 1.2 Part 1: Messaging Framework (Second Editions), 2007.
https://www.w3.org/TR/soap12 .

IETF: RFC 7540, Hypertext Transfer Protocol, Version 2 (HTTP/2), 2015.
https://tools.ietf.org/html/rfc7540 .

4.             Terms and Definitions

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:

  1. SHALL – verb form used to indicate a requirement to be strictly followed to conform to this document, from which no deviation is permitted.
  2. SHOULD – verb form used to indicate desirable ability or use, without mentioning or excluding other possibilities.
  3. MAY – verb form used to indicate an action permissible within the limits of this document.

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

4.1          

Client

Software component that can invoke an operation from a server

4.2          

Control member or control forecast

A forecast of an ensemble that has been produced without any perturbations of the simulated physics or other approximations, boundaries or initial conditions.

4.3          

Ensemble

Set of parallel forecasts, all a priori equally likely, for the same times and locations. Often the simulated physics or initial conditions are slightly perturbed for each forecast.

4.4          

Feature

Abstraction of real world phenomena [ISO 19101:2002, definition 4.11]

4.5          

Geographic information

Information concerning phenomena implicitly or explicitly associated with a location on Earth [ISO 19101]

4.6          

Interface

Named set of operations that characterize the behaviour of an entity [ISO 19119]

4.7          

Layer

Basic unit of geographic information that may be requested as a map from a server

4.8          

Map

Portrayal of geographic information as a digital image file suitable for display on a computer screen

4.9          

Operation

Specification of a transformation or query that an object may be called to execute [ISO 19119]

4.10       

Portrayal

Presentation of information to humans [ISO 19117]

4.11       

Request

Invocation of an operation by a client

4.12       

Response

Result of an operation returned from a server to a client

4.13       

Server

A particular instance of a service

4.14       

Service

Distinct part of the functionality that is provided by an entity through interfaces [ISO 14252]

 

5.             Conventions

5.1           Abbreviated terms

CRS                 Coordinate Reference System

Dm                  decameter, i.e. 10 meters

EPS                 Ensemble Prediction System

HTTP             Hyper Text Transfer protocol

ISO                  International Standards Organisation

OGC               Open Geospatial Consortium

SOAP              Simple Object Access Protocol

UTC                Universal Coordinated Time

WMO             World Meteorological Organization

WMS              Web Map Service

XML               eXtensible Mark-up Language

5.2           Notational conventions

This sub-clause provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document.

WMS 1.3 states that request parameter names shall not be case sensitive, but parameter values shall be.

Any keywords from the WMS Standard are depicted in Courier font, lower case if the words refer to the dimension, UPPER case if it refers to the parameter of the GetMap request.

Any example values for keywords from the WMS Standard or this Best Practice document are depicted in lower case italic.

Further, in this Best Practice document we will use CamelCase or camelCase for entities. For defined classes, we use UpperCamelCase and for defined attributes, we use lowerCamelCase. For example, values, we use lower_case_under_score. For URIs, we use lower-case-with-hyphens, as this seems to be easier for humans, especially on mobile devices.


 

6.             Requirements

This document defines injunctions for the use of OGC Web Map Service implementations for the distribution of map visualizations based on data derived from an ensemble of possibilities. The injunctions constrain how such data offerings should be structured into WMS layers, the way such layers should be described in the WMS Capabilities document, the way requests for such layers should be handled, and the way clients should issue requests for such layers. These injunctions do not necessitate modifications to the WMS standard but merely define rules for the use of that standard.

The injunctions of this document target server and client implementations. “Conformant WMS servers” are WMS server implementations that follow the injunctions of this document to offer ensemble derived data as WMS layers. This document places restrictions on how these layers will be structured so that it will be useful to general purpose client software applications and to advanced client software applications specifically built for the needs of the community. “Conformant WMS clients” are WMS clients that are expected to provide a user interface to select dimensional values; this document places certain restrictions on these clients to reduce the chance of confusion or error.

The WMS 1.3 standard defines a system for declaring and requesting map layers with more dimensions than the two spatial dimensions represented in the map visualization. The standard defines a mechanism to assign dimensions to a map layer in the Capabilities document and then defines a specific dimension, ensemble. A WMS Layer is declared to be available at one or more values in a dimension by declaring an XML <Dimension> element either in the <Layer> element itself or in a parent layer, in which case the dimension will be inherited.

For example, a Capabilities document might contain:


<Layer>
 
…<Dimension name=”ensemble_member” units=”” unitSymbol=””
              nearestValue=”0” multipleValues=”1”>1/40/1</Dimension>
   <Layer>
       <Name>Surface_Irradiance</Name>
       …
   </Layer>
   <Layer>
       <Name>Temperature</Name>
       …
       <Dimension name=”elevation” units=”computed_surface” unitSymbol=””
                  default=”surface” multipleValues=”0” nearestValue=”0”
                  >surface,tropopause</Dimension>
                 
   </Layer>
 
</Layer>

where the outer layer defines an ensemble dimension which is inherited by both inner layers and the inner layer Temperature also declares that it is available at two heights. The ensemble dimension is declared with a <Dimension name=”ensemble_member” …> element and the corresponding GetMap request may include the condition DIM_ENSEMBLE_MEMBER=m with an appropriate value m.

Further dimensions can be declared with a <Dimension name=”somename” …> element and the corresponding GetMap request may include the condition DIM_SOMENAME=v with the parameter name DIM_SOMENAME and an appropriate value v. WMS has already defined TIME and ELEVATION as possible dimensions.

While the mechanism defined by WMS 1.3 is powerful, it unfortunately also has limitations. The mechanism does not provide any way to declare that dimensions are exclusive of one another. The mechanism does not provide any alternate way to declare what combinations of values in the different dimensions are available, making the discovery of available combinations a guessing game for the client.

Another limitation is that the WMS 1.3 protocol does not provide a general mechanism to return supplemental information for a request. However, the need for such a mechanism is widespread, especially for the handling of multi-dimensional layers. Consider for example a GetMap request with no value for a dimension of the requested layer. The WMS server shall use the default value in such a case, but the issuer of the request will not know the value that was actually used in preparing the response. Chapter C.4.2 of the WMS 1.3 specification addresses this issue and proposes the use of the HTTP response header for a transmission of the default value.

A second example is the applicability of dimension values in GetMap requests for multiple layers. Chapter C.3.5 of the WMS 1.3 specification considers this case and requires conformant WMS servers to apply a dimension value that is given in a GetMap request only to those layers that have that dimension. The value is ignored for all other layers. Hence, a map is returned and the issuer of the request will not know the layers to which the dimension value has been applied. A solution, similar to the one described in chapter C.4.2, could be the use of the HTTP response header.

The solution with the HTTP response header has several drawbacks, however. It is only available to clients aware of its presence and able to get the header, and the solution only works when the WMS messaging is directly embedded in the HTTP header rather than, say, embedded in XML (i.e. SOAP). The solution is also unreliable as a source of error prevention because the absence of the header does not indicate anything since the request may have been satisfactory.

The need for supplemental information for GetMap requests is one of the motivations for the development of WMS 2. This Best Practice document will therefore neither make requirements nor recommendations how this problem should be handled. It seems better to wait for the solution developed in WMS 2.

This clause specifies requirements and recommendations for the use of a new dimension named ensemble. This specification considers only the OGC standard:

OpenGIS® Web Map Server Implementation Specification, version 1.3.0 (OGC 06-042)

which is the only version of the standard that has not been deprecated at the time of writing of this Best Practice document.

 

6.1           Ensemble Independent Data

Data providers may wish to offer WMS layers that have no ensemble dependency. In this case, the following requirement applies:

Req. 1

Conformant WMS servers SHALL not offer data as a WMS layer for which a dimension named ENSEMBLE_MEMBER is declared or inherited in the Capabilities document if these data have no ensemble dependency.

6.2           Ensemble Forecast

Data providers may wish to offer data that has a dependency on ensemble forecasts. In this case, the following requirements apply to a WMS server.

This Best Practice document recommends the use of a dimension called ENSEMBLE_MEMBER if the domain values of this dimension can be restricted to a list of consecutive member numbers, starting at 0 or 1. Values for this dimension can be specified in client requests using the DIM_ENSEMBLE_MEMBER element. As a client request sets a unique value for the DIM_ENSEMBLE_MEMBER, a single request cannot be used to request multiple layers that implement different semantics.

The dimension ENSEMBLE_MEMBER shall be used in accordance with the following guidelines.

Req. 2

Conformant WMS servers SHALL only offer data that have an ensemble dependency that can be mapped to individual ensemble members as a WMS layer for which a dimension named ENSEMBLE_MEMBER is declared or inherited in the Capabilities document.

Req. 3

Conformant WMS servers SHALL aggregate multiple data sets differing only in ensemble member values into a single WMS Layer with an ENSEMBLE_MEMBER dimension.

Req. 4

Conformant WMS servers SHALL give layers with an ENSEMBLE_MEMBER dimension a name that will start with the prefix EPS. Example: EPS-T2M.

Rec. a

The name of an ensemble layer SHOULD contain a separator character immediately after the EPS prefix. The recommended separator is “-“.

Req. 5

Conformant WMS servers SHALL declare in each ENSEMBLE_MEMBER dimension of the Capabilities document the attribute units and SHALL assign it the empty string, i.e. units=””.

Req. 6

Conformant WMS servers SHALL declare in each ENSEMBLE_MEMBER dimension of the Capabilities document the attribute unitSymbol and SHALL assign it the empty string, i.e. unitSymbol=””.

Req. 7

Conformant WMS servers SHALL enumerate the ensemble members and SHALL declare the domain of each ENSEMBLE_MEMBER dimension of the Capabilities document as a range  min/max/1, where min is either 0 or 1. The values have no other meaning than the identification of the ensemble members such that we can distinguish one member from another member.

Req. 8

Conformant WMS servers SHALL specify an ENSEMBLE_MEMBER value as 0 only for the identified, unperturbed, control member of an ensemble forecast.

Req. 9

Conformant WMS servers SHALL declare in each ENSEMBLE_MEMBER dimension of the Capabilities document the attribute default if the ensemble forecast has a control member. Then, conformant WMS servers SHALL assign this attribute the value 0, i.e. default=0.

Req. 10

Conformant WMS servers SHALL not declare in an ENSEMBLE_MEMBER dimension of the Capabilities document the attribute default if the ensemble forecast has no control member.

Req. 11

Conformant WMS servers SHALL respond with a service exception if an ENSEMBLE_MEMBER dimension has no default value and a request does not include a value for the DIM_ENSEMBLE_MEMBER parameter (see Annex C.1 of the WMS 1.3).

Req. 12

Conformant WMS servers SHALL declare in each ENSEMBLE_MEMBER dimension of the Capabilities document the attribute multipleValues and SHALL assign it the Boolean value 1 indicating true as specified in Annex C.1 of the WMS 1.3.

Req. 13

Conformant WMS servers SHALL declare in each ENSEMBLE_MEMBER dimension of the Capabilities document the attribute nearestValue and SHALL assign it the Boolean value 0 (ASCII zero) indicating false as specified in Annex C.1 of the WMS 1.3.

Req. 14

Conformant WMS servers SHALL respond with an InvalidDimensionValue exception to a GetMap request that has a DIM_ENSEMBLE_MEMBER request element set to a number which is not in the range of the ENSEMBLE_MEMBER dimension for any of the layers specified in the request.

 

Example: Consider an ensemble layer with 20 members. The ENSEMBLE_MEMBER dimension of this layer may be:

<Dimension name=”ensemble_member” units=””unitSymbol=”” nearestValue=”0” multipleValues=”1”>1/20/1</Dimension>

 

If the user requests a map for the ensemble member 30, then the WMS server shall respond with an InvalidDimensionValue exception.

Rec. b

For each invalid dimension value, the exception text SHOULD include the list of layers that do not have this value in their domain sets of the ENSEMBLE_MEMBER dimension.

Req. 15

Conformant WMS servers SHALL respond with a NoMatch exception to a GetMap request that includes a DIM_ENSEMBLE_MEMBER value for which a match could not be found for at least one layer. This requirement addresses the case where the ensemble member value specified in the request is found in the domain sets of some but not all of the layers in the request.

 

Example: Consider the layer from the example of requirement 14. Further, assume that ensemble member 10 is missing due to a production problem. If the user specifies a GetMap request for member 10, then the WMS server shall respond with a NoMatch exception.

Rec. c

The exception text SHOULD include the list of ensemble members that do not match requested layers.

Req. 16

Conformant WMS servers SHALL accept requests where the value of the DIM_ENSEMBLE_MEMBER parameter is the constant “*”. In this case, the server SHALL apply the request to each ensemble member of a requested layer.

 

Conformant WMS servers can handle GetMap requests for an ensemble forecast layer according to the decision tree shown in Figure 9.

Decision tree for DIM_ENSEMBLE_MEMBER in a GetMap request
Figure : Decision tree for DIM_ENSEMBLE_MEMBER in a GetMap request

6.3           ENSEMBLE Members

Data consumers may wish to get maps from one or several ensemble members. In this case, the following requirements apply to a WMS client.

Req. 17

Conformant WMS clients SHALL use the request parameter DIM_ENSEMBLE_MEMBER only to refer to ensemble members.

Rec. d

Conformant WMS clients SHOULD specify a DIM_ENSEMBLE_MEMBER value in any GetMap request including a WMS Layer for which an ENSEMBLE_MEMBER dimension has been defined in the Capabilities document.

This recommendation to include the DIM_ENSEMBLE_MEMBER parameter in every GetMap request rather than relying on the default value is intended to increase precision and is primarily intended for specialized WMS client software. The use of a default value for ENSEMBLE_MEMBER, if defined, is intended for mass-market WMS client applications.

Req. 18

Conformant WMS clients SHALL express the value of a DIM_ENSEMBLE_MEMBER parameter in a GetMap request as a comma separated list of non-negative integers.

Rec. e

Conformant WMS clients SHOULD allow the constant “*” as a valid value for the DIM_ENSEMBLE_MEMBER parameter in a GetMap request. This constant indicates that all ensemble members are requested.

6.4           ENSEMBLE Products

Data providers may wish to offer maps for ensemble derived products. This Best Practice is limited to a short list of ensemble derived products that do not need supplied parameters for their derivation, such as threshold values. This restriction is because the WMS 1.3 specification does not have a concept of user-defined GetMap request parameters besides the definition of other sample dimensions (see Table 8 of the WMS 1.3. specification).

General probability or quantile maps are parameterized ensemble derived products. The user has to provide a condition for the probability map (“temperature will fall below 4°C”) or a percentage value for the quantile map. These values cannot be put into a GetMap request and passed to a conformant WMS 1.3 server without extending the current WMS specification.

In general, for the provision of non-parameterized ensemble derived products the following requirements apply to a WMS server.

Req. 19

Conformant WMS servers SHALL offer the following ensemble products as a separate layer for each ensemble layer:

  • Ensemble mean
  • Ensemble spread (standard deviation)
  • Ensemble minimum (0% quantile)
  • Ensemble maximum (100% quantile)
  • Ensemble median (50% quantile)
  • First quartile (25% quantile)
  • Third quartile (75% quantile)

Rec. f

Conformant WMS servers SHOULD describe in the abstract of each ensemble product layer of the Capabilities document the nature of the generation process for this product. Especially, it should state whether the product is generated with or without a control member.

Req. 20

Conformant WMS servers SHALL give a layer for an ensemble product a name that starts with the prefix:

  • MEAN, if it is an ensemble mean product
  • SPREAD, if it is an ensemble spread (standard deviation) product
  • MINIMUM, if it is an ensemble minimum product
  • MAXIMUM, if it is an ensemble maximum product
  • MEDIAN, if it is an ensemble median product
  • QUARTILE-1, if it is a first quartile product
  • QUARTILE-3, if it is a third quartile product

Rec. g

The name of an ensemble product layer SHOULD contain a separator character immediately after the prefix. The recommended separator is “-“.

Req. 21

Conformant WMS servers SHALL group an ensemble layer and the products that belong to this layer to a parent layer.

Example: Consider an ensemble layer EPS-T2M and its products for mean and spread. The corresponding fragment in the capabilities document looks like:


  <Layer>
     <Name>EPS-T2M-LAYERS</Name>
     <Title>layer for the 2m temperature
  ensemble forecast and according product layers</Title>
     <Layer queryable=”1”>
        <Name>EPS-T2M</Name>
            …
        <Dimension name=”ensemble_member”
  units=””unitSymbol=”” nearestValue=”0” multipleValues=”1”>1/20/1</Dimension>
            …
     </Layer>
     <Layer queryable=”1”>
        <Name>MEAN-T2M</Name>
          …
     </Layer>
     <Layer queryable=”1”>
        <Name>SPREAD-T2M</Name>
          …
     </Layer>
  </Layer>


Rec. h

Conformant WMS servers SHOULD offer the ensemble layer that belongs to an ensemble product layer.

Req. 22

Conformant WMS servers SHALL fulfill the requirements specified in OGC Best Practice for using Web Map Services (WMS) with Time-Dependent or Elevation-Dependent Data, for each ensemble product layer.

 

Annex : GetFeatureInfo

GetFeatureInfo is an optional operation designed to provide clients of a WMS with more information about features in the pictures of maps that were returned by previous GetMap requests. It is only supported for those layers for which the attribute queryable=”1” (true) has been defined or inherited.

The canonical use case for GetFeatureInfo is that a user sees the response of a GetMap request and chooses a point (I,J) on that map for which to obtain more information. The basic operation provides the ability for a client to specify which pixel is being queried, which layer(s) should be investigated, and in what format the information should be returned. In the case where the requested layers have additional dimensions for time or elevation the GetFeatureInfo operation can be used to ask for time series or other series at the chosen point.

This chapter defines additional requirements and recommendations for the use of the GetFeatureInfo operation. Further, those requirements from Section 6, which apply not only to a GetMap request but also to a GetFeatureInfo request, are listed.

The WMS 1.3 specification defines the following two requirements for GetFeatureInfo.

WMS 1.3 requirement

Conformant WMS clients SHALL not issue a GetFeatureInfo request for layers for which the attribute queryable=”1” (true) has not been defined or inherited.

WMS 1.3 requirement

Conformant WMS servers SHALL answer with an OperationNotSupported exception to a GetFeatureInfo request if the server will not support this operation.

 

For this Best Practice document, we define further requirements. These are as follows.

Req. 23

Conformant WMS servers SHALL set the attribute queryable to “1”, indicating true,

for all layers declared in the Capabilities document which have an ENSEMBLE_MEMBER dimension.

Req. 24

If an ENSEMBLE_MEMBER dimension has been set for a layer, conformant WMS servers SHALL return a feature collection to a GetFeatureInfo request where each feature includes the element “ensemble_member” with a corresponding member value.

The following requirements and recommendations which apply to a GetMap request also apply to a GetFeatureInfo request: Reqs: 11, 14, 15, 16, 17, 18 andRecs: d, e . These are copied below for convenience.

Req. 11

Conformant WMS servers SHALL respond with a service exception if an ENSEMBLE_MEMBER dimension has no default value and a request does not include a value for the DIM_ENSEMBLE_MEMBER parameter (see Annex C.1 of the WMS 1.3).

Req. 14

Conformant WMS servers SHALL respond with an InvalidDimensionValue exception to a GetMap request that has a DIM_ENSEMBLE_MEMBER request element set to a number which is not in the range of the ENSEMBLE_MEMBER dimension for any of the layers specified in the request.

 

Example: Consider an ensemble layer with 20 members. The ENSEMBLE_MEMBER dimension of this layer may be:

<Dimension name=”ensemble_member” units=””unitSymbol=”” nearestValue=”0” multipleValues=”1”>1/20/1</Dimension>

 

If the user requests a map for the ensemble member 30, then the WMS server shall respond with an InvalidDimensionValue exception.

Req. 15

Conformant WMS servers SHALL respond with a NoMatch exception to a GetMap request that includes a DIM_ENSEMBLE_MEMBER value for which a match could not be found for at least one layer. This requirement addresses the case where the ensemble member value specified in the request is found in the domain sets of some but not all of the layers in the request.

 

Example: Consider the layer from the example of Requirement 14. Further, assume that ensemble member 10 is missing due to a production problem. If the user specifies a GetMap request for member 10, then the WMS server shall respond with a NoMatch exception.

Req. 16

Conformant WMS servers SHALL accept requests where the value of the DIM_ENSEMBLE_MEMBER parameter is the constant “*”. In this case, the server SHALL apply the request to each ensemble member of a requested layer.

Req. 17

Conformant WMS clients SHALL use the request parameter DIM_ENSEMBLE_MEMBER only to refer to ensemble members.

Req. 18

Conformant WMS clients SHALL express the value of a DIM_ENSEMBLE_MEMBER parameter in a GetMap request as a comma separated list of non-negative integers.

Rec. d

Conformant WMS clients SHOULD specify a DIM_ENSEMBLE_MEMBER value in any GetMap request including a WMS Layer for which an ENSEMBLE_MEMBER dimension has been defined in the Capabilities document.

This recommendation to include the DIM_ENSEMBLE_MEMBER parameter in every GetMap request rather than relying on the default value is intended to increase precision and is primarily intended for specialized WMS client software. The use of a default value for ENSEMBLE_MEMBER, if defined, is intended for mass-market WMS client applications.

Rec. e

Conformant WMS clients SHOULD allow the constant “*” as a valid value for the DIM_ENSEMBLE_MEMBER parameter in a GetMap request. This constant indicates that all ensemble members are requested.

Annex : Summary of Best Practice Impacts on WMS1.3 Implementations

 

Requirements fall into four categories:

B.1       How data must be mapped into WMS layers

Ensemble forecast

Layer does not represent an ensemble forecast

Layer represents an ensemble forecast

 

Must use ‘ensemble_member’

 


B.2       How domain clients must issue GetMap Requests
(Table 8 from WMS1.3 specification, changes indicated in Bold )

Table 8 — The Parameters of a GetMap request of the specification are changed subsequently

Request parameter

Mandatory/optional

Description

VERSION=1.3

M

Request version.

REQUEST=GetMap

M

Request name.

LAYERS=layer_list

M

Comma-separated list of one or more map layers.

STYLES=style_list

M

Comma-separated list of one rendering style per requested layer.

CRS=namespace :identifier

M

Coordinate reference system.

BBOX=minx,miny,maxx,maxy

M

Bounding box corners (lower left, upper right) in CRS units.

WIDTH=output_width

M

Width in pixels of map picture.

HEIGHT=output_height

M

Height in pixels of map picture.

FORMAT=output_format

M

Output format of map.

TRANSPARENT=TRUE|FALSE

O

Background transparency of map (default=FALSE).

BGCOLOR=color_value

O

Hexadecimal red-green-blue colour value for the background colour (default=0xFFFFFF).

EXCEPTIONS=exception_format

O

The format in which exceptions are to be reported by the WMS (default=XML).

TIME=time

M

Validity Time value of layer desired.

ELEVATION=elevation

O

Elevation of layer desired.

ENSEMBLE_MEMBER = identifier(s) for ensemble members

M

One ensemble member identifier or list of ensemble member identifiers of ensemble layer desired

Other sample dimension(s)

O

Value of other dimensions as appropriate.

 


B.3       How the WMS layers must be declared in the capabilities

Contents of the dimension elements of this Best Practice document

 

ENSEMBLE_MEMBER

Field

Mandatory/ optional

Value

Meaning

name

M

ENSEMBLE_MEMBER

Name of dimensional axis.

Units

M

“”

Attribute indicating units of dimensional axis.

unitSymbol

M

“”

Attribute specifying symbol.

Default

O

 

Attribute indicating default value that will be used if GetMap request does not specify a value. If attribute is absent, then shall respond with a service exception if request does not include a value for that dimension.

multipleValues

M

1

Boolean attribute indicating whether multiple values of the dimension may be requested. 0 (or “false”) = single values only; 1 (or “true”) = multiple values permitted.

nearestValue

M

0

Boolean attribute indicating whether nearest value of the dimension will be returned in response to a request for a nearby value. 0 (or “false”) = request value(s) must correspond exactly to declared extent value(s); 1 (or “true”) = request values may be approximate.

Current

O

 

Boolean attribute valid only for temporal extents (i.e. if attribute name=”time”). This attribute, if it either 1 or “true”, indicates (a) that temporal data are normally kept current and (b) that the request parameter TIME may include the keyword “current” instead of an ending value (see C.4.1).

Current =1 if data are continually updated

Default= 0

extent

M

 

Text content indicating available value(s) for dimension.

 


B.4       Requirements that target WMS Layer declaration (i.e. <Dimension> or <Abstract> properties) and GetMap requests content

 

Ensemble_member

Dimension

 

name=

Ensemble_member

Semantics = ‘ensemble dependency’

·       Servers : Req 2

·       Clients : Req 17

Naming convention

·       Servers : Req 4

units=

“”

·       Servers: Req 5

unitSymbol=

“”

·       Servers: Req 6

default=

Optional

·       Servers: Req 9

·       Servers: Req 10

Control member

·       Servers: Req 9

multipleValues=

Required and set to true

  • Servers: Req 12

nearestValue=

Required and set to false

  • Servers: Req 13

Values

Range min/max/1

·       Servers: Req 7

  • Servers: Req 8

Annex : Bibliography

 

J. C. H. Cheung: Quantification of spatial spread in track-based applications. Meteorological Applications, Volume 23, Issue 2,314–319, (2016)

Annex : Revision History

Date

Release

Author

Paragraph modified

Description

2014-07-22

0.1.0

CTL

All

First introductory text, nothing normative

2014-07-24

0.1.1

CTL, EdV

Section 6

Discussion of layer names

2014-09-03

0.2

CTL, JS, SS

Section 6

Agreed on requirement for an ensemble Dimension

2014-11-13

0.3

CTL

Introduction
Bibliography

Added a reference and Bibliography

2015-11-04

0.4

JS

Introduction

Section 1

Section 6

Annex A

Section 1: Introduced subchapters for the concepts: ensemble forecast, ensemble member and ensemble product.

Classified ensemble products into: all-member maps, aggregation maps, probability maps, quantile maps, further statistic maps and site-specific meteograms.

Section 6: subchapters for ensemble forecast, for ensemble member and for ensemble product.

Annex A: added “A mathematical view on derived ensemble products” to explain why it is difficult to recommend a BP for all kind of ensemble products.

2016-01-18

0.4.1

JS

All

worked through all comments

2016-01-28

0.5

JS

All

Accepted all changes; removed comments

2016-04-15

0.52

JS

Section 6.4

Defined a list of requirements and recommendations for ensemble product layers

2016-05-09

0.53

JS

Section 6.2 and Annex B

Included figure 9 and revised Annex B

2016-05-16

0.54

CL

All

Minor editorial changes to improve readability

2016-05-19

0.55

CL, JS

All

Editorial changes, deleted Annex A and renumbered remaining annexes

Added two more submitters

2016-05-23

0.56

JS

Section 6.4, Annex B

Added introduction paragraph for 6.4; revised annex B

2016-05-24

0.57

CL

Preface, 2, 6.4

Updated submitters, added products

2016-05-25

1.0

CL

 

OGC 16-086

2016-06-09

1.1

JS

Section 6, Annex A

Made corrections, OGC 16-086r1

2016-07-07

1.1

CL

Section 6

Clarified Spread to be Standard Deviation

2016-08-12

1.1

Scott Simmons

All

Formatting and minor typo/grammar fixes in preparation for vote

2016-10-27

1.1

JS

Section 6, Annex A

Added new requirement 16 as a result of the comment from Frederic Guillaud; adjusted the numbering of requirements