i. Abstract
This Best Practice describes how to configure XML documents for single and time series water quality measurements. In addition to stating the rules for using the O&M and WML 2 standards, along with the appropriate content ontologies, this Best Practice provides guidance through examples. This document is intended to complement WaterML 2.0 as part of a suite of standards for water observation data.
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
ogcdoc, observations, water, quality, time-series
iii. Preface
This paper has been adapted from a report prepared by CSIRO for the Bureau of Meteorology (BoM) as part of the Information Platform to support Bioregional Assessment of Australia’s major coal-bearing basins (IPBA) project (Simons & Cox, 2013).
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.
iv. Submitting organizations
The following organizations submitted this Document to the Open Geospatial Consortium (OGC):
- CSIRO Australia
v. Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name | Representing | OGC member |
---|---|---|
Simon J D Cox |
CSIRO Land and Water, Melbourne, Victoria, Australia |
Yes |
Bruce A Simons |
CSIRO Land and Water, Melbourne, Victoria, Australia |
Yes |
Scope
The purpose of this Best Practice is to describe how the Observations & Measurements and WaterML 2 standards are to be used to deliver Water Quality data.
The following items are considered out of scope for this report:
- Key existing water-related domain information models, such as GroundWaterML and HY_Feature, are identified in this report and suggestions made on how to use these existing models, but no attempt is made to harmonise or replace them.
- Modelling the water quality semantic content, or vocabularies, required for the information model.
OMXML provides an O&M XML implementations of sampling feature types, such as SF_SamplingPoint (‘station’), SF_SamplingCurve (observation boreholes, trajectories, traverses), and SF_Specimen (physical samples), that are used frequently in water quality observations, and thus are likely to be useful when transferring datasets. However, at this time we do not consider it necessary to introduce specific requirements concerning the use of these types for water quality data.
Similarly, WML2 does not restrict the feature of interest to be only point-based sampling features. It does, however, identify that this is a common pattern for in-situ monitoring and captures this in the “monitoring point feature of interest” requirements class (Taylor, 2012).
Conformance
This Standard defines an XML implementation of models for describing water quality observations and time series. The implementation is described using the XML Schema language and Schematron.
Requirements for one standardization target type are considered:
- data instances
i.e. XML documents that encode observation data for exchange. Since data producing applications should generate conformant data instances, the requirements and tests described in this standard effectively also apply to that standardization target.
Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document.
All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.
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.
- Atkinson, R. and Dornblut, I., 2012. HY_Features: a Common Hydrologic Feature Model. OGC Discussion Paper, OGC 11-039r2, Open Geospatial Consortium Inc.
- Boisvert, E. and Brodaric, B., 2012. GroundWater Markup Language (GWML) – enabling groundwater data interoperability in spatial data infrastructures. Journal of Hydroinformatics, 14(1): 93.
- Cox, S.J.D. (ed.), 2010a. Geographic Information: Observations and Measurements OGC Abstract Specification Topic 20. OGC 10-004r3 and ISO 19156:2011.
- Cox, S.J.D. (ed.), 2010b. Observations and Measurements - XML Implementation. OGC 10-025r1. Open Geospatial Consortium Inc.
- OGC Geography Markup Language v3.2 OGC Document 07-036 and ISO 19136:2007
- Simons, B.A, Yu, J. and Cox, S.J.D., (2013) Water Quality vocabularies for Bioregional Assessments. Water for a Healthy Country Flagship Report series
- Taylor, P. (ed.), 2012. OGC WaterML 2.0: Part 1- Timeseries. OGC 10-126r3 Open Geospatial Consortium Inc.
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.
- 4.1 element <XML>
- 4.2 GML application schema
- 4.3 GML document
- 4.4 GML schema
- 4.5 measurement
- 4.6 observation
- 4.7 observation result
- 4.8 sampled feature
- 4.9 sampling feature
- 4.10 schema <XML Schema>
- 4.11 schema document <XML Schema>
basic information item of an XML document containing child elements, attributes and character data
NOTE From the XML Information Set: ―Each XML document contains one or more elements, the boundaries of which are either delimited by start-tags and end-tags, or, for empty elements, by an empty-element tag. Each element has a type, identified by name, sometimes called its ‘generic identifier’ (GI), and may have a set of attribute specifications. Each attribute specification has a name and a value.
[ISO 19136:2007]
application schema written in XML Schema in accordance with the rules specified in ISO 19136:2007
[ISO 19136:2007]
XML document with a root element that is one of the elements AbstractFeature, Dictionary or TopoComplex specified in the GML schema or any element of a substitution group of any of these elements
[ISO 19136:2007]
schema components in the XML namespace ―http://www.opengis.net/gml/3.2‖ as specified in ISO 19136:2007
[ISO 19136:2007]
set of operations having the object of determining the value of a quantity
[ISO/TS 19101-2:2008, definition 4.20]
act of observing a property
NOTE The goal of an observation may be to measure or otherwise determine the value of a property
[ISO 19156:2011]
estimate of the value of a property determined through a known procedure
[ISO 19156:2011]
the real-world domain feature of interest, such as a groundwater body, aquifer, river, lake, or sea, which the sampling feature makes observations concerning
[ISO 19156:2011]
feature, such as a station, transect, section or specimen, which is involved in making observations concerning a domain feature
NOTE A sampling feature is purely an artefact of the observational strategy, and has no significance independent of the observational campaign.
[ISO 19156:2011]
collection of schema components within the same target namespace
EXAMPLE Schema components of W3C XML Schema are types, elements, attributes, groups, etc.
[ISO 19136:2007]
XML document containing schema component definitions and declarations
NOTE The W3C XML Schema provides an XML interchange format for schema information. A single schema document provides descriptions of components associated with a single XML namespace, but several documents may describe components in the same schema, i.e. the same target namespace.
[ISO 19136:2007]
Conventions
Requirements class
Each normative statement (requirement or recommendation) in this standard is a member of a requirements class. Each requirements class is described in a discrete clause or sub-clause, and summarized using the following template:
Requirements class | /req/{classM} |
---|---|
Target type |
[artefact or technology type] |
Dependency |
[identifier for another requirements class] |
Requirement |
/req/{classM}/{reqN} |
Recommendation |
/req/{classM}/{recO} |
Requirement |
/req/{classM}/{reqP} |
Requirement /Recommendation |
[repeat as necessary] |
All requirements in a class must be satisfied. Hence, the requirements class is the unit of re-use and dependency, and the value of a Dependency requirement is another requirements class. All requirements in a dependency must also be satisfied by a conforming implementation. A requirements class may consist only of dependencies and introduce no new requirements.
Requirement
All requirements are normative, and each requirement is presented using the following template:
/req/[classM]/[reqN] |
[Normative statement] |
where /req/[classM]/[reqN] identifies the requirement or recommendation. The use of this layout convention allows the normative provisions of this Standard to be easily located by implementers.
Conformance class
Conformance to this Standard is possible at a number of levels, specified by conformance classes (Annex A). Each conformance class is summarized using the following template:
Conformance class | /conf/{classM} |
---|---|
Dependency |
[identifier for another conformance class] |
Requirements |
/req/{classA} |
Tests |
[reference to clause(s) containing tests] |
All tests in a class must be passed, so dependencies are on other conformance classes. Each conformance class tests conformance to a set of requirements packaged in a requirements class.
Identifiers
Each requirements class, requirement and recommendation is identified by a URI. The identifier supports cross-referencing of class membership, dependencies, and links from each conformance test to requirements tested. In this standard identifiers are expressed as partial URIs or paths, which can be appended to a base URI that identifies the standard as a whole in order to construct a complete URI for identification in an external context
The URI for each requirements class has the form
http://www.opengis.net/spec/watermlwq/1.0/req/[classM]
The URI for each requirement or recommendation has the form
http://www.opengis.net/spec/watermlwq/1.0/req/[classM]/[reqN]
The URI for each conformance class has the form
http://www.opengis.net/spec/watermlwq/1.0/conf/[classM]
The URI for each conformance test has the form
http://www.opengis.net/spec/watermlwq/1.0/conf/[classM]/[testN]
Conceptual schemas
Conceptual schemas in the normative part of this Standard are presented in the Unified Modeling Language (UML). UML diagrams are presented in compliance with ISO/IEC 19505-2. No conceptual schemas have been created as part of this standard, with the UML diagrams being for informative purposes only (Chapter 4).
External package abbreviations
Concepts from schemas defined in some other International Standards are designated with names that start with alpha codes as follow:
- GF
- ISO 19109:2005 General Feature Model
- GFI
- ISO 19156:2011 General Feature Model Instances
- TM
- ISO 19108:2002 Temporal Schema, Temporal Objects
- MD
- ISO 19115 Metadata
- CV
- ISO 19123:2005 Schema for Coverage Geometry and Functions
- OM
- ISO 19156:2011 Observations and Measurements
- DQ
- ISO 19157:201X Data Quality
- WML2
- OGC® WaterML 2.0: Part 1- Timeseries
Abbreviations
- CSIRO
- Commonwealth Scientific and Industrial Research Organisation
- GML
- OGC Geography Mark-up Language
- O&M
- OGC Observations and Measurements Conceptual Model
- OGC
- Open Geospatial Consortium
- OMXML
- Observations and Measurements XML Implementation
- SWE
- OGC Sensor Web Enablement
- UML
- Unified Modeling Language
- WML2
- WaterML 2.0 – Part 1
- XML
- Extensible Mark-up Language
- XSD
- W3C XML Schema Definition Language
Background
Technical Basis
This OGC Best Practice builds on the OMXML standard for encoding observations.
OMXML provides a single XML element for generic observations (i.e. <om:OM_Observation>). The standard observation result has an unspecified type (implemented as the XML Schema wildcard type=’xs:anyType’). The types of other observation properties observed-property, feature-of-interest, and observation procedure are also generic. Observations can be specialized for particular applications by restricting the type or source of these properties. For the XML encoding this may be achieved either using a specialized XML Schema, or by supplementing the XML Schema for the generic case with Schematron rules to test the type or value of the properties.
OMXML itself provides a standard set of observation types specialized by result type. In this standard we use the OMXML encoding for Measurement (i.e. observations whose result is a scaled number) for the case of single observations of water quality, and add constraints on the observed property, units of measure, and feature of interest.
WaterML 2.0 (part 1) is an existing specialization of OMXML, in which (i) the result is a time-series; and (ii) the sampling feature-of-interest is a monitoring station. In this standard we use the WaterML 2.0 encoding for water quality time-series, and add constraints on the observed property, units of measure, and ultimate (sampled) feature of interest.
It is also notable that OMXML provides XML implementations of the sampling feature types defined in O&M 2.0. Several of these concepts, such as SF_SamplingPoint (‘station’), SF_SamplingCurve (observation boreholes, trajectories, traverses), and SF_Specimen (i.e. physical samples) are used frequently in water quality observations, and thus the XML implementation are likely to be useful when transferring datasets. However, at this time we do not consider it necessary to introduce specific requirements concerning the use of these types for water quality data.
The core of WaterML2.0 also does not restrict the feature of interest to be only point-based sampling features. It does, however, identify that this is a common pattern for in-situ monitoring and captures this in the “monitoring point feature of interest” requirements class. It is thus possible to use different sampling features as the target feature. For example, the time series observation may describe the average value of a polygon through time (Taylor, 2012).
Classification of water quality observations
We distinguish between two forms of water quality observations:
- single measurements of a single water quality parameter, where the result is a scalar value
- multiple measurements of a single water quality parameter related to a single location, where the result is organized into a time-series, as time-value pairs (TVP).
These are represented in separate requirements classes and corresponding conformance classes. By structuring the standard in this way, a conformant implementation need only implement those classes that are necessary. Components that connect to the implementation have a precise specification of the implementation and can develop their application to match.
Within a dataset, each observation relates to a single water quality parameter. This follows the precedent set by WML 2.0. If multiple water quality parameters are measured, then data for each parameter is encoded as a separate observation (though potentially packaged in a single dataset or file). While various methods have been used previously to combine multi-parameter data into a single object, this results in multiple alternative ways of representing the same data. In the interests of minimising variability, and thus simplifying the design of client applications, multi-parameter data is not interleaved. The client is responsible for combining data if required.
Information Model
Water Quality package dependencies
Figure 1 provides a view of the primary requirements classes in this standard, modeled as UML packages, and their dependencies.
WML2 specifies time series as either time-value pairs or domain ranges (Taylor, 2012). Although the normative UML requirements for both have been specified, the specification for a GML XML Schema implementation that is compliant with the UML model has only been provided for time-value pair time series. No attempt has been made here to provide water quality requirements for domain range time series.
Water Quality informative classes
Figure 2 shows the types and elements defined in this standard, modeled as UML classes, focusing on the Water Quality-specific constraints. The Water Quality classes are shown as subtypes of O&M and WML2 classes. Because of the encoding rule used, these classes do not appear explicitly in XML representation of Water Quality data instances; rather, the general O&M and WaterML 2 classes appear, with appropriate constraints on aspects of their content-models.
The notes in Figure 2 specify the restrictions on the general O&M and WML2 models required for water quality data. It is intended that these constraints would be validated using Schematron for the XML representation.
Requirements Class: Time series XML rules
Observations of water quality use either the OMXML element OM_Measurement or the WML2 element MeasurementTimeseries. The units of measure used in the result are taken from a water quality vocabulary. This requirement is a modification of the units of measure requirement in the WML2 requirements classhttp://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules. In addition, the WML2 requirements class http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules/time-zone has been modified to include all time elements, not just those associated with time series. Otherwise, this requirements class is the same as that class. The requirements reused from WML2 are repeated here for convenience.
Requirements class | http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules |
---|---|
Target type |
XML data document |
Dependency |
http://www.w3.org/TR/xmlschema-2 |
Dependency |
http://www.opengis.net/doc/IS/GML/3.2/clause/2.4 |
Dependency |
http://www.opengis.net/spec/SWE/2.0/req/xsd-simple-components |
Dependency |
urn:iso:dis:iso:8601:2004:clause:4 |
Requirement |
http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules/iso8601-time |
Requirement |
/req/xsd-xml-rules/time-zone |
Requirement |
/req/xsd-xml-rules/unit-of-measure |
Requirement |
http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules/swe-types |
Recommendation |
http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules/xlink-title |
Recommendation |
http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules/vocabulary-references |
The date-time formats will conform to ISO standards.
http://www.opengis.net/spec/waterml/2.0 |
All date-time elements shall be encoded using ISO8601 extended time format |
Note that this precludes the use of time-coordinate systems such as UNIX time. This is specified in order to be maximally consistent with WML2 requirements. The time zone will be included in the time element.
/req/xsd-xml-rules/time-zone |
The value of each time element shall include a time zone definition using a signed 4 digit character or a ‘Z’ to represent Zulu or Greenwich Mean Time (GMT). This is defined by the following regular expression: (Z|[+-]HH:MM) |
The units of measure shall be taken from a standard water quality vocabulary governed by the water community.
/req/xsd-xml-rules/unit-of-measure |
All units of measure shall be specified using the URI for an individual from the class http://qudt.org/schema/qudt#Unit defined in http://environment.data.gov.au/def/unit |
The unit of measure must be suitable for the observed property (constraint inherited from OM_Observation).
Some SWE Common types are restricted to avoid ambiguity.
http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules/swe-types |
When using the SWE Common types, the following elements shall not be used: swe:quality (AbstractSimpleComponentType), swe:nilValues (AbstractSimpleComponentType), swe:constraint (QuantityType, QuantityRangeType, CategoryType). The attributes ‘optional’ and ‘updatable’ from the base type ‘AbstractDataComponent’ shall not be used. |
The xlink:title attribute ought contain a text label when an xlink:href refers to a controlled vocabulary or ontology.
http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules/xlink-title |
If an xlink:href is used to reference a controlled vocabulary item, the element should encode the xlink:title attribute with a text label of the referenced item. |
Vocabulary references made via xlink:href ought to be a resolvable URI in the form of an HTTP URL.
http://www.opengis.net/spec/waterml/2.0/rec/xsd-xml-rules/vocabulary-references |
When specifying references to vocabulary (code) items using an xlink:href, a resolvable HTTP URL should be used which, when resolved, should provide suitable description of the concept being referenced. |
This requirements class defines common rules and recommendations for all XML instances.
Requirements class: observations (WQ_Observation)
Concrete observations of water quality use the O&M element OM_Measurement or the WML2 element MeasurementTimeseriesTVPObservation. The observed property common to these elements inherited from OM_Observation is taken from a standard vocabulary. The feature of interest property common to these elements comes from a water domain specific feature catalogue.
Requirements class |
/req/observation |
---|---|
Target type |
XML data document |
Dependency |
http://www.opengis.net/spec/OMXML/2.0/req/observation |
Dependency |
/req/xsd-xml-rules |
Requirement |
/req/observation/observed-property |
Recommendation |
/req/observation/feature-of-interest |
The observed property of the observation is to be taken from a standard water quality vocabulary governed by the water community.
/req/observation/observed-property |
The XML element om:observedProperty SHALL have an xlink:href property whose value is the URI for an individual from the class http://environment.data.gov.au/def/op#PropertyKind defined in http://environment.data.gov.au/def/property |
The ultimate feature of interest (domain sampled feature) is a water specific domain feature.
/req/observation/feature-of-interest |
The value of the href:xlink property is a URI that SHOULD denote a feature of a suitable type[1]. |
This is the core requirements class for all XML instances of water quality observations.
Requirements class: single measurements (WQ_Measurement)
Single observations of water quality use the O&M element OM_Measurement, and require that the units of measure used in the result are taken from a standard vocabulary.
Requirements class |
/req/single-measurement |
---|---|
Target type |
XML data document |
Dependency |
/req/observation |
Dependency |
http://www.opengis.net/spec/OMXML/2.0/req/measurement |
Requirement |
/req/single-measurement/result-units |
The units of measure used in the single observation measurement result are required to be taken from a standard water quality vocabulary governed by the water community.
/req/single-measurement/result-units |
The value of the om:result/@uom SHALL be the URI for an individual from the class http://qudt.org/schema/qudt#Unit defined in http://environment.data.gov.au/def/unit |
The unit of measure must be suitable for the observed property (constraint inherited from OM_Observation).
This is the requirements class for all XML instances of single water quality measurements.
Requirements class: time series time-value pair measurements (WQ_MeasurementTimeSeriesTVP)
Time-value pair (tvp) time series measurements of water quality use the WML2 element MeasurementTimeseriesTVP.
Requirements class |
/req/tvp-measurement |
---|---|
Target type |
XML data document |
Dependency |
http://www.opengis.net/spec/waterml/2.0/req/xsd-measurement-timeseries-tvp |
Dependency |
req/xsd-xml-rules |
Requirement |
/req/tvp-measurement/result-units |
The units of measure used in the time value pair measurement result are required to be taken from a standard water quality vocabulary governed by the water community.
/req/tvp-measurement/result-units |
The value of the wml2:defaultPointMetadata wml2:uom xlink:href SHALL be the URI for an individual from the class http://qudt.org/schema/qudt#Unit defined in http://environment.data.gov.au/def/unit |
This is the requirements class for all XML instances of time series water quality measurements.
Requirements class: time series time-value pair observations (WQ_MeasurementTimeSeriesTVPObservations)
Time-value pair (tvp) time series observations of water quality use the WML2 element MeasurementTimeseriesTVPObservation with observed property and feauture of interest content constrained by WQ_Observation and units of measure constrained by WQ_MeasurementTimeSeriesTVP.
Requirements class |
/req/tvp-observation |
---|---|
Target type |
XML data document |
Dependency |
/req/observation |
Dependency |
/req/tvp-measurement |
Dependency |
http://www.opengis.net/spec/waterml/2.0/req/xsd-measurement-timeseries-tvp-observation |
This requirements class combines existing requirements classes in a novel way, but introduces no new requirements.
Media Types for water quality data
Water quality data conforming to this specification 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: Abstract Test Suite (Normative)
A.1 Introduction
The test suite is structured into 5 conformance classes. Each conformance class is related to one requirements class from clause 5. Each conformance class contains a number of abstract tests[2]. Each test relates to one or more specific requirements, which are explicitly indicated in the description of the test.
There is a dependency on the conformance class for GML documents, defined in clause 2.4 (with the test suite in A.3) of OGC Geography Markup Language v3.2.
There is a dependency on the conformance class for Geographic Metadata XML encoding, described in Clause 2 and Annex A of Geographic information – metadata – XML implementation.
There are dependencies on the following conformance classes for Observations and Measurements XML encoding, described in Annex A of Observations and Measurements – XML implementation:
http://www.opengis.net/spec/OMXML/2.0/conf/observation
http://www.opengis.net/spec/OMXML/2.0/conf/measurement
There are dependencies on the following conformance classes for WaterML 2 XML encoding described in Annex 2 WaterML 2.0: Part 1- Timeseries:
http://www.opengis.net/spec/waterml/2.0/conf/xsd-measurement-timeseries-tvp
http://www.opengis.net/spec/waterml/2.0/req/xsd-measurement-timeseries-tvp-observation
A.2 Conformance class: XSD-XML rules
This is the core conformance class for XML implementation of Water Quality.
This conformance class is based on the WML2 http://www.opengis.net/spec/waterml/2.0/conf/xsd-xml-rules conformance class, but changes the units of measure from UCUM to those appropriate for Water Quality.
There is a dependency on the conformance class for GML documents, defined in clause 2.4 (with the test suite in A.3) of OGC Geography Markup Language v3.2.
There is a dependency on the conformance class for Geographic Metadata XML encoding, described in Clause 2 and Annex A of Geographic information – metadata – XML implementation.
Conformance Class |
conf/xsd-xml-rules |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Requirements |
|||||||||||
Dependency |
http://www.opengis.net/spec/SWE/2.0/conf/xsd-simple-components |
||||||||||
Dependency |
http://www.w3.org/TR/xmlschema-2 |
||||||||||
Dependency |
http://www.opengis.net/doc/IS/GML/3.2/clause/2.4 |
||||||||||
Dependency |
urn:iso:dis:iso:8601:2004:clause:4 |
||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
A.3 Conformance class: Observation data
This conformance class first requires that the target pass the O&M http://www.opengis.net/spec/OMXML/2.0/conf/observation conformance class, and adds additional tests to ensure the observed property is appropriate for Water Quality.
Conformance Class |
/conf/observation |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Requirements |
/req/observation |
||||||||||
Dependency |
http://www.opengis.net/spec/OMXML/2.0/conf/observation |
||||||||||
Dependency |
conf/xsd-xml-rules |
||||||||||
|
Note that there is no formal test for the recommendation that the feature of interest is of a suitable type (i.e. /req/observation/feature-of-interest), because this statement is a recommendation, not a requirement.
A.4 Conformance class: Measurement data
This conformance class first requires that the target passes the O&M http://www.opengis.net/spec/OMXML/2.0/conf/measurement and the /conf/observation conformance classes, and adds an additional test to ensure the units of measure used are appropriate for Water Quality.
Conformance Class | /conf/single-measurement | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Requirements |
/req/single-measurement |
||||||||||
Dependency |
http://www.opengis.net/spec/OMXML/2.0/conf/measurement |
||||||||||
Dependency |
/conf/observation |
||||||||||
|
A.5 Conformance class: TVP time series measurement
This conformance class extends the WML2 http://www.opengis.net/spec/waterml/2.0/conf/xsd-measurement-timeseries-tvp conformance class to specify the water quality requirement /req/tvp-measurement.
Conformance Class | conf/tvp-measurement | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Requirements |
/req/tvp-measurement |
||||||||||
Dependency |
http://www.opengis.net/spec/waterml/2.0/conf/xsd-measurement-timeseries-tvp |
||||||||||
Dependency |
/conf/xsd-xml-rules |
||||||||||
|
A.6 Conformance class: TVP time series observation
This conformance test extends the WML2 http://www.opengis.net/spec/waterml/2.0/conf/xsd-measurement-timeseries-tvp-observation conformance test to test the water quality requirements /req/tvp-observation and /req/tvp-measurement.
Conformance Class | conf/tvp-observation |
---|---|
Requirements |
/req/tvp-observation |
Dependency |
http://www.opengis.net/spec/waterml/2.0/conf/xsd-measurement-timeseries-tvp-observation |
Dependency |
/conf/observation |
Dependency |
/conf/tvp-measurement |
Annex B: Example XML instances (informative)
The XML examples are provided here for informative purposes.
B1 O&M Measurement
The following example shows a single measurement. The time of the measurement, runtime parameters (type, time, units and value), observed property, result (value, units) and sampled feature are provided.
This example conforms to the following water quality conformance classes:
/conf/observation
/conf/single-measurement
/conf/xsd-xml-rules
<!– Conforms to http://www.opengis.net/spec/watermlwq/1.0/conf/single-measurement–>
<om:OM_Observation
gml:id="WQ_Measurement_Test01"
xmlns:om="http://www.opengis.net/om/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:gml="http://www.opengis.net/gml/3.2"
xsi:schemaLocation="http://www.opengis.net/om/2.0 http://schemas.opengis.net/om/2.0/observation.xsd">
<gml:description>Measurement test instance: turbidity measurement</gml:description>
<gml:name>Water quality measurement test 01</gml:name>
<om:type xlink:href="http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement"/>
<om:phenomenonTime>
<!– Time is ISO8601 conformant with time-zone –>
<gml:TimeInstant
gml:id="ot1t">
<gml:timePosition>2005-01-11T16:22:25.00+10:00</gml:timePosition>
</gml:TimeInstant>
</om:phenomenonTime>
<om:resultTime xlink:href="#ot1t"/>
<!– a notional URL identifying a procedure … –>
<om:procedure
xlink:href="http://en.wikipedia.org/wiki/Nephelometer"/>
<!– environmental conditions during measurement –>
<om:parameter>
<om:NamedValue>
<!– xlink:href comes from http://environment.data.gov.au/def/property instances with xlink:title from skos:prefLabel and uom from qudt:unit –>
<om:name xlink:href=" http://environment.data.gov.au/def/property/water_temperature " xlink:title="water temperature"/>
<om:value xsi:type="gml:MeasureType" uom="http://qudt.org/vocab/unit#DegreeCelsius">22.3</om:value>
</om:NamedValue>
</om:parameter>
<!– a URL identifying the observed property –>
<om:observedProperty
xlink:href=" http://environment.data.gov.au/def/property/turbidity-water " xlink:title="water turbidity"/>
<!– a notional WFS call identifying the object regarding which the observation was made. The standard specifies that the object should be an instance of a type from the designated feature-type catalogue, which includes GroundWaterML GroundWaterBody or HydrologicUnit, or HY_Features HydroFeature. The type may also be asserted using the xlink:role attribute. –>
<om:featureOfInterest
xlink:href="http://environment.data.gov.au/groundwater/aquifers/yarragadee-aquifer"
xlink:title="Yarragadee Aquifer"
xlink:role="http://environment.data.gov.au/def/featuretype/HydrologicUnit"/>
<!– The XML Schema type of the result is indicated using the value of the xsi:type attribute –>
<!– xlink:href comes from http://environment.data.gov.au/def/propertyinstances with uom from qudt:unit –>
<om:result
xsi:type="gml:MeasureType"
uom="http://qudt.org/vocab/unit#NephelometricTurbidityUnit">100</om:result>
</om:OM_Observation>
B2 Time-value pair time series collection example
The following example shows a complete time-value time series collection. The temporal extent, procedure, default unit of measure, sampled feature and the sampling point for the observations are provided as common data for any observations in the collection. An example point showing a modified unit of measure is also included.
This example conforms to the following water quality and WML2 conformance classes:
/conf/xsd-xml-rules
/conf/tvp-observation
/conf/tvp-measurement
http://www.opengis.net/spec/watermlwq/1.0/conf/xsd-timeseries-tvp-observation
http://www.opengis.net/spec/watermlwq/1.0/conf/xsd-timeseries-tvp
http://www.opengis.net/spec/watermlwq/1.0/conf/xsd-timeseries-observation
http://www.opengis.net/spec/watermlwq/1.0/conf/xsd-feature-of-interest-monitoring-point
http://www.opengis.net/spec/watermlwq/1.0/conf/xsd-collection
http://www.opengis.net/spec/watermlwq/1.0/conf/xsd-observation-process
<wml2:Collection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:wml2="http://www.opengis.net/waterml/2.0"
xmlns:swe="http://www.opengis.net/swe/2.0"
xmlns:om="http://www.opengis.net/om/2.0"
xmlns:sam="http://www.opengis.net/sampling/2.0"
xmlns:sams="http://www.opengis.net/samplingSpatial/2.0"
xmlns:gco="http://www.isotc211.org/2005/gco"
xmlns:gmd="http://www.isotc211.org/2005/gmd"
xsi:schemaLocation="http://www.opengis.net/waterml/2.0 http://schemas.opengis.net/waterml/2.0/waterml2.xsd"
gml:id="xsd-collection.example">
<gml:description>Example collection for XML encoding http://www.opengis.net/spec/waterml/2.0/req/xsd-collection. Time series observation of water temperature</gml:description>
<wml2:metadata>
<wml2:DocumentMetadata gml:id="document-metadata.1">
<wml2:generationDate>2011-11-28T10:05:05+11:00</wml2:generationDate>
<wml2:version xlink:href="http://www.opengis.net/waterml/2.0" xlink:title="WaterML 2.0"/>
<wml2:generationSystem>Manual</wml2:generationSystem>
<wml2:profile xlink:href="http://www.opengis.net/spec/watermlwq/1.0/conf/xsd-xml-rules"/>
<wml2:profile xlink:href="http://www.opengis.net/spec/watermlwq/1.0/conf/tvp-measurement"/>
<wml2:profile xlink:href="http://www.opengis.net/spec/watermlwq/1.0/conf/tvp-observation"/>
<wml2:profile xlink:href="http://www.opengis.net/spec/waterml/2.0/conf/xsd-feature-of-interest-monitoring-point"/>
<wml2:profile xlink:href="http://www.opengis.net/spec/waterml/2.0/conf/xsd-collection"/>
<wml2:profile xlink:href="http://www.opengis.net/spec/waterml/2.0/conf/xsd-observation-process"/>
</wml2:DocumentMetadata>
</wml2:metadata>
<wml2:temporalExtent>
<gml:TimePeriod gml:id="time-period.1">
<gml:beginPosition>2011-11-21T12:27:00+10:00</gml:beginPosition>
<gml:endPosition>2011-11-21T12:57:10+10:00</gml:endPosition>
</gml:TimePeriod>
</wml2:temporalExtent>
<wml2:samplingFeatureMember>
<wml2:MonitoringPoint gml:id="monitoring-point.1">
<gml:name codeSpace="http://www.csiro.au/">Deddington</gml:name>
<sam:sampledFeature xlink:href="http://csiro.au/features/rivers/south_esk/deddington" xlink:title="Deddington"/>
<sams:shape>
<gml:Point gml:id="location_deddington">
<gml:pos srsName="urn:ogc:def:crs:EPSG::4326">-41.814935 147.568517 </gml:pos>
</gml:Point>
</sams:shape>
<wml2:verticalDatum xlink:href="urn:ogc:def:crs:EPSG::5711" xlink:title="Australian Height Datum"/>
<wml2:timeZone>
<wml2:TimeZone>
<wml2:zoneOffset>+11:00</wml2:zoneOffset>
<wml2:zoneAbbreviation>AEDT</wml2:zoneAbbreviation>
</wml2:TimeZone>
</wml2:timeZone>
</wml2:MonitoringPoint>
</wml2:samplingFeatureMember>
<wml2:observationMember>
<om:OM_Observation gml:id="observation.1">
<gml:identifier codeSpace="http://www.example.com/observations">EX.OB.B.1</gml:identifier>
<om:metadata>
<wml2:ObservationMetadata>
<gmd:contact xlink:href="http://www.example.com" xlink:title="Example Pty Ltd"/>
<gmd:dateStamp>
<gco:DateTime>2011-11-28T10:01:00+10:00</gco:DateTime>
</gmd:dateStamp>
<gmd:identificationInfo xlink:href="http://www.example.com/observations/C.1" xlink:title="Observation C.1"/>
<wml2:intendedObservationSpacing>PT15M</wml2:intendedObservationSpacing>
<wml2:status xlink:href="http://water.usgs.gov/provisional.html" xlink:title="Provisional data"/>
<wml2:sampledMedium xlink:href="http://environment.data.gov.au/def/object/water" xlink:title="water"/>
</wml2:ObservationMetadata>
</om:metadata>
<om:phenomenonTime xlink:href="#time-period.1" xlink:title="Temporal Extent"/>
<om:resultTime>
<gml:TimeInstant gml:id="time-instant.1">
<gml:timePosition>2011-11-21T13:05:00+10:00</gml:timePosition>
</gml:TimeInstant>
</om:resultTime>
<om:procedure>
<wml2:ObservationProcess gml:id="observation-process.1">
<wml2:processType xlink:href="http://www.opengis.net/def/processType/WaterML/2.0/Sensor" xlink:title="Sensor"/>
<wml2:processReference xlink:href="http://www.example.com/sensor/1.0" xlink:title="Sensor Sampling Regime 1.0"/>
</wml2:ObservationProcess>
</om:procedure>
<om:observedProperty xlink:href="http://environment.data.gov.au/def/property/water_temperature" xlink:title="water temperature"/>
<om:featureOfInterest xlink:href="http://environment.data.gov.au/groundwater/aquifers/yarragadee-aquifer" xlink:title="Yarragadee Aquifer"/>
<om:result>
<wml2:MeasurementTimeseries gml:id="timeseries.1">
<wml2:metadata>
<wml2:TimeseriesMetadata>
<wml2:temporalExtent xlink:href="#time-period.1"/>
</wml2:TimeseriesMetadata>
</wml2:metadata>
<wml2:defaultPointMetadata>
<wml2:DefaultTVPMeasurementMetadata>
<wml2:uom xlink:href="http://qudt.org/vocab/unit#DegreeCelsius" xlink:title="Degree Celsius" code="degC"/>
<wml2:interpolationType xlink:href="http://www.opengis.net/def/timeseriesType/WaterML/2.0/continuous" xlink:title="Instantaneous"/>
</wml2:DefaultTVPMeasurementMetadata>
</wml2:defaultPointMetadata>
<wml2:point>
<wml2:MeasurementTVP>
<wml2:time>2011-11-21T12:27:00+10:00</wml2:time>
<wml2:value>20.5</wml2:value>
</wml2:MeasurementTVP>
</wml2:point>
<wml2:point>
<wml2:MeasurementTVP>
<wml2:time>2011-11-21T12:44:35+10:00</wml2:time>
<wml2:value>20.5</wml2:value>
</wml2:MeasurementTVP>
</wml2:point>
<wml2:point>
<wml2:MeasurementTVP>
<wml2:time>2011-11-21T12:57:10+10:00</wml2:time>
<wml2:value>20.4</wml2:value>
</wml2:MeasurementTVP>
</wml2:point>
<wml2:point>
<wml2:MeasurementTVP>
<wml2:value>68.7</wml2:value>
<wml2:metadata>
<wml2:TVPMeasurementMetadata>
<wml2:accuracy>
<swe:Quantity>
<swe:uom xlink:href="http://qudt.org/vocab/unit#DegreeFahrenheit" xlink:title="Degree Fahrenheit" code="degF"/>
<swe:value>0.1</swe:value>
</swe:Quantity>
</wml2:accuracy>
</wml2:TVPMeasurementMetadata>
</wml2:metadata>
</wml2:MeasurementTVP>
</wml2:point>
</wml2:MeasurementTimeseries>
</om:result>
</om:OM_Observation>
</wml2:observationMember>
</wml2:Collection>
Annex C: Schematron tests
C1. Observed Property
This schematron (observed-property.sch) validates the XML document against test /conf/observation/observed-property of conformance class /conf/observation.
<?xml version=“1.0” encoding=“UTF-8”?>
<schema fpi=" http://schemas.opengis.net/wmlwq/1.0/observed-property.sch" see="http://www.opengis.net/spec/watermlwq/1.0/req/observation"
xmlns="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!–
This schematron schema checks the XML encoding requirements of Water Quality, as specified
in the requirements class:http://www.opengis.net/spec/watermlwq/1.0/req/observation
Copyright (c) 2013 CSIRO.
version=“1.0.0”
–>
<title>Water Quality XML encoding tests</title>
<p>This schematron schema checks the XML encoding requirements of Water Quality, as specified
in the requirements class: http://www.opengis.net/spec/watermlwq/1.0/req/observation</p>
<ns prefix="om" uri="http://www.opengis.net/om/2.0"/>
<ns prefix="gml" uri="http://www.opengis.net/gml/3.2"/>
<ns prefix="xlink" uri="http://www.w3.org/1999/xlink"/>
<ns prefix="swe" uri="http://www.opengis.net/swe/2.0"/>
<!– the logic for sch:report is opposite to sch:assert; you report if the statement is true –>
<pattern id="validObservedProperty">
<title>Test requirement: /req/observation/observed-property</title>
<rule context="*[@xlink:href and local-name()=’observedProperty’]">
<assert test="starts-with(@xlink:href, ‘http://environment.data.gov.au/def/property’)"
diagnostics="diag">For the observedProperty element an xlink to an instance from http://environment.data.gov.au/def/property must be provided. </assert>
</rule>
</pattern>
<diagnostics>
<diagnostic id="diag">Missing from
<value-of select="@xlink:href"/></diagnostic>
</diagnostics>
</schema>
C2. Single Measurement UOM.sch
This schematron (measurement-uom.sch) validates the XML document against test /conf/single-measurement/result-units of conformance class /conf/single-measurement.
<?xml version=“1.0” encoding=“UTF-8”?>
<schema fpi="http://schemas.opengis.net/wmlwq/1.0/measurement-uom.sch" see=" http://www.opengis.net/spec/watermlwq/1.0/req/single-measurement"
xmlns="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!–
This schematron schema checks the XML encoding requirements of Water Quality, as specified
in the requirements class: http://www.opengis.net/spec/watermlwq/1.0/req/single-measurement
Copyright (c) 2013 CSIRO.
version=“1.0.0”
–>
<title>Water Quality XML encoding tests</title>
<p>This schematron schema checks the XML encoding requirements of Water Quality, as specified
in the requirements class: http://www.opengis.net/spec/watermlwq/1.0/req/single-measurement</p>
<ns prefix="om" uri="http://www.opengis.net/om/2.0"/>
<ns prefix="gml" uri="http://www.opengis.net/gml/3.2"/>
<ns prefix="xlink" uri="http://www.w3.org/1999/xlink"/>
<ns prefix="swe" uri="http://www.opengis.net/swe/2.0"/>
<!– the logic for sch:report is opposite to sch:assert; you report if the statement is true –>
<pattern id="validUnitOfMeasure">
<title>Test requirement: /req/single-measurement/result-units</title>
<rule context="*[@uom]">
<assert test="starts-with(@uom, ‘http://qudt.org/vocab/unit’) or starts-with(@uom, ’ http://environment.data.gov.au/def/unit/)">
For the result element the uom attribute must be an instance from
http://environment.data.gov.au/def/unit. </assert>
</rule>
</pattern>
</schema>
C3. TVP Time Series Measurement UOM
This schematron (measurement-tvp-uom.sch) validates the XML document against conformance test /conf/tvp-measurement/result-unitsof conformance class /conf/tvp-measurement.
<?xml version=“1.0” encoding=“UTF-8”?>
<schema fpi="http://schemas.opengis.net/wmlwq/1.0/measurement-tvp-uom.sch" see="http://www.opengis.net/spec/watermlwq/1.0/req/tvp-measurement"
xmlns="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!–
This schematron schema checks the XML encoding requirements of Water Quality, as specified
in the requirements class: http://www.opengis.net/spec/watermlwq/1.0/req/tvp-measurement
Copyright (c) 2013 CSIRO.
version=“1.0.0”
–>
<title>Water Quality XML encoding tests</title>
<p>This schematron schema checks the XML encoding requirements of Water Quality, as specified
in the requirements class: http://www.opengis.net/spec/watermlwq/1.0/req/single-measurement</p>
<ns prefix="om" uri="http://www.opengis.net/om/2.0"/>
<ns prefix="gml" uri="http://www.opengis.net/gml/3.2"/>
<ns prefix="xlink" uri="http://www.w3.org/1999/xlink"/>
<ns prefix="swe" uri="http://www.opengis.net/swe/2.0"/>
<pattern id="validTVPUnitOfMeasure">
<title>Test requirement: /conf/tvp-measurement/result-units </title>
<rule context="*[@xlink:href and local-name()=’uom’]">
<assert test="starts-with(@xlink:href, ‘http://qudt.org/vocab/unit’) or starts-with(@xlink:href, ’ http://environment.data.gov.au/def/unit’)">
For the time series measurements the uom elements must have an xlink:href attribute that is an instance from
http://environment.data.gov.au/def/unit. </assert>
</rule>
</pattern>
</schema>
Annex D: Revision history
Date |
Release |
Author |
Paragraph modified |
Description |
---|---|---|---|---|
2014-01-10 |
0.1.0 |
Simon Cox |
All |
Initial version |
2014-01-14 |
0.1.1 |
Bruce Simons |
All |
Minor edits |
Annex E: Bibliography
- [1] Institute of Electrical and Electronics Engineers, 1990. IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries. New York, NY: 1990.
- [2] INSPIRE, 2009. D2.8.I.8 INSPIRE Data Specification on Hydrography – Guidelines. INSPIRE Infrastructure for Spatial Information in Europe.
- [3] Moran, B. 2012. Phase 1 Information Platform to support bioregional assessment of Australia’s major coal basins. Project Management Plan. Australian Government, Bureau of Meteorology. 28 July 2012, Version 4.
- [4] O’Hagan, R., Atkinson, R., Cox, S.J.D., Fitch, P., Lemon, D. and Walker, G., 2007. A reference model for a water resources observation network, Proceedings of the International Congress on Modelling and Simulation (MODSIM 07), Christchurch, New Zealand, pp. 10-12.
- [5] SEWPaC, 2012a. Australia’s bioregions (IBRA), version 6.1. [cited 11 May 2012]. http://www.environment.gov.au/parks/nrs/science/bioregion-framework/ibra/index.html. Australian Government: Department of Sustainability, Environment, Water, Population and Communities, Canberra, ACT.
- [6] SEWPaC, 2012b The framework for bioregional assessments of coal seam gas and coal mining development. A report of the Independent Expert Scientific Committee on Coal Seam Gas and Coal Mining through the Department of Sustainability, Environment, Water, Population and Communities.
- [7] Simons, B.A., Lemon, D., Cox, S.J.D. and Woodcock, R., (2012) Information Requirements for Bioregional Assessments. Water for a Healthy Country Flagship Report series ISSN: 1835-095X
- [8] Simons, B.A, and Cox, S.J.D., (2013) Water Quality exchange standard for the Bioregional Assessment Framework. Water for a Healthy Country Flagship Report series
- [9] Simons, B.A, Yu, J. and Cox, S.J.D., (2013) Water Quality vocabularies for Bioregional Assessments. Water for a Healthy Country Flagship Report series
Footnotes
[1]The catalogue http://environment.data.gov.au/def/featuretype/ may be used. It currently includes GroundWaterBody and HydrologicUnit from GroundWaterML, and HydroFeature from HY_Features.
[2] Following the practice in ISO standards, a test is termed ‘abstract’ unless all the details of a system including specific software to be used in executing the test are prescribed.
[3] If this specification becomes an OGC standard, the schematron documents will be hosted in the OGC schema repository. The likely address of each schematron document is given in its @fpi attribute.
[4] Note - http://environment.data.gov.au/def/op#PropertyKind is a superclass of http://environment.data.gov.au/def/op#ScaledQuantityKind, http://environment.data.gov.au/def/op#QualityKind and http://qudt.org/schema/qudt#QuantityKind