i. Abstract
This standard defines an information model and XML encoding for exchanging the following three hydrological information resources:
- Conversion tables, or conversion curves, that are used for the conversion of related hydrological phenomenon.
- Gauging observations– the observations performed to develop conversion table relationships.
- Cross sections - survey observations made of the geometric structure of features, such as river channels, storages etc.
Metadata and vocabularies are defined that together provide a means for parties to exchange these concepts using common semantics.
This standard is the second part of the WaterML2.0 suite of standards, building on part 1 that addresses the exchange of time series[1].
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
ogcdoc, waterml, ratings, gaugings, o&m, conversion, cross section
iii. Preface
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.
iii. Submitting organizations
The following organizations submitted this Document to the Open Geospatial Consortium (OGC):
- Commonwealth Scientific and Industrial Research Organization (CSIRO), Australia
- Australian Bureau of Meteorology, Australia
- Centre for Ecology and Hydrology, UK
- KISTERS
- United States Geological Survey (USGS)
- Aquatic Informatics
iv. Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name | Representing | OGC member |
---|---|---|
Peter Taylor | Commonwealth Scientific and Industrial Research Organisation (CSIRO), Australia | Yes |
Paul Sheahan | Bureau of Meteorology, Australia | Yes |
Dominic Lowe | Bureau of Meteorology, Australia | Yes |
Michael Natschke | KISTERS, Germany | Yes |
Peter Heweston | KISTERS, Australia | Yes |
Mathew Fry | Centre for Ecology and Hydrology, UK | Yes |
David Briar | United States Geological Survey, USA | Yes |
Stuart Hamilton | Aquatic Informatics, Canada | Yes |
Brian Gouge | Aquatic Informatics, Canada | Yes |
1. Scope
This document defines an information model to describe hydrological ratings, gauging observations and survey observations. It is part 2 of the WaterML2.0 ‘suite’ of standards; the first part covered time-series observations and monitoring points. This standard re-uses types from part 1.
This work has been conducted by members of the WaterML 2.0 Standards Working Group and the joint WMO/OGC Hydrology Domain Working Group.
2. Conformance
This standard defines a UML conceptual model and XML encoding schema for describing hydrological conversions, gauging observations and survey observations.
Requirements for two standardization target types are considered:
- UML models
- XML instances (e.g. XML documents)
Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) and Annex B (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[2].
In order to conform to this OGC™interface standard, a software implementation shall choose to implement:
- Any one of the conformance levels specified in Annex A (normative) or Annex B (normative).
All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.
3. Normative References
The following normative documents contain provisions that, through referenced 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 08-131r3 – The Specification Model – A Standard for Modular Specification
- ISO 19103:2005 – Geographic information - Conceptual schema language
- ISO 8601:2004 - Data elements and interchange formats – Information interchange – Representation of dates and times
- OGC Abstract Specification Topic 1 – Feature geometry (aka ISO 19107)
- OGC Abstract Specification Topic 2 – Spatial Referencing by Coordinates (aka ISO 19111:2007)
- OGC Abstract Specification Topic 6 – Schema for Coverage geometry and functions (aka ISO 19123:2005)
- OGC Abstract Specification Topic 11 – Geographic information — Metadata (aka ISO 19115:2014)
- OGC Abstract Specification Topic 20 – Observations and Measurements (aka ISO 19156:2011)
- OGC 07-036 Geography Markup Language (aka ISO 19136:2007)
- OGC WaterML2.0 part 1 – timeseries. OGC 10-126r4. http://www.opengeospatial.org/standards/waterml
- OGC Observations and Measurements v2.0 XML OGC Document 10-025r1. http://www.opengis.net/doc/IS/OMXML/2.0
- OGC SWE Common Data Model Encoding Standard v2.0 OGC Document 08-094r1 http://www.opengis.net/doc/IS/SWECommon/2.0
- Unified Code for Units of Measure (UCUM) – Version 1.8, July 2009
- Unified Modeling Language (UML). Version 2.3. May 2010.
- Extensible Markup Language (XML) – Version 1.0 (Fourth Edition), August 2006
- XML Schema – Version 1.0 (Second Edition), October 2004
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, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.
For the purposes of this document, the following additional terms and definitions apply. There is some variation in the specific use of some technical terms within the hydrological domain. We have attempted to follow common usage, referring where possible to the WMO Glossary of hydrological concepts (http://webworld.unesco.org/water/ihp/db/glossary/glu/aglu.htm). English version: http://webworld.unesco.org/water/ihp/db/glossary/glu/HINDEN.HTM.
- 4.1 discharge
-
volume of liquid flowing through a cross-section in a unit time.
Synonym: flow.
water level, typically measured at a stream-monitoring site.
Synonym: gauge height, level.
profile of a stream normal to the mean direction of flow, usually bounded by the potential inundation extent of the stream.
physical properties of a channel which determine the relationship between stage and discharge at a location in the channel. (WMO)
NOTE 1 Physical properties refers to the shape of the natural or anthropogenic feature which is controlling the stream level at the monitoring station.
physical, paired, simultaneous measurement of two related phenomena for the purposes of developing or validating the relationship between them.
EXAMPLE Simultaneous measurements of streamflow and aggregate mean gauge height.
EXAMPLE Simultaneous measurements of velocity and flow.
NOTE 1 Also referred to as Gauging, often - depending on local usage - implying stage and discharge observations specifically.
NOTE 2 In some situations outside of this specification the term calibration, or even rating, is used to describe such a measurement.
primary location for conducting observations. (OGC WaterML2.0 part 1)
NOTE Also often referred to as Station, Gauging Station and Site.
physical phenomenon that may be directly measured or estimated.
EXAMPLE Stage, discharge, rainfall, evapotranspiration
NOTE 1 Phenomena are often associated with features, where they may be termed property or property type.
NOTE 2 Other domain synonyms or close matches include variable, observed propertyand parameter.
relationship between two phenomena at a moment in time as defined by an equation, table of paired values or other form.
EXAMPLE A stage to discharge conversion defined by a rating table describes the relationship between the water level and the volumetric flow rate of a stream.
specific Conversion that relates stage to discharge.
NOTE Within hydrology this is commonly referred to as a Rating. A plot of a Rating Conversion is often called a rating curve.
table representation of a Conversion.
NOTE A conversion table is, most often, a discretised representation of a rating curve; hence there will be a 1:1 relation between a curve and its table. The tabular form of the rating curve facilitates use and exchange.
NOTE Within hydrology this is commonly referred to as a Rating Tablewhen representing a stage to discharge conversion.
equation representation of a Conversion.
NOTE The equation may be presented as a curve, which within hydrology is termed a rating curve.
A conversion group defines the applicable conversions for time periods at a specific location.
EXAMPLE A collection of stage to discharge conversion tables that have their period of application defined across time.
property that is being measured to estimate another property using a Conversion.
EXAMPLE stage, velocity, turbidity
NOTE 1 Also known as the independent (or input) property
property that is being estimated using a Conversion.
EXAMPLE discharge, cross-sectional velocity, total suspended sediment
NOTE 1 Also known as the dependent (or output) property
5. Conventions
5.1 Abbreviated terms
The following symbols and abbreviated are used in this standard;
- GML
- Geography Markup Language
- O&M
- Observations and Measurements
- OGC
- Open Geospatial Consortium
- SWE
- Sensor Web Enablement
- UML
- Unified Modeling Language
- WMO
- World Meteorological Organisation
- XML
- Extensible Markup Language
- XSD
- W3C XML Schema Definition Language
5.2 Schema language
The XML implementation specified in this Standard is described using the XML Schema language (XSD) [XML Schema Part 1: Structures, XML Schema Part 2: Datatypes] and Schematron [ISO/IEC 19757-3, Information technology — Document Schema Definition Languages (DSDL) — Part 3: Rule-based validation — Schematron].
5.3 UML notation
The diagrams that appear in this standard are presented using the Unified Modeling Language (UML) static structure diagram.
Note:Within the context of this standard, the following color scheme is used to identify the package in which the class exists. This is just for informative purposes.
Tan: Defined within this standard
Blue: WaterML2.0 part 1 - timeseries
Red: ISO19156 – Observations & Measurements
Green: ISO19115 – Metadata
6. Vocabularies
This standard defines a number of properties that require the use of codes/vocabulary items. In some cases, a list of terms is provided. Where no codes are provided, it is expected that a list will be developed in the future, or a local code list may be used. A summary of the vocabularies is shown in Table 1. The joint OGC/WMO Hydrology Domain Working Group (HydroDWG) is responsible for managing the content of these vocabularies. Once agreement is reached for definitions, the HydroDWG should submit updates to the OGC Naming Authority.
Code list | Package(s) | Code items defined |
---|---|---|
DevelopmentMethodCode |
Conversions
|
Yes |
DomainFeatureTypeCode |
Conversions
|
No |
PropertyCode |
Conversions & Gaugings |
No |
StatusCode |
Conversions & Gaugings |
Yes |
InputMethodCode
|
Gaugings |
No |
OutputMethodCode
|
Gaugings |
No |
RelativeDirectionCode
|
Gaugings |
Yes |
StreamStateCode
|
Gaugings |
Yes |
ControlConditionCode
|
Gaugings |
No |
RangeDefinitionCode
|
RangeValues |
No |
SectionPropertyCode
|
Sections |
Yes |
TerminationTypeCode
|
Sections |
No |
7. Non-Normative (Informative) Material
WaterML2.0 is an initiative of the OGC to develop international standards and address interoperability of hydrological information systems. The first part of WaterML2.0[3] focused on a standard information model for time series of hydrological observations. The scope was defined through identification of common requirements and priority areas for data hydrological data exchange[4]. The development involved a harmonisation process whereby existing formats were compared and contrasted with an aim of capturing the key elements for time series data exchange. Early versions of the standard were tested through a number of OGC Interoperability Experiments, each testing against a different set of use cases.
WaterML2.0 Part 2 focuses on another key aspect of hydrological data: rating conversions, gauging observations and river cross-sections. These are part of most surface water monitoring programs and are used in daily operations, including reporting, analysis, modelling and forecasting. This type of data is becoming increasingly important to exchange and share outside the scope of single organisations. The full history of rating conversions through time, and the gauging observations used to develop ratings, is needed to judge their fitness for purpose, and increasingly for the quantification of uncertainty for risk-based modelling and analysis.
7.1 Conversions are a generalised concept
The practice of using an observed or theoretical relationship to make indirect observations through conversion of a more readily measured phenomenon has wide application within hydrology. The most prevalent usage of conversions within hydrology is the application of rating conversions.
This standard enables the definition of simple relationships between any phenomena, though the primary focus in its creation has been to ensure its appropriateness for stage to discharge conversion. The following discussion describes stage to discharge relationships, their derivation, and their uncertainty in more detail in order to aid understanding of the use cases and the resulting data model.
Conversions may be applied in a compound manner with the sequential application of conversions being required to determine the final derived value, e.g. the North American practice of correcting stage data via a conversion prior to the derivation of discharge. This standard defines the method for the communication of the conversions but does not define the workflow process for compound conversion usage.
7.2 Key hydrological concepts
7.2.1 Overview
Hydrometry is the practice of measuring river flow, which is important to almost all areas of hydrology. River flows are generally measured indirectly – relying on the conversion of a record of stage to discharge using an often empirically derived rating conversion.
7.2.2 Rating-conversion
7.2.2.1 Purpose
A rating conversion contains the information needed to correctly derive the dependent phenomenon (output property) from the independent one (input property). The rating conversion has validity during one, or more, specified periods of duration. The rating conversion period of validity may overlap with the period of validity of another rating requiring a transition.
Figure 2 shows an example plot of a rating conversion curve (on a log-log scale) with the individual gauging points and rating period of application. WMO recommends a curve should “…include at least 12 to 15 measurements, all made during the period of analysis” and these should be “…well distributed over the range of gauge heights experienced.”
7.2.2.2 Construction of a Rating-conversion
A rating conversion is an articulation of the complex physical relationship between stage and discharge. The shape, extent and form of a rating conversion are typically calibrated with gauging observations. Rating conversions are often extrapolated beyond the range of gauging observations.
Construction of a rating conversion requires consideration of factors such as the shape of the channel cross-section, the hydro-morphology of the channel, including the texture of the channel surfaces, and the hydraulics of the channel upstream and downstream of the monitoring point.
Some monitoring points implement an artificial structure to control the stage to discharge relationship over a limited range of stage e.g. a weir or flume. A control structure may be constructed to a specification for which the stage to discharge relationship is known. In this case gauging observations are commonly used to validate the theoretical relationship, and to define the relationship for the stage ranges where the theoretical relationship does not apply e.g. when the capacity of the control structure is exceeded.
7.2.2.3 Maintenance of a Rating-conversion
The stage to discharge relationship can change over time due to a large number of factors including erosion of the channel bed or banks, deposition of sediment either at, or up- and downstream of, the cross-section, growth of weed or accumulation of algae. These changes can be sudden (e.g. erosion of the bed and banks during a flood event) or gradual, seasonal (e.g. weed growth) or irregular in time.
The changing nature of the relationship drives a need for ongoing review and re-definition of the relationship. Monitoring points generally have a history of rating conversions that have a time-limited period of validity; the latest rating conversion is used to define the current stage to discharge relationship.
7.2.2.4 Rating-conversion uncertainty
Uncertainty is an inherent aspect of rating conversion development and application. Some sources of rating conversion uncertainty at a monitoring point can be characterized by expert-knowledge, for example the quality of a structure, or the likelihood of weed-growth or erosion within a river section.
In most cases it is ultimately the quality of the fit of the rating to the gauging observations, and the ability of the gauging observations to represent the range of stage at a monitoring point, which is used to quantify the uncertainty.
Increased sharing of ratings and gaugings will assist data users to complete their own evaluation of uncertainty in any dataset.
7.2.2.5 WaterML2.0 Part 2 expresses the data as a points table
Rating conversions are defined in many different forms in hydrometric data systems. The two primary methods for defining rating conversions are a table of stage/discharge pairs and one or more equations. Assessment of exchange standards to support equation-based conversions was out of scope for this work. This standard is scoped to enable the interoperable exchange of rating conversions though the use of a linearly interpretable points table.
7.2.2.6 Gauging observation
A gauging observation is the simultaneous measurement of the independent and dependent properties that are the subject of a conversion. The observations are used in the development and validation of a conversion.
7.2.2.7 Stage-discharge gauging observation
Stage-discharge gauging observations are the simultaneous direct measurements of instantaneous stage and discharge.
The technique used for measuring both phenomena can vary. The most common method for determining an estimated discharge measurement is the velocity-area method, which is roughly described as follows:
- The velocity of water is measured in different segments of the river cross-section.
- The volume for each segment is calculated based on the segments measured area multiplied by the segments mean velocity, determined from multiple velocity observations.
- The volume of each segment is summed to give an estimate of total discharge.
Stream-discharge gauging observations are undertaken to quantify the discharge at the monitoring point. The location of the actual observation is likely to be up or downstream of the monitoring point. The observation location will be chosen based on the prevailing river conditions and assessment of the most appropriate place for conducting a stage-discharge gauging observation.
7.2.2.8 Changing technologies
The method used to determine the velocity at each point varies – more traditional techniques involve the use of an impeller driven current meter that is lowered into the river, sometimes from a boat or directly by an operator standing in the river.
The use of acoustic methods, such those provided by Doppler instruments, are increasing in use due to their practicality and availability of commercial instruments.
For example, Acoustic Doppler Current Profilers (ADCP) can simultaneously measure the velocity of suspended particles in the river, depth and the river cross section path to estimate discharge. Multiple transects can be taken to provide a more accurate estimate. The increased speed of the measurement technique allows for more precise recording of discharge, allowing for greater definition of the rating curve through an increased number of observations in the same time period compared to older methods.
7.2.3 Sections
River channel sections are used in the construction and maintenance of rating tables. The types of sections in common use are cross sections and long sections.
7.2.3.1 Cross section
Cross sections are taken to define the stage/area relationship and identify variation of riverbank profile.
Cross sections are usually taken to define the shape of stage to discharge relationship controlling features. As the stage to discharge relationship controlling feature may change with increasing stage, multiple section may be required e.g. at lower stages there may be an artificial weir, above the weir a downstream bend may be a controlling feature.
7.2.3.2 Long section
Long sections typically follow the riverbed along the thalweg. Long sections are used to understand the slope of the river channel and its contribution to the rivers kinetic energy.
7.2.3.3 Use of gauging observation cross sections
The process of completing a stage-discharge gauging observation involves the measurement of the river cross section at the gauging section. Whilst this information is useful, it has limited value to rating conversion construction and maintenance as it does not define a stage–discharge relationship at the controlling feature and it only defines the riverbank profile for the area of current inundation.
7.3 Use cases/scenarios
Sharing of rating curves is required in multiple scenarios, generally stemming from the need to perform the calculation of the derived phenomenon or to analyse the derived data with a view to understanding its inherent uncertainty or quality. The following use cases were used in the requirements analysis process and produced a set of requirements that are described later in this document.
7.3.1 Data scrutiny
A primary use case for exposing detailed descriptions of rating tables is for closer scrutiny of derived data sets. A number of regularly used hydrological time-series – the most obvious being river discharge/flow – are derived using techniques that are approximations of relationships between other more readily measurable phenomena. It is becoming increasingly important for these data to be treated carefully due to the inherent assumptions made in the conversion process[7].
Five scenarios were used when analyzing requirements from this perspective:
- Uncertainty research;
- Geomorphic process, cross sections;
- Engineering design, e.g. designing a flood barrier;
- Analysis and assessment of input data for hydrological models; and
- Evaluation of fitness for purpose of data derived from ratings.
7.3.2 Exchange of specific rating table
It is often desirable to have instant access to a specific rating table relationship for a specific purpose. Some indicative examples include:
- Time sensitive (floods, events, emergencies);
- Inundation modelling (reverse the conversion and get the input variable from the output variable, e.g., get state from discharge);
- Asite visit or comparing a gauging point against the curve;
- Exchange of the most recent shift curve. (E.g. for reservoir optimization where the rating for inflow is subject to frequent shifts); and
- Providing ratings to operational systems (such as SCADA).
7.3.3 Exchange of full rating history
Often a centralised repository or reporting agency requires access to a full history of rating tables to run derived calculations for specific sites at any point in time. This requires a full history of rating tables as they have evolved through time. This typically excludes development versions of rating tables that have not been approved for use or release.
7.3.4 Suspended sediment and load calculations
Sediment-transport relationships (for calculating concentration, loads etc.) are used in numerous scenarios requiring an understanding of expected sediment build up or effects on the general environment. These relationships are often required by hydraulic or civil engineers for particular analyses or case studies.
7.3.5 Transfer between disparate information systems
This use case covers exchange between systems that do not have a common information model/schema for representation rating conversion. While this is a generic use case that may occur within the above scenarios, it is an important one for operation and interoperability of distributed information systems. Examples include:
- Exchange of ratings amongst databases using different schema;
- Migration of ratings into a new database using a different schema; and
- Archive of ratings in a form that will preserve information without dependence on any particular software.
7.3.6 Research services
General hydrological studies benefit from open access to hydrological data that may be used in educational scenarios. Rating tables and gauging observations are fundamental concepts within hydrological operations and having access to real world data in common formats supports learning these base concepts.
8. UML Model (normative)
8.1 Requirements class: Collection
Requirements Class | |
---|---|
http://www.opengis.net/spec/waterml/part2/1.0/req/uml-collection | |
Requirement |
/extends-part1 The WaterML2.0 Part 2 Collection type shall specialize the WaterML2.0 part 1 Collection by adding support for rating, gauging and cross-section members. |
8.1.1 Requirements class overview
The collection requirements class defines the top level collection that allows components of the part 2 model to be exchange together. It extends the WaterML2.0 part 1 collection type by adding support for conversions, gauging observations and cross-section observations.
8.1.2 Collection
The Collection type is an extension of the part 1 collection. It has been extended to allow members of type Conversion, GaugingObservation, ConversionGroups, and CrossSectionObservations.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
groupMember |
A member of the collection that contains a conversion group.
|
ConversionGroup |
0..* |
gaugingMember |
A member of the collection that contains a specific gauging.
|
GaugingObservation |
0..* |
sectionMember |
A member containing a cross-section instance. |
SectionObservation |
0..* |
rangeGroup |
A range group member of the collection. |
RangeGroup |
0..* |
propertyPairMember |
Members to allow local definition of property pairs, which group together two related properties. E.g. stage-flow. These can then be referenced for gauging observations. |
PropertyPair (see 8.4.9) |
0..* |
conversionMember |
A member of the collection that contains a specific conversion. |
Conversion |
0..* |
8.2 Requirements class: Conversions
Requirements Class | |
---|---|
http://www.opengis.net/spec/waterml/part2/1.0/req/uml-conversions | |
Dependency |
http://www.opengis.net/spec/waterml/2.0/req/uml-monitoring-point |
Dependency |
urn:iso:dis:iso:19156:clause:9 |
Requirement |
/datums-for-stage A ConversionGroup that converts a level or stage property shall include a definition of the vertical datum used. |
Requirement |
/multiple-conversion-types Conversions shall support conversion between any properties, not just stage-flow conversions. |
Requirement |
/start-periods Within a ConversionGroup, each ConversionPeriod shall express the start date of a period of application for a Conversion. The end of the applicable period may be specified using the periodEnd. If no end is specified for the ConversionPeriod, the conversion applies to the start of the next applicable period, or indefinitely if no other ConversionPeriods exist in the ConversionGroup. |
Requirement |
/conversion-reuse Different ConversionPeriods shall be able to refer to the same Conversion. |
Requirement |
/conversion-gaps To express a gap in groups of Conversions, a ConversionPeriod with a periodEnd shall be used, followed by a ConversionPeriod with periodStart to express the end of the gap. |
Requirement |
/linear-interpolation A ConversionTable shall contain sufficient input/output values to allow linear interpolation between points. The data producer determines the resolution at which the values are created. |
Requirement |
/equation A Conversion shall support specification of the source equation of the conversion table. This shall be done using the sourceDefinition property to reference a ConversionEquation. The ConversionEquation supports a text-based equation description. There is no equation formatting specified. |
Requirement |
/transformation The definition of a Conversion shall be sufficient to allow calculation of derived values, without the need to specify the way the transformation should be run. |
Requirement |
/source-system A Conversion definition shall support additional information that describes how the source system stored the conversion table. This shall be done using the sourceDefinition property. |
Requirement |
/keys A ConversionGroup shall be uniquely identified by, at a minimum, the Monitoring Point, inputProperty and outputProperty. If additional key entries are required, these can be expressed using the 'name' property. |
Requirement |
/link-to-gaugings A Conversion shall allow referencing to the gauging observations that were used in construction of the conversion relationship through the ConversionMetadata type. This allows the following to be defined: · Gauging observations that were used and taken in the period of application; · Gauging observations that were not used in the period of application; · Gauging observation that were used but taken outside the application period, e.g. a high flow rating conversion. |
Requirement |
/phasing A ConversionGroup shall support the definition of a phased changed between Conversions. Each ConversionPeriod shall specify the period over which the applicable Conversion should be phased from the previous Conversion. |
Requirement |
/table-point-quality A ConversionTable shall support expression of the quality of each point within the table. A default shall be provided for the whole table, unless overridden by individual points. To override the default, the input and output values provide a SWE:Quantity type that allows a quality to be specified against a quantity. |
Requirement |
/review-process-metadata A Conversion shall contain metadata properties to support definition of whether the conversion is under review, approved or in development. |
Requirement |
/range-group A Conversion shall contain an associated with a RangeGroup, which describes metadata that varies according to the inputProperty. |
8.2.1 Requirements class overview
This requirements class provides a model and requirements to define conversions between input and output properties, e.g. a conversion table describing a stage to discharge relationship.
8.2.2 Conversion
A Conversion defines the relationship between two properties: the input property and the one being converted to (output property). A conversion applies to a specific monitoring point.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
metadata |
Association of a conversion with the Metadata of the conversion. |
ConversionMetadata |
0..1 |
sourceDefinition |
This is an extension point to enable propriety systems to refer to an encoding of their systems definition of the conversion. |
Conversion |
0..1 |
monitoringPoint |
Association of the conversion with a 'WaterML 2.0: Part 1- Timeseries' monitoring point. |
MonitoringPoint (WaterML2.0 part 1) |
1 |
The input property to the conversion. E.g. river level/stage. |
PropertyCode (see 8.2.11) |
1 |
|
The output of the conversion process. E.g. discharge. |
PropertyCode (see 8.2.11) |
1 |
|
A point of extension to allow vendor/organization specific content. |
NamedValue (ISO19156) |
0..* |
|
Indicates that an offset from the specified datum (specified by the ConversionGroup) should be added to the input property. Positive upwards with respect to gravity. |
Quantity (SWE Common 2.0) |
0..1 |
8.2.3 ConversionEquation
A conversion may be defined by an equation. This type provides a simple free-form text description of the equation. Future work may specify particular equation types or forms. Where multiple equations are used to define conversion, the range values section of this standard should be considered for use.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
A string representation of the equation. No strict format is defined as many forms may exist. |
CharacterString |
1 |
8.2.4 ConversionGroup
A conversion group defines the association between conversion periods and specific conversions. This reflects the changing nature of a conversion through time. The group may represent all conversions available at a site (see fullConversion attribute) or a subset for exchange.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
rangeGroup |
The available range tables for this conversion group (combination of inputProperty/outputProperty and monitoring point).
|
RangeGroup |
0..* |
monitoringPoint |
Association of the conversion with a 'WaterML 2.0: Part 1- Timeseries' monitoring point. |
MonitoringPoint (WaterML2.0 part 1) |
1 |
period |
Captures the conversion period members of the group. Each period defines a period of application that makes up the group. |
ConversionPeriod |
1..* |
This describes the type of feature that the conversion is applicable to. This is likely to be a reference or code that describes a feature type. E.g. 'reservoir', 'river'. |
DomainFeatureTypeCode (see 8.2.10) |
0..1 |
|
Defines whether this group of conversions contains all the available conversions for a monitoring point, inputProperty and outputProperty combination. This would be false, for example, if the group contains only the latest conversions. |
Boolean |
0..1 |
|
The vertical datum that is associated with the input property. |
CD_VerticalDatum (ISO19111) |
0..1 |
|
A point of extension, allowing named-value pairs, where the value is of type Any. E.g. you can name an extension point that can contain any application-specific metadata. |
NamedValue (ISO19156) |
0..* |
8.2.5 ConversionMetadata
Describes metadata relating to the conversion. Generally, this is related to conversion development processes (review, development method etc.).
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
includedGaugings |
References to gaugings that were used in development of this conversion. Association properties (e.g. arcrole if an XML target) may be used to specify the reason for inclusion
|
GaugingObservation |
0..* |
excludedGaugings |
References to gaugings that were excluded from this conversion in its development. Association properties (e.g. arcrole if an XML target) may be used to specify the reason for exclusion.
|
GaugingObservation |
0..* |
If the conversion has been approved for production use, this represents the date the conversion was approved for use. This is not related to the conversion period start date. |
TM_Instant (ISO19108) |
0..1 |
|
A code that gives an indication of the method used to develop the conversion relationship. See DevelopmentMethodCode. |
DevelopmentMethodCode (see 8.2.9) |
0..* |
|
Date of the last review of the conversion where the conversion was assessed for accuracy in relation to input data or observations such as gaugings. |
TM_Instant (ISO19108) |
0..1 |
|
A code indicating the status of the conversion in relation to its development lifecycle. |
StatusCode (see 8.2.12) |
0..1 |
|
If a conversion has been through development of multiple versions, this version identifier allows reference to a specific version. |
CharacterString |
0..1 |
|
This defines that date when the conversion was last modified during the conversion maintenance process. If the conversion has been approved this represents the date the conversion was approved for use, this is not related to the conversion period start date. |
TM_Instant (ISO19108) |
0..1 |
|
Extension point that allows extra metadata to be added to the Conversion. This can be used to exchange system specific metadata that is not defined in the standard model. |
NamedValue (ISO19156) |
0..* |
8.2.6 ConversionPeriod
A conversion period defines the time period in which a particular conversion relationship should be used. Conversion periods may re-use conversions for different periods (e.g. the physical relationship is changed for a period of time due to some installation and reverts to the previous conversion once this is removed).
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
applicableConversion |
The applicable conversion for this period. |
Conversion |
1 |
The start of the conversion period. |
TM_Instant (ISO19108) |
1 |
|
The end of the conversion period. This is used to define a gap between conversion periods or a period of validity for the current conversion table. Normal usage would involve a succession of conversion periods defined by only periodStart dates. |
TM_Instant (ISO19108) |
0..1 |
|
The phasedPeriod property specifies the period over which the conversion should be phased from the preceding table to the current table. Refer to requirement /phasing for further description. |
TM_PeriodDuration (ISO19108) |
0..1 |
8.2.7 Phasing between conversions
When two conversions are to be phased, the second conversion defines a period over which it should be phased into. This defines the transition period for moving between conversions. Two examples of phased transitions are show in the following diagrams.
8.2.8 ConversionTable
A conversion table is the primary means for exchange of conversion relationships. It encodes the relationship between the input and output of the conversion using a table of tuples. This table shall be of sufficient resolution to allow linear interpolation between points.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
point |
The points that make up the conversion table.
|
TableTuple |
2..* |
Defines the default quality code for the output values of the table. Individual quality assertions override the default value. This property uses swe:Quality, which allows quality assertions using text, quantities, ranges, or a vocabulary entry. |
Quality (SWE Common 2.0) |
0..1 |
8.2.9 DevelopmentMethodCode
A code indicating the way the conversion was developed.
Code item | Definition | URL |
---|---|---|
The conversion was developed using a standard equation (e.g. from a known control structure). |
http://www.opengis.net/def/waterml/part2/1.0/DevelopmentMethodCode/equation |
|
The relationship was estimated using modeling, mass balance or other quantifiable techniques |
http://www.opengis.net/def/waterml/part2/1.0/DevelopmentMethodCode/estimated |
|
The conversion was developed using regular gaugings. |
http://www.opengis.net/def/waterml/part2/1.0/DevelopmentMethodCode/fromGauging |
|
Unknown development method. |
http://www.opengis.net/def/waterml/part2/1.0/DevelopmentMethodCode/unknown |
8.2.10 DomainFeatureTypeCode
A code indicating the feature type that the conversion relates to. E.g. ‘River’, ‘Reservoir’. HY_Features[8] provides a potential high-level categorisation of relevant features.
8.2.11 PropertyCode
A code that defines an observable property. E.g. ‘river level’, ‘discharge’. This list has not been defined in this standard.
8.2.12 StatusCode
A proposed list of status codes to indicate where the conversion is in its development lifecycle.
Code item | Definition | URL |
---|---|---|
The conversion relationship is the working version. This is the currently active conversion. |
http://www.opengis.net/def/waterml/part2/1.0/StatusCode/working |
|
The conversion is under review. |
http://www.opengis.net/def/waterml/part2/1.0/StatusCode/inReview |
|
The conversion has been approved for use. |
http://www.opengis.net/def/waterml/part2/1.0/StatusCode/approved |
|
The conversion has been reviewed and submitted for approval but has not yet been approved. |
http://www.opengis.net/def/waterml/part2/1.0/StatusCode/submitted |
|
The conversion has been modified to include the latest gauging information. It is released for real time purposes only. |
http://www.opengis.net/def/waterml/part2/1.0/StatusCode/provisional |
8.2.13 TableTuple
A tuple represents a pair of measured values: the input property and the output property.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
Individual value of the property being converted from. |
Quantity (SWE Common 2.0) |
1 |
|
Individual value of the property being converted to. |
Quantity (SWE Common 2.0) |
1 |
8.3 Requirements class: RangeValues
Requirements Class | |
---|---|
http://www.opengis.net/spec/waterml/part2/1.0/req/uml-range-values | |
Requirement |
/range-values A range group shall contain multiple RangeTables, which define metadata that changes with the input property. |
Requirement |
/start-end-value Range tables shall contain a start and end value for which the specified metadata is valid. |
8.3.1 Requirements class overview
Range tables are data structures that are similar to a conversion table except that the value applies across a broad input range and the content describes a state or condition that varies with the input range, rather than a conversion. Range tables may carry information that relates to, or adds value to, a conversion table. e.g. information describing the rating construction method. A range table may carry information that is of value in its own right. e.g. stage vs. Flood condition (not in flood, minor flood, moderate flood, major flood).
8.3.2 RangeEntry
A single entry within the range values definition. A categorisation that defines the range of inputProperty values that are associated with a range value. The inputProperty start value is defined explicitly. The inputProperty end value is defined by the lower of the next rangeEntry startValue or the rangeTable endRangeValue.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
The value from which the range entry begins. Each entry holds until the next startValue, or to the endValue if it is the last entry in the definition. |
Quantity (SWE Common 2.0) |
1 |
|
The range value entry (i.e. the value for the property being described. e.g. flood level, controlling feature etc.). |
AnyScalar (SWE Common 2.0) |
1 |
8.3.3 RangeGroup
A group of range tables that have a period of application.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
monitoringPoint |
The monitoringPoint associated with the rangeGroup. |
MonitoringPoint (WaterML2.0 part 1) |
1 |
member |
The range table entry for this definition.
|
RangeTable |
1..* |
The property that the range group relates to. |
PropertyCode (see 8.2.11) |
1 |
|
The varying metadata property that the range group relates to. E.g. 'a vocabulary defining flood levels' |
RangeDefinitionCode (see 8.3.4) |
1 |
8.3.4 RangeDefinitionCode
A code that describes the nature of the range value, e.g. ‘a textual description of different flood levels’.
8.3.5 RangeTable
A RangeDefinition specifies metadata that is associated with a range of a quantity (e.g. from 2.3 to 3.5). For Conversions, this will most often relate to the input property (e.g. metadata for stage between 2.3 and 3.5 meters.). Ranges are specified by the start value and hold until the next range entry. The upper end of applicability is specified by the endValue attribute.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
member |
An entry within the range table.
|
RangeEntry |
1..* |
The value at which the range entries end. Only the final end value is specified -- each range point holds from its start value until the next value or, if it is the last entry, to the endRangeValue. |
Quantity (SWE Common 2.0) |
1 |
|
The start time from which this range table applies. |
TM_Instant (ISO19108) |
1 |
|
The end time until which the range value applies. |
TM_Instant (ISO19108) |
0..1 |
8.4 Requirements class: Gaugings
Requirements Class | |
---|---|
http://www.opengis.net/spec/waterml/part2/1.0/req/uml-gaugings | |
Requirement |
/observed-property The observed property of the OM_Observation type shall be a composite property that includes both the inputProperty and outputProperty. E.g. a stage to discharge definition. |
Requirement |
/result-type A GaugingObservation shall have a result property (from OM_Observation) that contains two scalar values: the observed inputProperty and outputProperty. |
Requirement |
/feature-of-interest The feature of interest of a Gauging Observation shall be a MonitoringPoint (from WaterML2.0 part 1). |
8.4.1 Requirements class overview
Gauging observations are the observations that are made to record the relationship between two properties at a specific point in time, influenced by the environmental conditions. These observations are used to either build an empirical conversion relationship or to verify a theoretically produced relationship between the properties.
These observations are performed using a wide array of methods, procedures and types of hardware. The focus of this model is to capture the x-y value that results from (potentially many) observations that are made to estimate the relationship between two properties. For example, to understand the stage to discharge relationship at a gauging station, many observations are made at different x-y-z locations within a watercourse. These results are generally used to calculate an aggregate a single stage to discharge estimate for the section of the river.
8.4.2 Gauging
The result of an individual gauging, comprising of two measurements of related properties.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
The measurement of the input property. |
Quantity (SWE Common 2.0) |
1 |
|
The measurement of the output property. |
Quantity (SWE Common 2.0) |
1 |
8.4.3 GaugingObservation
Gauging observations are defined as a specialised type OM_Observation from ISO19156, with the following restrictions:
- the feature of interest relates to the location to which the gauging observation is applied (a MonitoringPoint);
- the result is a measurement tuple of the input property (e.g. stage) and the output property (e.g. discharge) values;
- the observed property groups the two properties together into a property pair. The alternative is to model the gauging as two separate measurement observations, one each for the independent and dependent properties. It is common practice to combine the two; and
- the process is captured with a type categorisation and extensible metadata properties.
The variety of methods and metadata for gauging observations is extensive. Harmonisation of all the methods is not practical and would most likely rely on more fully standardised measurement methods. A metadata type captures common metadata relating to the observation, such as influencing environmental conditions, status of the observational data etc.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
conditionsParameter |
Captures conditions that influenced the measurement process during the period of observation. These are values that are not tightly bound to the definition of the process; they could vary across individual observations of the same feature/process.
|
ObservationConditions |
0..1 |
monitoringPoint |
Association of the conversion with a 'WaterML 2.0: Part 1- Timeseries' monitoring point. |
MonitoringPoint (WaterML2.0 part 1) |
1 |
metadataParameter |
Metadata for the gauging observation.
|
GaugingObservationMetadata |
0..1 |
streamGaugingMetadataParameter |
Metadata specific to stream gauging style observations.
|
StreamGaugingMetadata |
0..1 |
procedure |
The procedure used in making the observation. A specialised type is provided to detail important aspects of the observation procedure. There is huge diversity in the available methods for gauging observations; the key aspects are captured here to provide useful metadata for result interpretation.
|
GaugingProcess |
1 |
observedProperty |
The observed property pair that is being observed and calculated. This will normally be an identifier that links to a vocabulary definition for the type of physical property being measured. The observed property is a tuple that captures the two properties that are being related.
|
PropertyPair (see 8.4.9) |
1 |
result |
The resulting measurements from the gauging. |
Gauging |
1 |
8.4.4 GaugingObservationMetadata
Captures metadata relating to the gauging observation.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
Date that the gauging observation was approved. |
TM_Instant (ISO19108) |
0..1 |
|
Captures the status of the gauging in terms of its use in conversion relationships. |
StatusCode (see 8.2.12) |
1 |
8.4.5 GaugingProcess
A description of the observation process used for the gauging.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
operator |
The field operator (person/organisation/contact) for the gauging observation.
|
CI_ResponsibleParty (ISO19115) |
0..1 |
Describes the method that was used for observing the output property. For example: area-velocity, ADCP, mechanical meter etc. |
OutputMethodCode (see 8.4.6) |
0..1 |
|
Describes the method that was used for observing the input property. For example: flow weighted mean gauge height. |
InputMethodCode (see 8.4.7) |
0..1 |
8.4.6 OutputMethodCode
A code that describes the method used when measuring the output value. E.g. code item that describes an acoustic Doppler current profiler.
8.4.7 InputMethodCode
A code that describes the method used when measuring the input value. E.g. manual staff gauge reading.
8.4.8 ObservationConditions
Captures conditions affecting the measurement being taken, these properties apply to stream gauging observations.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
The state of the stream while the gauging was taking place (e.g. was the stream rising.). See also stageStart/EndOfObservation. |
StreamStateCode (see 8.4.13) |
0..1 |
|
Conditions adversely affecting the controls ability to function normally: e.g. weed growth, ice etc. |
ControlConditionCode (see 8.4.10) |
0..* |
|
The observed input property (e.g. stage) at the end of the observation period. |
Quantity (SWE Common 2.0) |
0..1 |
|
The observed input property (e.g. stage) at the start of the observation period. |
Quantity (SWE Common 2.0) |
0..1 |
|
A relative direction from the monitoring point to the location the measurement was made. |
RelativeDirectionCode (see 8.4.11) |
0..1 |
|
The distance to the monitoring point from the measurement location. |
Quantity (SWE Common 2.0) |
0..1 |
8.4.9 PropertyPair
The pair of related properties that are being measured by the gauging observation.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
The property that is being directly measured by the observation, e.g. stage. |
PropertyCode (see 8.2.11) |
1 |
|
The property that is being estimated, e.g. discharge. |
PropertyCode (see 8.2.11) |
1 |
8.4.10 ControlConditionCode
A code that describes the condition of the control. E.g. a code indicating ‘control is affected by weed growth’. The code list is not defined in this standard.
8.4.11 RelativeDirectionCode
Provides codes to describe the location of the gauging measurement relative to the monitoring point.
Code item | Definition | URL |
---|---|---|
The measurement was performed upstream of the monitoring point. |
http://www.opengis.net/def/waterml/part2/1.0/RelativeDirectionCode/Upstream |
|
The measurement was performed downstream of the monitoring point. |
http://www.opengis.net/def/waterml/part2/1.0/RelativeDirectionCode/Downstream |
8.4.12 StreamGaugingMetadata
A type capturing metadata typical for stream gauging.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
The line (start coordinates, end coordinates) that describes the segment of the river that was measured. |
GM_MultiPoint (ISO19107) |
0..1 |
|
The perimeter of the cross-section that is in contact with water flow. |
Quantity (SWE Common 2.0) |
0..1 |
|
The area of the cross-section that is being measured. |
Quantity (SWE Common 2.0) |
0..1 |
|
The width of the cross-section that is being measured. |
Quantity (SWE Common 2.0) |
0..1 |
8.4.13 StreamStateCode
A controlled list for terms describing the stream state during the period of observation.
Code item | Definition | URL |
---|---|---|
The level of the stream was rising during observation. |
http://www.opengis.net/def/waterml/part2/1.0/StreamStateCode/Rising |
|
The level of the stream was falling during observation. |
http://www.opengis.net/def/waterml/part2/1.0/StreamStateCode/Falling |
|
The level of the stream was steady during observation. |
http://www.opengis.net/def/waterml/part2/1.0/StreamStateCode/Steady |
8.5 Requirements class: Sections
Requirements Class | |
---|---|
http://www.opengis.net/spec/waterml/part2/1.0/req/uml-section-observations | |
Requirement |
/geometry-observation A section observation shall be an OM_GeometryObservation with a result type of that is a sub-class of GM_Object. |
Requirement |
/observed-property The observedProperty of the OM_GeometryObservation shall refer to the type of section that is being observed (e.g. river cross-section) using a controlled vocabulary. |
8.5.1 Requirements class overview
Section observations are a type of geometric observation used to survey rivers sections, typically with the intention of understanding water flow.
8.5.2 SectionObservationMetadata
Metadata relating to the section observation.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
The start point of which the section observation was made. |
GM_Point (ISO19107) |
1 |
|
The end point of the section observation. |
GM_Point (ISO19107) |
0..1 |
|
terminationType |
A vocabulary entry to indicate how the section observation was terminated. |
TerminationTypeCode (see 8.5.4) |
0..1 |
verticalCRS |
The coordinate reference system used for the vertical component of the section observation. |
SC_VerticalCRS (ISO19111) |
0..1 |
surveyCRS |
The coordinate reference system used when making the lateral component of the section observation. |
SC_EngineeringCRS (ISO19111) |
0..1 |
The property that combines the vertical and engineering reference systems into a 2D reference system that can then be used in the observation result geometries. |
SC_CompoundCRS (ISO19111) |
0..1 |
8.5.3 SectionObservation
A SectionObservation is a more specialised GeometryObservation (as defined by O&M) that adds specific metadata and further refines the result to be an ordered list of geometric points.
Name | Definition | Data types and values | Multiplicity |
---|---|---|---|
result |
The geometric result of the observation. Overrides the O&M property by specialising to a Geometry. |
GM_MultiPoint (ISO19107) |
1 |
observedProperty |
The type of section that is being observed. E.g. river cross section.
|
SectionPropertyCode (see 8.5.5) |
1 |
parameterMetadata |
Metadata of the observation. |
SectionObservationMetadata |
0..1 |
8.5.4 TerminationTypeCode
A code list to describe the way the section observation has been terminated.
8.5.5 SectionPropertyCode
A controlled list for observed properties of section observations.
Code item | Definition | URL |
---|---|---|
longSection |
An observation of a longitudinal section. |
http://www.opengis.net/def/waterml/part2/1.0/SectionPropertyCode/longSection |
gaugingCrossSection |
An observation of a gauging cross section. |
http://www.opengis.net/def/waterml/part2/1.0/SectionPropertyCode/gaugingCrossSection |
crossSection |
A cross section observation. |
http://www.opengis.net/def/waterml/part2/1.0/SectionPropertyCode/crossSection |
controlCrossSection |
An observation of a control cross section. |
http://www.opengis.net/def/waterml/part2/1.0/SectionPropertyCode/controlCrossSection |
bedSlope |
An observation of a section of bed slope. |
http://www.opengis.net/def/waterml/part2/1.0/SectionPropertyCode/bedSlope |
9. XML Encoding (normative)
WaterML 2.0 Part 2 UML | WaterML 2.0 Part 2 XML |
---|---|
ConversionGroup |
part2:ConversionGroup |
Conversion |
part2:Conversion |
ConversionTable |
part2:ConversionTable |
TableTuple |
part2:TableTuple |
ConversionEquation |
part2 ConversionEquation |
ConversionPeriod |
part2:ConversionPeriod |
GaugingObservation |
om:OM_Observation* |
Gauging |
part2:Gauging |
ObservationProcess |
part2:ObservationProcess |
RangeGroup |
part2:RangeGroup |
RangeTable |
part2:RangeTable |
RangeEntry |
part2:RangeEntry |
Collection |
part2:Collection |
SectionObservation |
om:OM_Observation* |
* The specialisation of OM_Observation is provided through Schematron rather than a specialised XML type. |
This section defines an XML encoding of the WaterML2.0 Part 2 UML model. The mappings of the core types are show in Table 1.
9.1 Requirements class: XML encoding
Requirements Class | |
---|---|
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-rules | |
Dependency |
|
Requirement |
/part1-rules The XML encodings shall conform to the XML encoding rules specified in WaterML2.0 part 1. |
9.2 Requirements class: Collections XML
Requirements Class | |
---|---|
href="http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-collection">http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-collection | |
Dependency |
http://www.opengis.net/spec/req/waterml/part2/1.0/xml-rules |
Requirement |
/extends-part1 The WaterML2.0 Part 2 Collection type shall specialize the WaterML2.0 part 1 Collection (http://schemas.opengis.net/waterml/2.0/waterml2.xsd) by adding support for conversion, gauging and cross-section members. |
Requirement |
/valid The XML instance document shall be valid according to the XML grammar specified in http://schemas.opengis.net/waterml/part2/1.0/collection.xsd. |
The following example instances show the use of the collection schema type:
- Collection with gauging members: http://schemas.opengis.net/waterml/part2/1.0/examples/gauging-collection-expanded-example.xml
- Collection with conversion members: http://schemas.opengis.net/waterml/part2/1.0/examples/collection-example.xml
- Collection with range-value members: http://schemas.opengis.net/waterml/part2/1.0/examples/conversion-group-example-with-datum.xml
9.3 Requirements class: Conversions XML
Requirements Class | |
---|---|
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-conversions | |
Dependency |
http://www.opengis.net/spec/req/waterml/part2/1.0/xml-rules |
Requirement |
/valid The XML instance document shall be valid according to the XML grammar specified in http://schemas.opengis.net/waterml/part2/1.0/conversions.xsd. |
Requirement |
/monitoring-point All Conversion objects within a ConversionGroup shall inherit the monitoringPoint property. Additionally all Conversions within a ConversionGroup shall have the same monitoringPoint property. |
Requirement |
/inputProperty All Conversion objects within a ConversionGroup shall have the same inputProperty value. If a Conversion does not specify the inputProperty value, it is inherited from the ConversionGroup. |
Requirement |
/outputProperty All Conversion objects within a ConversionGroup shall have the same outputProperty value. If a Conversion does not specify the outputProperty value, it is inherited from the ConversionGroup. |
The following example instances show the use of the conversion schema types:
- A conversion group with multiple applicable periods: http://schemas.opengis.net/waterml/part2/1.0/examples/conversion-group-linked-tables.xml
- A full conversion table: http://schemas.opengis.net/waterml/part2/1.0/examples/conversion-single-example.xml
9.4 Requirements class: RangeValues XML
Requirements Class | |
---|---|
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-range-values | |
Requirement |
/valid The XML instance document shall be valid according to the XML grammar specified in http://schemas.opengis.net/waterml/part2/1.0/rangeValues.xsd. |
Requirement |
/range-definition The rangeDefinition xlink:href attribute shall use an HTTP URL that links to a vocabulary term indicating the type of range value that is being encoded. E.g. ‘percent of time height exceeded’ or ‘flood levels’. |
The following example shows how a range value may be used to encode the precent of time height exceeded for ranges of stream height:
http://schemas.opengis.net/waterml/part2/1.0/examples/range-groups-example.xml
9.5 Requirements class: Gaugings XML
Requirements Class | |
---|---|
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-gaugings | |
Dependency |
http://www.opengis.net/spec/waterml/2.0/req/xsd-feature-of-interest-monitoring-point |
Requirement |
/observation-type A Gauging Observation shall be encoded using the OM_Observation type, with restrictions defined in this requirements class. |
Requirement |
/result The ‘result’ property of the OM_Observation element shall be a ‘Gauging’ type. |
Requirement |
/observed-property The ‘observedProperty’ property of the OM_Observation element shall be reference a vocabulary term that defines both the input and the outputProperties that are being observed. |
Requirement |
/feature-of-interest The ‘featureOfInterest’ property of the OM_Observation element shall be reference a MonitoringPoint (WaterML2.0 part 1) or reference one using xlink. |
Requirement |
/observation-conditions The conditionsParameter property shall be encoded using the om:parameter property of OM_Observation. The ‘name’ element (of om:NamedValue) shall have an xlink:href value of ‘http://www.opengis.net/def/waterml/part2/1.0/gauging-conditions’, with the ‘value’ element containing the ObservationConditions value or a reference to one. |
Requirement |
/observation-metadata The metadataParameter property shall be encoded using the om:parameter property of OM_Observation. The ‘name’ element (of om:NamedValue) shall have an xlink:href value of ‘http://www.opengis.net/def/waterml/part2/1.0/gauging-metadata’, with the ‘value’ element containing the ObservationMetadata value or a reference to one. |
Requirement |
/stream-gauging-metadata The streamGaugingMetadataParameter type shall be encoded using the om:parameter property of OM_Observation. The ‘name’ element (of om:NamedValue) shall have an xlink:href value of ‘http://www.opengis.net/def/waterml/part2/1.0/stream-gauging-metadata’, with the ‘value’ element containing the StreamGaugingMetadatad value or a reference to one. |
The following example instances show the use of the gauging observation schema types:
- http://schemas.opengis.net/waterml/part2/1.0/examples/gauging-example-extended.xml
- http://schemas.opengis.net/waterml/part2/1.0/examples/gauging-example-service-output.xml
- http://schemas.opengis.net/waterml/part2/1.0/examples/gauging-example-with-conditions.xml
9.6 Requirements class: Section Observation
Requirements Class | |
---|---|
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-section-observation | |
Requirement |
/observation-type A SectionObservation shall be encoded using the OM_Observation type, with restrictions defined in this requirements class. |
Requirement |
/observed-property A observedProperty of the OM_Observation shall indicate the type of cross-section observed using a term from the vocabulary at: ‘http://www.opengis.net/def/waterml/part2/1.0/SectionPropertyCode’ |
Requirement |
/observation-metadata The parameterMetadata shall be encoded using the om:parameter property of OM_Observation, with ‘name’ element (of om:NamedValue) having an xlink:href value of ‘http://www.opengis.net/def/waterml/part2/1.0/section-metadata’. The ‘value’ element shall contain the SectionObservationMetadata type. |
The following instances show some example use of the section observation schema:
- A local coordinate system section observation: http://schemas.opengis.net/waterml/part2/1.0/examples/cross-section-example-line-string.xml.
- A 3D geo-referenced section observation: http://schemas.opengis.net/waterml/part2/1.0/examples/cross-section-example-georeferenced.xml.
10. Media Types for any data encoding(s)
WaterML2.0 Part 2 data conforming to this standard is encoded in GML-conformant XML documents. The standard MIME-type and sub-type for GML data should be used to indicate the encoding in internet exchange, as specified in MIME Media Types for GML, namely ‘application/gml+xml’.
Annex A UML Conformance Class Abstract Test Suite (normative)
A.1 Conformance class: Collection
Conformance Class: Collection | ||
http://www.opengis.net/spec/waterml/part2/1.0/conf/uml-collection | ||
|
http://www.opengis.net/spec/waterml/part2/1.0/conf/uml-collection/extends-part1 | |
|
Requirement |
/req/uml-collection/extends-part1 |
|
Test purpose |
Test that the collection extends the WaterML2.0 part 1 Collection type. |
|
Test method |
Inspect the Collection type’s base class and ensure if is either the WaterML2.0 part 1 Collection type, or a sub-class of it. |
|
Test type |
Conformance |
A.2 Conformance class: Conversions
A.3 Conformance class: RangeValues
Conformance Class: RangeValues | ||
http://www.opengis.net/spec/waterml/part2/1.0/conf/uml-range-values | ||
|
/range-values | |
|
Requirement |
/req/uml-range-values/range-values |
|
Test purpose |
Ensure that a RangeGroup is associated with a ConversionGroup and defines sufficient metadata to described varying metadata for the inputProperty. |
|
Test method |
Inspect the RangeGroup and ensure it is associated with an inputProperty and provides a range definition. |
|
Test type |
Conformance. |
|
/start-end-value |
|
|
Requirement |
/req/uml-range-values/start-end-value |
|
Test purpose |
Ensure that a RangeTable contains a start and end value, describing the period for which this range value is valid. |
|
Test method |
Inspect the RangeTable type and pass if it provides both period start and end times, with the start being mandatory. |
|
Test type |
Conformance. |
A.4 Conformance class: Gaugings
Conformance Class: Gaugings | |||
http://www.opengis.net/spec/waterml/part2/1.0/conf/uml-gaugings | |||
|
/observed-property |
||
|
Requirement |
/req/uml-gaugings/observed-property |
|
|
Test purpose |
Ensure that the GaugingObservation supports an observed property containing an input and output property. |
|
|
Test method |
Inspect the model and pass if a type is available that defines a property tuple containing an input and output property. |
|
|
Test type |
Conformance. |
|
|
/result-type |
||
|
Requirement |
/req/uml-gaugings/result-type |
|
|
Test purpose |
Ensure that a GaugingObservation has a result of two scalar values (input and output measurements). |
|
|
Test method |
Inspect the GaugingObservation type and pass if the OM_Observation:result property is restricted to a type that supports two measurement values. |
|
|
Test type |
Conformance. |
|
|
/feature-of-interest |
||
|
Requirement |
/req/uml-gaugings/feature-of-interest |
|
|
Test purpose |
Ensure that a GaugingObservation has a feature of interest of a MonitoringPoint from WaterML2.0 part 1. |
|
|
Test method |
Inspect the OM_Observation:featureOfInterest property and pass if it is restricted to be a MonitoringPoint type. |
|
|
Test type |
Conformance. |
|
A.5 Conformance class: Sections
Conformance Class: Sections | ||
http://www.opengis.net/spec/waterml/part2/1.0/conf/uml-sections | ||
|
/geometry-observation |
|
|
Requirement |
/req/uml-sections/geometry-observation |
|
Test purpose |
Ensure that a SectionObservation has an appropriate geometric result type |
|
Test method |
Inspect the OM_Observation:result property and pass if it is restricted to be a GM_Object type. |
|
Test type |
Conformance. |
|
/geometry-observation |
|
|
Requirement |
/req/uml-sections/observed-property |
|
Test purpose |
Ensure that a SectionObservation has an appropriate observed property type. |
|
Test method |
Inspect the OM_Observation:observedProperty type – pass if the property has been restricted to an appropriated vocabulary (preferably from http://www.opengis.net/def/waterml/part2/1.0/SectionPropertyCode) |
|
Test type |
Conformance. |
Annex B XML Conformance Class Abstract Test Suite (normative)
B.1 Conformance Class: XML Encoding
Conformance Class: XML Encoding |
|
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-rules | |
Requirements |
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-rules |
Dependency |
|
Test |
/part1-rules |
Requirement |
/req/xml-rules/part1-rules |
Test purpose |
Verify that the XML instance conforms to the common XML encoding rules as specified by WaterML2.0 part 1 XML encoding. |
Test method |
Execute all conformance tests specified by http://www.opengis.net/spec/waterml/2.0/conf/xsd-xml-rules. |
B.2 Conformance Class: Collections XML
Conformance Class: Collections XML | |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-collection | |
Requirements |
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-collection |
Dependency |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-rules |
Test |
/extends-part1 |
Requirement |
/req/xml-collection/extends-part1 |
Test purpose |
Verify that the XML Collection type extends the WaterML2.0 part 1 collection type. |
Test method |
Inspect XML Schema to ensure Collection type extends the CollectionType specified by http://schemas.opengis.net/waterml/2.0/collection.xsd. |
Test |
/valid |
Requirement |
/req/xml-collection/valid |
Test purpose |
Verify that the XML instance document is a valid collection. |
Test method |
Validate the XML instance document using the XML Schema document: http://schemas.opengis.net/waterml/part2/1.0/collection.xsd. |
B.3 Conformance Class: Conversions XML
Conformance Class: Conversions XML | |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-conversions | |
Requirements |
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-conversions |
Dependency |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-rules |
Test |
/valid |
Requirement |
/req/xml-conversion/valid |
Test purpose |
Verify that the XML instance is valid. |
Test method |
Validate the XML instance document using the XML Schema document: http://schemas.opengis.net/waterml/part2/1.0/conversions.xsd. |
Test |
/monitoring-point |
Requirement |
/req/xml-conversion/monitoring-point |
Test purpose |
Verify that all the Conversions within a ConversionGroup have the same monitoringPoint property. |
Test method |
Inspect the value of the monitoringPoint property of each Conversion object. If they are the same then pass, fail otherwise, with the following rule: If no monitoringPoint is specified for a conversion then it inherits its value from the ConversionGroup. |
Test |
/inputProperty |
Requirement |
/req/xml-conversion/inputProperty |
Test purpose |
Verify that all the Conversions within a ConversionGroup have the same inputProperty value. |
Test method |
Inspect the value of the inputProperty property of each Conversion object. If they are the same then pass, fail otherwise, with the following rule: If no inputProperty is specified for a conversion then it inherits its value from the ConversionGroup. |
Test |
/conf/xml-conversion/outputProperty |
Requirement |
/req/xml-conversion/outputProperty |
Test purpose |
Verify that all the Conversions within a ConversionGroup have the same outputProperty value. |
Test method |
Inspect the value of the outputProperty property of each Conversion object. If they are the same then pass, fail otherwise, with the following rule: If no outputProperty is specified for a conversion then it inherits its value from the ConversionGroup. |
B.4 Conformance Class: Range Values XML
Conformance Class: Range Values XML | |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-range-values | |
Requirements |
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-range-values |
Dependency |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-rules |
Test |
/valid |
Requirement |
/req/xml-range-values/valid |
Test purpose |
Verify that the XML instance is valid. |
Test method |
Validate the XML instance document using the XML Schema document: http://schemas.opengis.net/waterml/part2/1.0/rangeValues.xsd. |
Test |
/range-definition |
Requirement |
/req/xml-range-values/range-definition |
Test purpose |
Verify that the definition of the range values is specified in the range group. |
Test method |
Verify the RangeGroup/rangeDefinition/@xlink:href value is a valid vocabulary term. |
B.5 Conformance Class: Gaugings XML
Conformance Class: Gaugings XML | |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-gaugings | |
Requirements |
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-gaugings |
Dependency |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-rules |
Test |
/observation-type |
Requirement |
/req/xml-gaugings/observation-type |
Test purpose |
Verify that the XML instance is a valid OM_Observation type. |
Test method |
Validate the XML instance document using the O&M XML Schema document: http://schemas.opengis.net/om/2.0/observation.xsd |
Test |
/result |
Requirement |
/req/xml-gaugings/result |
Test purpose |
Verify that the child element of the OM_Observation result property is a ‘Gauging’. |
Test method |
Validate the XML instance document the ‘result’ test in the Schematron file at gauging-observation.sch. |
Test |
/observed-property |
Requirement |
/req/xml-gaugings/observed-property |
Test purpose |
Verify that the input and output property have been defined using the observedProperty xlink:href attribute. |
Test method |
Inspect the vocabulary after resolving the HTTP URL in the OM_Observation/observedProperty/@xlink:href attribute. Ensure sufficient definition is provided to define both the input and output properties. |
Test |
/feature-of-interest |
Requirement |
/req/xml-gaugings/feature-of-interest |
Test purpose |
Verify that a Monitoring Point has been specified as the feature of interest of the OM_Observation. |
Test method |
Validate the XML instance document the ‘featureOfInterest test in the Schematron file at gauging-observation.sch. |
Test |
/observation-conditions |
Requirement |
/req/xml-gaugings/observation-conditions |
Test purpose |
Verify observation conditions are being encoded using the om:parameter property with the specified vocabulary term ‘http://www.opengis.net/def/waterml/part2/1.0/gauging-conditions’. |
Test method |
Inspect the om:parameter entries and ensure that any entries using the ObservationConditions type has set the om:name/@xlink:href to ‘http://www.opengis.net/def/waterml/part2/1.0/gauging-conditions’. |
Test |
/observation-metadata |
Requirement |
/req/xml-gaugings/observation-metadata |
Test purpose |
Verify observation metadata are being encoded using the om:parameter property with the specified vocabulary term ‘http://www.opengis.net/def/waterml/part2/1.0/gauging-metadata. |
Test method |
Inspect the om:parameter entries and ensure that any entries using the GaugingObservationMetadata type has set the om:name/@xlink:href to ‘http://www.opengis.net/def/waterml/part2/1.0/gauging-metadata. |
B.6 Conformance Class: Section Observation XML
Conformance Class: Section Observation XML | |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-section-observation | |
Requirements |
http://www.opengis.net/spec/req/waterml/part2/1.0/req/xml-section-observation |
Dependency |
http://www.opengis.net/spec/req/waterml/part2/1.0/conf/xml-rules |
Test |
/observation-type |
Requirement |
/req/xml-section-observation/observation-type |
Test purpose |
Verify that the XML instance uses a valid OM_Observation type to encod a section observation. |
Test method |
Validate the XML instance document using the O&M XML Schema document: http://schemas.opengis.net/om/2.0/observation.xsd |
Test |
/observed-property |
Requirement |
/req/xml-section-observation/observed-property |
Test purpose |
Verify that the XML instance uses a valid vocabulary term for the observedProperty element. |
Test method |
Inspect the om:observedProperty element and ensure it’s xlink:href attribute refers to a code within the http://www.opengis.net/def/waterml/part2/1.0/SectionPropertyCode vocabulary. |
Bibliography
- Beven, K., Buytaert, W., & Smith, L. A. (2012). On virtual observatories and modelled realities (or why discharge must be treated as a virtual variable). Hydrological Processes, 26(12), 1905-1908.
- Beven, K., & Westerberg, I. (2011). On red herrings and real herrings: disinformation and information in hydrological inference. Hydrological Processes, 25(10), 1676-1680.
- G. Di Baldassarre and A. Montanari (2009), Uncertainty in river discharge observations: a quantitative analysis. Hydrology and Earth System Sciences.
- Hamilton, AS, Moore, RD. 2012. Quantifying uncertainty in streamflow records. Canadian Water Resources Journal. 37(1):3-21.
- José-Luis Guerrero, Ida K. Westerberg, Sven Halldin, Chong-Yu Xu, Lars-Christer Lundin, Temporal variability in stage–discharge relationships, Journal of Hydrology, Volumes 446–447, 26 June 2012, Pages 90-102, ISSN 0022-1694, 10.1016/j.jhydrol.2012.04.031
- McMillan , H., Krueger, T. and Freer, J. 2012, Benchmarking observational uncertainties for hydrology: rainfall, river discharge and water quality. Hydrol. Process.. doi: 10.1002/hyp.9384
- Stephen R. Jackson, David R. Maidment. RiverML: A Harmonized Transfer Language for River Hydraulic Models.
- Tomkins, Kerrie M. “Uncertainty in streamflow rating curves: methods, controls and consequences.” Hydrological Processes (2012).
Footnotes
[1] www.opengeospatial.org/standards/waterml
[2] http://cite.opengeospatial.org/
[3] www.opengeospatial.org/standards/waterml
[4] Harmonising standards for water observations data, discussionpaper. OGC 09-124r2,
[5] Graph extracted from http://www.water.nsw.gov.au/. Identifiers and site details removed.
[6] Extracted from WMO Guide to Hydrological Practices, Volume I.
[7] Beven, K., & Westerberg, I. (2011). On red herrings and real herrings: disinformation and information in hydrological inference. Hydrological Processes, 25(10), 1676-1680.
[8] OGC HY_Features: a Common Hydrologic Feature Model. https://portal.opengeospatial.org/files/?artifact_id=55157