i. Abstract
TimeseriesML 1.0 defines an XML encoding that implements the OGC Timeseries Profile of Observations and Measurements [OGC 15-043r3], with the intent of allowing the exchange of such data sets across information systems. Through the use of existing OGC standards, it aims at being an interoperable exchange format that may be re-used to address a range of data exchange requirements.
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
Timeseries, observations, exchange, interoperability, OGC, TimeseriesML, XML, GML
iii. Preface
This standard is an XML implementation of the conceptual model defined in OGC Timeseries Profile of Observations and Measurements [OGC 15-043r3]. This standard has been developed from work initially undertaken within OGC WaterML 2.0: Part 1 – Timeseries.
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 Inc.
- Australian Bureau of Meteorology
- Met Office
- Australian Commonwealth Scientific and Industrial Research Organisation (CSIRO)
- Landcare Research
- Météo-France
- KISTERS AG
- Environment Canada
- US National Weather Service
v. Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name | Company | Member |
---|---|---|
James Tomkins |
Met Office |
Yes |
Dominic Lowe |
Australian Bureau of Meteorology |
Yes |
Bruce Bannerman |
Australian Bureau of Meteorology |
Yes |
Tony Boston |
Australian Bureau of Meteorology |
Yes |
Simon Cox |
CSIRO |
Yes |
Peter Taylor |
CSIRO |
Yes |
James Doyle |
Environment Canada |
Yes |
Jack Lindsey |
Environment Canada |
Yes |
Michael Natschke |
Kisters |
Yes |
Michael Utech |
Kisters |
Yes |
Alistair Ritchie |
Landcare Research |
Yes |
Frédéric Guillaud |
Météo-France |
Yes |
Paul Hershberg |
US National Weather Service |
Yes |
1. Scope
This document is an OGC® Implementation Standard for the representation of the Timeseries Profile of Observations and Measurements as XML. TimeseriesML 1.0 is implemented as an application schema of the Geography Markup Language version 3.3, making use of the OGC Observations & Measurements standards. TimeseriesML 1.0 is designed as an extensible schema to allow encoding of data to be used in a variety of exchange scenarios. Example areas of usage are: cross-border exchange of observational data; release of data for public dissemination; enhancing disaster management through data exchange; and exchange in support of national reporting. The core aspect of the Timeseries Profile of Observations and Measurements is the correct, precise description of timeseries. This document defines an implementation of this profile.
2. Conformance
This standard defines an XML encoding standard for the OGC Timeseries Profile of Observations and Measurements [OGC 15-043r3.
Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site[1].
In order to conform to this OGC® interface standard, a software implementation shall choose to implement:
- Any one of the conformance classes specified in Annex A (normative).
All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.
3. References
The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies.
- OGC 15-043r3 – Timeseries Profile of Observations and Measurements
- OGC 08-131r3 – The Specification Model – A Standard for Modular Specification
- ISO 19103:2005 – Conceptual Schema Language
- ISO 19108:2002 -Geographic information - Temporal schema
- ISO 19109:2005 -Geographic information – Rules for application schema
- ISO 8601- Data elements and interchange formats – Information interchange – Representation of dates and times
- OGC 10-004r3 OGC Abstract Specification Topic 20 – Observations and Measurements (aka ISO 19156:2011)
- OGC 08-015r2 OGC Abstract Specification Topic 2 – Spatial Referencing by Coordinates (aka ISO 19111:2007)
- OGC 07-011 OGC Abstract Specification Topic 6 – Schema for Coverage geometry and functions (aka ISO 19123:2005)
- OGC 01-111 OGC Abstract Specification Topic 11 – Geographic information — Metadata (aka ISO 19115:2003)
- OGC 07-036 Geography Markup Language (aka ISO 19136:2007)
- OGC 09-146r2 Implementation Schema for Coverages (1.0.1)
- OGC 10-126r4 OGC WaterML2.0 part 1 – Timeseries.
- OGC 08-094r1 OGC SWE Common Data Model Encoding Standard v2.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 purpose of this document, the following additional terms and definitions apply:
- 4.1 Coverage
Feature that acts as a function to return values from its range for any direct position within its spatial, temporal or spatiotemporal domain
[ISO 19123:2005, definition 4.17]
- 4.2 Domain Feature
-
Feature of a type defined within a particular application domain
[ISO 19156, definition 4.4]
- 4.3 Feature
-
Abstraction of real-world phenomena
[ISO 19101:2002, definition 4.11]
- 4.4 Observation
-
Act of observing a property
[ISO 19156, definition 4.10]
- 4.5 Observation Procedure
-
Method, algorithm or instrument, or system of these which may be used in making an observation
[ISO 19156, definition 4.11]
- 4.6 Property <General Feature Model>
-
Facet or attribute of an object referenced by a name
EXAMPLE: Abby’s car has the color red where “color red” is a property of the car instance
- 4.7 Sampling Feature
-
Feature, such as a station, transect, section or specimen, which is involved in making observations concerning a domain feature
[ISO 19156, definition 4.16]
- 4.8 Sensor
-
Type of observation procedure that provides the estimated value of an observed property at its output
Note: A sensor uses a combination of physical, chemical or biological means in order to estimate the underlying observed property. At the end of the measuring chain electronic devices often produce signals to be processed
[OGC SWE Common 2.0, definition 4.5.]
- 4.9 Timeseries
-
Sequence of data values which are ordered in time.
Note: The sequence typically records (or predicts) the value of a property of a feature over a time interval, with interim values at times within the interval. These times are monotonic and are often, but not always, at regular intervals (e.g. an hourly timeseries).
5. Conventions
5.1 Abbreviated Terms
In this document the following abbreviations and acronyms are used or introduced:
GMLCOV OGC Implementation Schema for Coverages
ISO International Organization for Standardization
O&M Observations and Measurements
OGC Open Geospatial Consortium
SensorML Sensor Model Language
SWE Sensor Web Enablement
TSML TimeseriesML
TVP Time-Value Pair
UML Unified Modeling Language
UTC Coordinated Universal Time
XML Extensible Markup Language
5.2 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 profile, the following color scheme is used to identify the package in which the class exists. This is just for informative purposes.
Blue: Defined within the Timeseries Profile of O&M (conceptual model)
Yellow: Defined within this standard (XML implementation model)
Green: ISO19156 – Observations & Measurements
Red: Other (ISO or GML)
5.3 Finding Requirements and Recommendations
This standard is identified as http://www.opengis.net/spec/tsml/1.0. For clarity, each normative statement in this standard is in one and only one place and defined within a requirements class table and identified with a URI, whose root is the standard’s URI. In this standard, all requirements are associated to tests in the abstract test suite in Annex A using the URL of the requirement as the reference identifier.
Requirements classes are separated into their own clauses and named, and specified according to inheritance (direct dependencies). The Conformance test classes in the test suite are similarly named to establish an explicit and mnemonic link between requirements classes and conformance test classes.
6. XML Implementation (normative)
In addition to the UML conceptual model this standard defines a GML XML Schema implementation that is compliant to the UML conceptual model. The XML Schemas for this implementation are published at:
http://schemas.opengis.net/tsml/1.0/
Schematron patterns are implemented for some requirements where appropriate and are published at the same location.
6.1 XML encoding principles
The following principles apply to data encoded according to the TimeseriesML 1.0 XML schema.
6.1.1 Conformance to GML 3.3 encoding rules for codelists
This XML Schema implementation imports the OGC GML 3.2.1 schemas. However codelists are implemented according to the clarified rules for codelists in the OGC GML 3.3 standard. Namely that items in codelists are referred to using gml:ReferenceType and not encoded with gml:CodeType.
None of the GML 3.3 schema types are used in this implementation and therefore only GML 3.2.1 schemas are imported by the TimeseriesML 1.0 XML schemas. This is consistent with the note in the GML 3.3 standard which reads: A GML application schema conforming to this standard will import the GML 3.2 schema plus zero or more additional GML 3.3 schemas as needed.
6.1.2 Extends the OGC Implementation Schema for Coverages
The TimeseriesML schema supports both an interleaved time-value pair encoding and a domain, range encoding. The domain, range encoding inherits from the coverage schema defined in the OGC Implementation Schema for Coverages 1.0.1 (09-146r2). The interleaved timeseries encoding is a representation of a special case of the CV_DiscreteCoverage class from OGC Abstract Specification Topic 6, in which each GeometryValuePair has a ‘geometry’ which is a timestamp, and a ‘value’ which is a measure or other simple datatype. The OGC Coverage Implementation Schema 1.1 (CIS 1.1) candidate standard[2] provides alternative representations of coverages, including an option for interleaving coverages, which can be useful for timeseries of more complex values.
Note that OGC Implementation Schema for Coverages 1.0.1 was formerly known as ‘GMLCOV’ and is sometimes still referred to in that way.
6.1.3 Virtual typing
In accordance with OMXML, the specialization of the OM_Observation result type is provided through schematron restriction. The om:type element may be used to specify the type of OM_Observation that is being encoded. This shall be done using the OGC Name URI for the corresponding type from the following table.
TimeseriesML 1.0 | OGC Name | Content of om:result in TimeseriesML 1.0 XML |
---|---|---|
MeasurementTimeseriesTVPObservation |
type= ’tsml:Timeseries' result.value = 'tsml:MeasurementTVP' |
|
CategoricalTimeseriesTVPObservation |
type= ’tsml:Timeseries’ result.value = 'tsml:CategoricalTVP' |
|
MeasurementTimeseriesDomainRangeObservation |
http://www.opengis.net/def/observationType/timeseriesML/1.0/MeasurementTimeseriesDomainRangeObservation |
type= ’tsml:TimeseriesDomainRange’
|
CategoricalTimeseriesDomainRangeObservation |
http://www.opengis.net/def/observationType/timeseriesML/1.0/CategoricalTimeseriesDomainRangeObservation |
type= ’tsml:TimeseriesDomainRange’
|
Likewise, a tsml:type property is present on the TimeseriesDomainRange type to enable a soft-typing approach to this class. The values for this property should be taken from Table 2.
Timeseries Profile of O&M Type | tsml:type value in tsml:TimeseriesDomainRange |
---|---|
MeasurementTimeseriesDomainRangeTimeseries |
|
CategoricalTimeseriesDomainRangeTimeseries |
6.1.4 Efficiency of encoding
This XML Schema implementation takes the approach that, where conceptual classes can be combined without loss of clarity, they are. For example, the same metadata classes are used for both Categorical and Measurement timeseries. This is to avoid a proliferation of similar classes in the XML encoding.
The following table outlines the mapping between the conceptual model and the XML Schema implementation.
Timeseries Profile of Observations and Measurements | TimeseriesML 1.0 XML |
---|---|
Collection |
tsml:Collection |
DocumentMetadata |
tsml:DocumentMetadata |
CategoricalTimeseriesTVPObservation |
om:OM_Observation* |
MeasurementTimeseriesTVPObservation |
|
CategoricalTimeseriesDomainRangeObservation |
|
MeasurementTimeseriesDomainRangeObservation |
|
TimeseriesTVP |
tsml:TimeseriesTVP |
MeasurementTimeseriesTVP |
|
CategoricalTimeseriesTVP |
|
TimeseriesDomainRange |
tsml:TimeseriesDomainRange |
MeasurementTimeseriesDomainRange |
|
CategoricalTimeseriesDomainRange |
|
PointMetadata |
tsml:PointMetadata |
MeasurementPointMetadata |
|
CategoricalPointMetadata |
|
TimeValuePair |
tsml:TimeValuePair (abstract) |
MeasureTimeValuePair |
tsml:MeasurementTVP |
CategoricalTimeValuePair |
tsml:CategoricalTVP |
ObservationProcess |
tsml:ObservationProcess |
MonitoringFeature |
tsml:MonitoringFeature |
* The specialisation of OM_Observation is provided through Schematron rather than a specialised XML type. |
6.1.5 Abstract requirements and conformances classes
As noted in the OGC Modular Specification section 6.2, the tests for abstract conformance classes may need to be described in the subclass classes if the base requirements classes are ambiguous for the abstract class. This is the case for the two styles of timeseries conformance classes, domain-range and interleaved (time-value pair). Some requirements for these classes are re-specified in more concrete terms to allow more explicit testing.
6.2 XML Examples
XML examples are published alongside the XML schemas at http://schemas.opengis.net/tsml/1.0/. In all examples, the following namespaces are used:
Identifier | Namespace URL |
---|---|
xsi |
http://www.w3.org/2001/XMLSchema-instance |
Gml |
|
Om |
|
xlink |
|
tsml |
|
gmd |
|
gco |
|
sam |
|
sams |
http://www.opengis.net/samplingSpatial/2.0 |
6.3 Requirements Class: XML Rules
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules | |
Name |
XML Rules |
Dependency |
|
Dependency |
http://standards.iso.org/iso/8601/2004/4 |
Dependency |
http://www.opengis.net/doc/IS/GML/3.2#clause-2.4 |
Dependency |
http://www.opengis.net/spec/GML/3.3/req/definitions |
Dependency |
http://www.opengis.net/spec/SWE/2.0/req/xsd-simple-components |
Requirement |
/req/xsd-xml-rules/iso8601-time All date-time elements shall be encoded using ISO8601 extended time format. |
Requirement |
/req/xsd-xml-rules/time-zone The value of each time element (defined in the TimeValuePairType ‘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) |
Requirement |
/req/xsd-xml-rules/unit-of-measure All units of measure shall use the appropriate code from the The Unified Code for Units of Measure (UCUM) code system. The unit of measure shall be identified by encoding the UCUM code1 in the ‘code’ attribute of the tsml:uom element. 1 The UCUM base codes are available in XML form here: http://unitsofmeasure.org/ucum-essence.xml. |
Requirement |
/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 also not be used. |
Requirement |
/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 description of the referenced item. |
Requirement |
/req/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. |
Requirement |
/req/xsd-xml-rules/xlink-valid-local-reference If an xlink:href is a local reference then the referenced element must exist. |
6.3.1 Requirements class overview
This requirements class contains a set of general rules applicable to the XML encoding.
6.4 Requirements Class: Timeseries Observation
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-timeseries-observation | |
Name |
Timeseries Observation |
Dependency |
http://www.opengis.net/spec/OMXML/2.0/req/observation |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-observation |
Dependency |
|
Dependency |
|
Dependency |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp-observation |
Dependency |
|
Dependency |
|
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
Requirement |
/req/xsd-timeseries-observation/procedure The xml element om:procedure shall contain an element which is a subtype of OM_Process, such as tsml:ObservationProcess element, or a subtype of SWE AbstractProcess or a reference to an external definition of the process using the xlink:href attribute. |
Requirement |
/req/xsd-timeseries-observation/phenomenonTime The om:phenomenonTime element shall contain a gml:TimePeriod element that represents the temporal extent of the timeseries result of the observation. |
6.4.1 Requirements class overview
This requirements class restricts the content model for the XML element OM_Observation relating specifically to timeseries observations. The requirements classes that depend on this class describe specific result types of timeseries. The restrictions rules for OM_Observation are captured in the ‘xsd-timeseries-observation.sch’ Schematron file.
6.5 Requirements Class: Timeseries (TVP) Observation
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-timeseries-tvp-observation | |
Name |
Timeseries (TVP) Observation |
Requirement |
/req/xsd-timeseries-tvp-observation/result The xml element om:result shall contain a concrete subelement in the substitution group tsml:TimeseriesTVP. |
6.5.1 Requirements class overview
This requirements class captures the core type of timeseries observation – one with a result of an interleaved time-value pair timeseries. This restriction is defined in the ‘xsd-timeseries-tvp-observation.sch’ Schematron file.
6.6 Requirements Class: Categorical Timeseries (TVP) Observation
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-categorical-timeseries-tvp-observation | |
Name |
Categorical Timeseries (TVP) Observation |
Requirement |
/req/xsd-categorical-timeseries-tvp-observation/result The xml element om:result shall have a value that matches the content model defined by tsml:CategoricalTVP. |
6.6.1 Requirements class overview
This requirements class restricts the type of timeseries observation to one with a result of an interleaved time-value pair timeseries where each value is a Category. This restriction is defined in the ‘xsd-categorical-timeseries-tvp-observation.sch’ Schematron file.
6.7 Requirements Class: Measurement Timeseries (TVP) Observation
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-measurement-timeseries-tvp-observation | |
Name |
Measurement Timeseries (TVP) Observation |
Requirement |
/req/xsd-measurement-timeseries-tvp-observation/result The xml element om:result shall have a value that matches the content model defined by tsml:MeasurementTVP. |
6.7.1 Requirements class overview
This requirements class restricts the type of timeseries observation to one with a result of an interleaved time-value pair timeseries where each value is a Measure. This restriction is defined in the ‘xsd-measurement-timeseries-tvp-observation.sch’ Schematron file.
6.8 Requirements Class: Timeseries (Domain Range) Observation
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-timeseries-domain-range-observation | |
Name |
Timeseries (Domain Range) Observation |
Requirement |
/req/xsd-timeseries-domain-range-observation/result The xml element om:result shall contain a concrete subelement in the substitution group tsml:TimeseriesDomainRange. |
6.8.1 Requirements class overview
This requirements class captures the domain range type of timeseries observation. This restriction is defined in the ‘xsd-timeseries-domain-range-observation.sch’ Schematron file.
6.9 Requirements Class: Categorical Timeseries (Domain Range) Observation
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-categorical-timeseries-domain-range-observation | |
Name |
Categorical Timeseries (Domain Range) Observation |
Requirement |
/req/xsd-categorical-timeseries-domain-range-observation/result The xml element om:result shall contain a concrete subelement in the substitution group tsml:TimeseriesDomainRange with range element values of type Category contained in a (GML) ValueArray |
6.9.1 Requirements class overview
This requirements class captures the categorical domain range type of timeseries observation.
6.10 Requirements Class: Measurement Timeseries (Domain Range) Observation
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-measurement-timeseries-domain-range-observation | |
Name |
Measurement Timeseries (Domain Range) Observation |
Requirement |
/req/xsd-measurement-timeseries-domain-range-observation/result The xml element om:result shall contain a concrete subelement in the substitution group tsml:TimeseriesDomainRange with a rangeset of type QuantityList. |
6.10.1 Requirements class overview
This requirements class captures the measurement domain range type of timeseries observation.
6.11 Requirements Class: Timeseries encoded as Time-Value Pairs
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-timeseries-tvp | |
Name |
Timeseries encoded as Time-Value Pairs |
Target Type |
XML encoding |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-tvp |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-timeseries-tvp |
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
Requirement |
/req/xsd-timeseries-tvp/valid The content model of this XML element shall have a value that matches the content model defined by tsml:TimeseriesTVP. |
Requirement |
/req/xsd-timeseries-tvp/time-increasing The domain elements (implemented as the tsml:point element) shall be ordered in increasing time. |
Requirement |
/req/xsd-timeseries-tvp/record-homogenous The type of the tsml:value element (range) shall be the same for each point in the timeseries, with the exception null values which may be used on any value. |
Requirement |
/req/xsd-timeseries-tvp/domain-time The domain of the timeseries coverage shall consist only of a temporal component. |
Requirement |
/req/xsd-timeseries-tvp/default-point-metadata If the element defaultPointMetadata is present, the specified metadata elements apply as default values to all subsequent point elements encoded in the timeseries. If a metadata element is specified for a point then it overrides the default value. For elements with multiple cardinality (e.g. qualifiers), defaults shall be overridden if a single element is defined in the metadata. |
Requirement |
/req/xsd-timeseries-tvp/equidistant-encoding If the baseTime and spacing elements are defined, the time element shall not be encoded. The time instants shall be calculated according to the following: time (n) = baseTime + (n * spacing) n = zero-based point index. e.g. baseTime= 2011-01-01T00:00:00, spacing=P15M points: [0] - 2011-01-01T00:00:00 [1] - 2011-01-01T00:15:00 [2] - 2011-01-01T00:30:00 [3] - 2011-01-01T00:45:00 [4] - 2011-01-01T01:00:00 |
Requirement |
/req/xsd-timeseries-tvp/time-mandatory If the baseTime and spacing elements are not present, the time element shall be encoded. |
Requirement |
/req/xsd-timeseries-tvp/null-value To indicate a value is null, the xsi:nil attribute shall be set to ‘true’. |
Requirement |
/req/xsd-timeseries-tvp/null-point-reason If a point is specified as null, a nilReason or censoredReason shall be provided. |
Requirement |
/req/xsd-timeseries-tvp/nil-reason-vocab When specifying a null point reason (nilReason), one of the following URLs should be used: · Inapplicable (http://www.opengis.net/def/nil/OGC/0/inapplicable) · Missing (http://www.opengis.net/def/nil/OGC/0/missing) · Template (http://www.opengis.net/def/nil/OGC/0/template) - value will be available at later date. · Unknown (http://www.opengis.net/def/nil/OGC/0/unknown) · Withheld (http://www.opengis.net/def/nil/OGC/0/withheld.html) |
6.11.1 Requirements class overview
The Time-Value Pair (TVP) Encoding schema contains types suitable for encoding TimeSeries (both Measurement and Categorical) in a sequence of time-value pairs.
Note that this time-value pair encoding of timeseries encoding takes the name ‘TimeseriesTVP’. The domain range encoding equivalent takes the name TimeseriesDomainRange.
The complete TVP encoding of timeseries, including associated metadata classes is shown in the figure above.
6.11.2 CategoricalTVP properties
CategoricalTVP is the encoding for time-value pairs where the value is a category.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
value |
The categorical value of the data point (e.g. 'High') |
Category |
One (Mandatory) |
6.11.3 Measure properties
Measure is a measure implementation with an optional unit of measure (so that the unit of measure can be set to a default for the whole timeseries rather than repeating the unit for each data value).
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
uom |
Unit of measure |
Uom |
Zero or one (Optional) |
6.11.4 MeasurementTVP properties
MeasurementTVP is the encoding for time-value pairs where the value is a measure.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
Value |
The measurement value for this data point (e.g. 5.3m) |
Measure |
One (Mandatory) |
6.11.5 TimeseriesTVP properties
The core class for the timeseries time-value pair encoding.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
point |
Data points (time-value pairs) for the timeseries. |
TimeValuePair |
Zero or more (Optional) |
metadata |
Metadata about the timeseries |
TimeseriesMetadata |
Zero or one (Optional) |
defaultPointMetadata |
Default metadata for each point in the timeseries (can be over-ridden on a per-point basis). |
PointMetadata |
Zero or one (Optional) |
6.11.6 TimeValuePair properties
A base class for different time-value pair implementations.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
metadata |
Point metadata for this point (over-rides any default point metadata for the timeseries). |
PointMetadata |
Zero or one (Optional) |
time |
Time component of the time-value pair. (A point on the timeseries). |
TM_Position |
Zero or one (Conditional) Must include if times are not defined using the ‘basetime’ and ‘spacing’ properties of TimeseriesMetadata. |
value |
Value component of the time-value pair (a value result such as a measurement). |
|
One (Mandatory) |
6.12 Requirements Class: Categorical (TVP) Timeseries
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-categorical-timeseries-tvp | |
Name |
Categorical (TVP) Timeseries |
Requirement |
/req/xsd-categorical-timeseries-tvp/value-category The type of the tsml:value XML element shall be a swe:Category. |
6.12.1 Requirements class overview
This requirements class restricts the value type of each time-value pair to be a Category.
6.13 Requirements Class: Measurement (TVP) Timeseries
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-measurement-timeseries-tvp | |
Name |
Measurement (TVP) Timeseries |
Requirement |
/req/xsd-measurement-timeseries-tvp/value-measure The type of the tsml:value element shall be a tsml:Measure. |
6.13.1 Requirements class overview
This requirements class restricts the value type of each time-value pair to be a Measure.
6.14 Requirements Class: Timeseries encoded as Domain Range
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-timeseries-dr | |
Name |
Timeseries encoded as Domain Range |
Target Type |
XML encoding |
Dependency |
http://www.opengis.net/doc/GML/GMLCOV/1.0.1#clause-6 |
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-domain-range |
Dependency |
|
Dependency |
|
Requirement |
/req/xsd-timeseries-dr/valid The content model of this XML element shall have a value that matches the content model defined by tsml:TimeseriesDomainRange. |
Requirement |
/req/xsd-timeseries-dr/time-increasing The domain elements shall be ordered in increasing time. |
Requirement |
/req/xsd-timeseries-dr/record-homogenous The type of each range element shall be the same for each point in the timeseries, with the exception null values which may be used on any value. |
Requirement |
/req/xsd-timeseries-dr/domain-time The domain of the timeseries coverage shall consist only of a temporal component. |
Requirement |
/req/xsd-timeseries-dr/default-point-metadata If the element defaultPointMetadata is present, the specified metadata elements apply as default values to all subsequent point elements encoded in the timeseries. If a metadata element is specified for a point then it overrides the default value. For elements with multiple cardinality (e.g. qualifiers), defaults shall be overridden if a single element is defined in the metadata. |
6.14.1 Requirements class overview
The Domain Range Encoding schema contains types suitable for encoding TimeSeries (both Measurement and Categorical) in a domain (times), range (values) block. This schema extends the OGC GMLCov schema.
The TimeseriesDomainRange encoding extends the OGC Implementation Model for Coverages by adding bespoke metadata and annotation elements.
The class TimeseriesDomainRange is used for all domain range encodings. It extends the GMLCov DiscreteCoverage with a timeseries metadata extension.
6.14.2 TimeseriesMetadataExtension properties
TimeseriesMetadataExtension enables use of TimeseriesML metadata classes in GMLCov XML schema. The associated XML examples demonstrate how this is applied in practice.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
Annotation |
An annotation coverage corresponding to points on the timeseries. |
AnnotationCoverage |
Zero or more (Optional) |
defaultPointMetadata |
Default metadata for each point in the timeseries. |
PointMetadata |
Zero or one (Optional) |
timeseriesMetadata |
Metadata applicable to the whole timeseries. |
TimeseriesMetadata |
Zero or one (Optional) |
6.14.3 AnnotationCoverage properties
An annotation coverage can be used to apply metadata to individual points in the timeseries.
Informative note: In the XML Schema the AnnotationCoverage is a specialization of the gmlcov:AbstractDiscreteGoverage XML Schema type. This standard is not otherwise prescriptive about the content of the AnnotationCoverage beyond that specified in the OGC Coverages Implementation Model but it could be used to provide a value array or list of comments or other values as in the two examples below.
<tsml:AnnotationCoverage gml:id=“quality_cov”>
<gml:domainSet xlink:href=“#temporal_domain”/>
<gml:rangeSet>
<gml:CategoryList
codeSpace=“http://www.opengis.net/def/waterml/2.0/quality/”>
good bad good missing good bad</gml:CategoryList>
</gml:rangeSet>
<gmlcov:rangeType/>
</tsml:AnnotationCoverage>
<tsml:AnnotationCoverage gml:id=“comment_cov”>
<gml:domainSet xlink:href=“#temporal_domain”/>
<gml:rangeSet>
<gml:ValueArray gml:id=“comment_array”>
<gml:valueComponents>
<gml:Category>This is a free text comment</gml:Category>
<gml:Category xsi:nil=“true”/>
<gml:Category>Example comment</gml:Category>
<gml:Category>Another one</gml:Category>
<gml:Category>Has to be one for each point</gml:Category>
</gml:valueComponents>
</gml:ValueArray>
</gml:rangeSet>
<gmlcov:rangeType/>
</tsml:AnnotationCoverage>
6.14.4 TimeseriesDomainRange properties
The TimeseriesDomainRange element extends the OGC coverage model with metadata extensions for timeseries data. The metadata classes are the same as for the time-value pair encoding.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
metadata |
Metadata extension to accommodate TimeseriesML 1.0 metadata classes. |
TimeseriesMetadataExtension |
Zero or more (Optional) |
type |
If present, the sub-element 'type' shall indicate the class of timeseries. A register of type identifiers corresponding with the timeseries types in TimeseriesML 1.0, is provided by OGC at http://www.opengis.net/def/timeseriesType/timeseriesML/1.0/ |
Reference |
Zero or one (Optional) |
6.15 Requirements Class: Collection
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-collection | |
Name |
Collection |
Target Type |
XML encoding |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-collection |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-sampling-feature-collections |
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
Requirement |
/req/xsd-collection/valid The content model of this element shall have a value that matches the content model defined by tsml:Collection. |
Requirement |
/req/xsd-collection/sampling-feature-single Single sampling features shall be described using SF_SpatialSamplingFeature or a derivative thereof. |
Requirement |
/req/xsd-collection/sampling-feature-group Groups of sampling points shall be described using SF_SamplingFeatureCollection feature type from ISO19156. |
6.15.1 Requirements class overview
The Collection schema contains a collection element as well as other document specific types.
The XML Schema implementation of Collection maps closely to the conceptual model. The key implementation points to note are that all observationMembers are implemented by OM_Observation, and that ConformanceClass is implemented as a reference (xlink:href) from DocumentMetadata.
6.15.1.1 Collection properties
TimeseriesML defines a generic collection feature type, Collection, to allow the grouping of observations and/or sampling features with metadata to describe the nature of the collection. Such collections are required in a number of data exchange scenarios; whether the underlying transport technology is web services, FTP or other technologies.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
observationMember |
One or more timeseries observations |
OM_Observation |
Zero to many (Optional) |
samplingFeatureMember |
A sampling feature or group of sampling features. |
SamplingFeatureMember |
Zero to many (Optional) |
communityExtension |
Use this extension point for community-agreed extensions to the schema. |
Any |
Zero to many (Optional) |
internalExtension |
Use this extension point for internal extensions that have not been defined for external use. |
Any |
Zero to many (Optional) |
generationDate |
The date this data was generated. |
TM_DateAndTime |
One (Mandatory) |
generationSystem |
The system from which this data was generated. |
CharacterString |
Zero or one (Optional) |
Version |
This version property is distinct from the version of the TimeseriesML schema. It is a version of the whole standards package: schema, vocabularies, used profiles etc. I.e. a version to allow specific versions associated with usage of a schema version with other components. |
Reference |
Zero or one (Optional) |
temporalExtent |
Describes the temporal extent of the all the timeseries contained within the collection (if they exist). |
TM_Period |
Zero or one (Optional) |
localDictionary |
A dictionary containing definitions of terms. |
Dictionary |
Zero to many (Optional) |
sourceDefinition |
Provides a context for identification of particular data elements through use of MD_DataIdentification. These can be referenced from individual timeseries values. |
MD_DataIdentification |
Zero to many (Optional) |
Parameter |
A soft-typed parameter for extra metadata properties. |
NamedValue |
Zero to many (Optional) |
Profile |
Profile may be used to reference a definition of a conformance class that this document conforms to. |
Reference |
Zero to many (Optional) |
6.15.1.2 SamplingFeatureMember properties
A sampling feature member may be either a single sampling feature (e.g. MonitoringFeature) or a group of features (SF_SamplingFeatureCollection). This is a Union class.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
byGroup |
A group of sampling features. |
SF_SamplingFeatureCollection |
Zero or one (Optional) |
byFeature |
A sampling feature. |
SF_SpatialSamplingFeature |
Zero or one (Optional) |
6.16 Requirements Class: MonitoringFeature
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-monitoring-feature | |
Name |
MonitoringFeature |
Target Type |
XML encoding |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature |
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
Requirement |
/req/xsd-monitoring-feature/valid The content model of this element shall have a value that matches the content model defined by tsml:MonitoringFeature. |
6.16.1 Requirements class overview
The Monitoring Feature schema contains the definition of the Monitoring Feature type that is the (sampling) feature of interest of a TimeSeries observation.
6.16.1.1 MonitoringFeature properties
A MonitoringFeature is a spatial sampling feature (O&M) where observations are recorded. This monitoring feature often corresponds to a fixed instrument or monitoring site but it can also be an anonymous spatial location. The monitoring feature is a proxy for a real world feature.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
daylightSavingsTimeZone |
The timezone that the MonitoringFeature is located in when daylight savings applies. |
TimeZone |
Zero or one (Optional) |
timeZone |
The timezone that the MonitoringFeature is located in. |
TimeZone |
Zero or one (Optional) |
relatedParty |
The details of a party related to this MonitoringFeature. Multiple related parties may be described using the role code list (from ISO 19115). The most common relationships are likely to be: owner, originator, pointOfContact, principalInvestigator and distributor. |
CI_ResponsibleParty |
Zero to many (Optional) |
representativePoint |
A point location that is representative of the monitoring feature's location. Typically this is used when the shape of the monitoring feature is an area or other non-point geometry. It may also be used to provide an approximate point location in sensitive observation scenarios. |
GM_Point |
Zero or one (Optional) |
descriptionReference |
Provide extra descriptive information about a monitoring feature. This could be a link to an HTML page describing the location, photos of a monitoring point, history records etc. |
Reference |
Zero to many (Optional) |
verticalDatum |
Specifies the elevation that is used as the zero point, or datum, for height-related measurements. The datum is defined using a vertical datum, which may be defined using the ISO19111 type CD_VerticalDatum, or an agreed upon datum may be reference by its identifier. E.g. the Australian Height Datum (AHD), Tasmania = “EPSG::5112”. The CD_VerticalDatum type allows specification of the local vertical datum as a height above another reference datum. E.g. local vertical datum is 23m above the AHD. |
CD_VerticalDatum |
Zero to many (Optional) |
monitoringType |
A thematic characterisation of the type of monitoring feature. E.g. meteorological, surface water, groundwater, water quality etc. |
Reference |
Zero to many (Optional) |
6.16.1.2 TimeZone properties
Representation of a timezone.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
zoneAbbreviation |
Abbreviation for a timezone e.g. AEST. |
CharacterString |
Zero or one (Optional) |
zoneOffset |
Time zone offset e.g. +10:00 GMT |
CharacterString |
One (Mandatory) |
6.17 Requirements Class: MonitoringFeature as Feature of Interest
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-monitoring-feature-feature-of-interest | |
Name |
MonitoringFeature as Feature of Interest |
Dependency |
http://www.opengis.net/spec/OMXML/2.0/req/observation |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-observation |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature-foi |
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
Requirement |
/req/xsd-monitoring-feature-feature-of-interest/featureOfInterest The featureOfInterest element of TimeseriesObservation shall have a value that matches the content model defined by tsml:MonitoringFeature. |
6.17.1 Requirements class overview
This requirements class captures the restriction of OM_Observation where the feature of interest is a monitoring feature. This class is to be used for most in-situ style monitoring situations where the TimeseriesML 1.0 monitoring feature is sufficient for representing the location metadata.
6.18 Requirements Class: ObservationProcess
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-observation-process | |
Name |
ObservationProcess |
Target Type |
XML encoding |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-observation-process |
Dependency |
http://www.opengis.net/spec/timeseriesrml/1.0/req/xsd-xml-rules |
Requirement |
/req/xsd-observation-process/valid The content model of this element shall have a value that matches the content model defined by tsml:ObservationProcess. |
6.18.1 Requirements class overview
The ObservationProcess schema defines a basic process type that may be used to describe the procedure used in a TimeSeries Observation event.
Figure 6 ObservationProcess Schema
6.18.1.1 ObservationProcess properties
Information about the process used in the Observation.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
operator |
Describes the party responsible for performing the process. E.g. the person performing the method or operating the sensor. |
CI_ResponsibleParty |
Zero or one (Optional) |
originatingProcess |
Used to identify a process that is a source to this process. For example an earlier processing step. |
OM_Process |
Zero or one (Optional) |
aggregationDuration |
A list of the inputs used in the process. This may be a list of references to the data sets used (e.g. model input series) or a input array to an algorithm. |
TM_PeriodDuration |
Zero or one (Optional) |
verticalDatum |
Specifies the datum that is used as the zero point for level measurements. This can be process-specific as opposed the gauge at the actual monitoring point. |
CD_VerticalDatum |
Zero or one (Optional) |
input |
A list of the inputs used in the process. This may be a list of references to the data sets used (e.g. model input series) or a input array to an algorithm. |
Reference |
Zero to many (Optional) |
comment |
Comments specific to the process from the operator. |
CharacterString |
Zero to many (Optional) |
parameter |
A definition of the type of process used in the observation. This may be a Sensor, ManualMethod, Algorithm or Simulation (including models). |
NamedValue |
Zero to many (Optional) |
processReference |
Reference to an external process definition. |
Reference |
Zero or one (Optional) |
processType |
A definition of the type of process used in the observation. This may be a Sensor, ManualMethod, Algorithm or Simulation (including models). |
ProcessTypeCode |
One (Mandatory) |
6.19 Requirements Class: Timeseries Metadata
Requirements Class | |
http://www.opengis.net/spec/tsml/1.0/req/xsd-metadata | |
Name |
Timeseries Metadata |
Target Type |
XML encoding |
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-metadata |
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-metadata |
Requirement |
/req/xsd-metadata/timeseries-metadata Metadata about the entire timeseries shall be provided using the tsml:TimeSeriesMetadata type. |
Requirement |
/req/xsd-metadata/point-metadata Metadata about individual data points shall be provided using the tsml:PointMetadata type |
Requirement |
/req/xsd-metadata/timeseries-comments Comments about the timeseries may be provided using the tsml:CommentBlock type. |
Requirement |
/req/xsd-metadata/timeseries-metadata-extension Metadata about a domain range timeseries shall be provided using the tsml:TimeseriesMetadataExtension type. |
6.19.1 Requirements class overview
This requirement captures metadata requirements common across all timeseries classes.
The XML Schema Implementation collapses many of the conceptual model metadata classes together for simplicity of encoding. There are three metadata classes:
- ObservationMetadata: Metadata about the whole timeseries observation
- TimeseriesMetadata: Metadata about the whole timeseries.
- PointMetadata: Metadata about individual points in the timeseries. PointMetadata may be set to a default across the whole timeseries and over-ridden for individual points.
6.19.2 CommentBlock properties
Comment blocks may be used to make comment about the timeseries. Each comment applies to a specified period of the timeseries (it could apply to the whole timeseries).
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
applicablePeriod |
The time period to which the comment applies. |
TM_Period |
One (Mandatory) |
comment |
Free text comment about some aspect of the timeseries. |
CharacterString |
One (Mandatory) |
6.19.3 PointMetadata properties
Metadata relating to individual data points (can be set to a default for the whole timeseries).
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
quality |
This property is for specifying a quality assertion using the TimeseriesML 1.0 defined concepts of quality as described in the DataQualityCode list. When a non-standard quality code is required a SWE Qualifier property shall be used. |
DataQualityCode |
Zero or one (Optional) |
uom |
Unit of measure for the point data (typically a default will apply to the whole timeseries). |
UnitOfMeasure |
Zero or one (Optional) |
interpolationType |
Defines the nature of the relationship between the time instant and the recorded value. For example, the value may represent an average across the time period since the last point (average in preceding interval). This value should be taken from the InterpolationCode list. The interpolation type is defined per point within the timeseries as it is possible for this to change mid series. Within the XML encoding it is possible to set a default interpolation for the series.
|
InterpolationCode |
Zero or one (Optional) |
nilReason |
This property describes the reason that a point has been identified as null. This provides context for interpreting null points (e.g. missing, withheld etc.). |
NilReason |
Zero or one (Optional) |
censoredReason |
Used to indicate the reason the value has been censored (e.g. below a threshold). |
CensoredReasonCode |
Zero or one (Optional) |
comment |
Context information that does not fit into a controlled list of qualifiers, processing or quality information is often provided in free text per point. The comment property provides a placeholder for such textual information. |
CharacterString |
Zero or one (Optional) |
uncertainty |
This property allows for a quantitative assertion of the estimated uncertainty of the measurement value. The term uncertainty is used here in line with 'measurement uncertainty' as defined in the International Vocabulary of Metrology (VIM3, http://www.bipm.org/en/publications/guides/vim.html), however it is acknowledged that it is still quite common practice (e.g. in instrument specifications) for the word accuracy to be used in place of uncertainty. |
Quantity |
Zero or one (Optional) |
relatedObservation |
This property allows individual points to be associated with related observations. This is used when a timeseries consists of interleaved observations from different sources and understanding the relationship to existing observation(s) is important. |
OM_Observation |
Zero or one (Optional) |
aggregationDuration |
Specifies the time period over which the values have been aggregated. E.g. 15 minutely. |
TM_PeriodDuration |
Zero or one (Optional) |
qualifier |
A more loosely-typed qualifier that allows assertions using the SWE Common union (quality, categories etc.) |
Quantity |
Zero to many (Optional) |
processing |
A code item indicating the processing that has occurred to the point. |
ProcessingCode |
Zero or one (Optional) |
source |
A code item indicating the processing that has occurred to the point. By reference only. |
MD_DataIdentification |
Zero or one (Optional) |
6.19.4 TimeseriesMetadata properties
Metadata applicable to the whole timeseries.
Property | Definition | Data types and values | Multiplicity |
---|---|---|---|
commentBlock |
Comment blocks may be used to make comment about the timeseries. Each comment applies to a specified period of the timeseries (it could apply to the whole timeseries). |
CommentBlock |
Zero to many (Optional) |
temporalExtent |
The extent of the temporal domain of the timeseries. As the domain of the timeseries is temporal, the temporalExtent is a time period defining the start and end of its temporal domain (i.e. the start and end of the timeseries). Note that this often the same as the phenomenon time as specified in the OM_Observation; it is still useful here for timeseries that are described separately from an OM_Observation header. |
TM_Period |
Zero or one (Optional) |
baseTime |
Timeseries that are regularly spaced, such as those that are generated from automatic sensors, can be represented without specifying the individual time instant for each point. The spacing property of the timeseries is used to specify the time between points. This is then used as the spacing for each point encountered, starting from the time set by baseTime. |
TM_Position |
Zero or one (Optional) |
intendedObservationSpacing |
Defines the expected spacing between observations e.g. daily. |
TM_Period |
Zero or one (Optional) |
cumulative |
This boolean property indicates whether the series is sequentially increasing and accumulates over time; i.e. each value is added to the last so the value represents the total of a value since accumulation began. |
Boolean |
Zero or one (Optional) |
accumulationAnchorTime |
Defines the time at which accumulation begins. e.g. 9am. |
TM_Period |
Zero or one (Optional) |
accumulationIntervalLength |
Defines the length of time over which accumulation is recorded e.g. 24 hours |
TM_PeriodDuration |
Zero or one (Optional) |
startAnchorPoint |
StartAnchorPoint specifies a ‘ghost’ point to allow the first value of the timeseries to be interpolated correctly. |
TM_Position |
Zero or one (Optional) |
endAnchorPoint |
EndAnchorPoint specifies a ‘ghost’ point to allow the last value of the timeseries to be interpolated correctly. |
TM_Position |
Zero or one (Optional) |
spacing |
The time between points in a regularly spaced timeseries. |
TM_PeriodDuration |
Zero or one (Optional) |
status |
Indicates the statues of the observation. E.g. unreleased, verified etc. |
StatusCode |
Zero or one (Optional) |
sampledMedium |
Indicates the medium that was sampled. E.g. water, air, etc. |
SampledMediumCode |
Zero or one (Optional) |
maxGapPeriod |
When any analysis is run over a timeseries it is important to know if it is possible to interpolate between any two adjoining points. If the join period between two adjoining points is greater than the maxGapPeriod then the series should not be interpolated between these adjoining points. |
TM_PeriodDuration |
Zero or one (Optional) |
Parameter |
This is a named value extension point that allows extra metadata to be added at the timeseries level. The parameters here are soft-typed (i.e. this standard does not define the properties semantics). Commonly used parameters here would be future candidates for definition within later versions or community extensions. |
NamedValue |
Zero to many (Optional) |
Annex A
(Normative)
Abstract Test Suites
The minimum implementation for compliance would be for a product to implement both A.1 and A.2, and then one of either A.3 or A.6.
The minimum would therefore be valid O&M XML with a result type of timeseries (of either DR or TVP).
A.1 Conformance class: XML Rules | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-xml-rules | ||
Dependency |
||
Dependency |
http://standards.iso.org/iso/8601/2004/4 |
|
Dependency |
http://www.opengis.net/doc/IS/GML/3.2#clause-2.4 |
|
Dependency |
http://www.opengis.net/spec/GML/3.3/req/definitions |
|
Dependency |
http://www.opengis.net/spec/SWE/2.0/req/xsd-simple-components |
|
|
/conf/xsd-xml-rules/iso8601-time |
|
|
Requirement |
/req/tsml/1.0/req/xsd-xml-rules/iso8601-time |
|
Test Purpose |
Verify that all time instants are valid according to the XML Schema implementation of ISO8601. |
|
Test Method |
Validate the content of each time element against the XML Schema dateTime content type, available here ttp://www.w3.org/TR/xmlschema-2/#schema. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-xml-rules/time-zone |
|
|
Requirement |
/req/tsml/1.0/req/xsd-xml-rules/time-zone |
|
Test Purpose |
Verify that all time instants include a time zone specifier. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-3-xsd-xml-rules.sch. Pass if no errors are reported for the “time-zone” test. Fail otherwise. |
|
/conf/xsd-xml-rules/unit-of-measure |
|
|
Requirement |
/req/tsml/1.0/req/xsd-xml-rules/unit-of-measure |
|
Test Purpose |
Verify that all time units are specified using the UCUM units system. |
|
Test Method |
Inspect the XML document and ensure all units of measure are valid according to UCUM. Fail otherwise. (No automated check against UCUM currently available). |
|
/conf/xsd-xml-rules/swe-types |
|
|
Requirement |
/req/tsml/1.0/req/xsd-xml-rules/swe-types |
|
Test Purpose |
Ensure that only applicable SWE types are used. Some SWE types are related specifically to the SWE encoding style, which is not used. Verify that following SWE elements are not used in the encoding: - swe:quality(AbstractSimpleComponentType) - swe:nilValues (AbstractSimpleComponentType) - swe:constraint (QuantityType, QuantityRangeType, CategoryType) Verify the following SWE attributes are not used: - ‘optional’ and ‘updatable’ from the base type ‘AbstractDataComponent’ |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-3-xsd-xml-rules.sch. Pass if no errors are reported for the “swe-types” test. Fail otherwise. |
|
/conf/xsd-xml-rules/xlink-title |
|
|
Requirement |
/req/tsml/1.0/rec/xsd-xml-rules/xlink-title |
|
Test Purpose |
Verify that an element using a xlink:href to encode reference a controlled vocabulary item also encodes a xlink:title attribute with a text description of the referenced item. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-3-xsd-xml-rules.sch. Pass if no errors are reported for the “xlink-title” test. Report otherwise. |
|
/conf/xsd-xml-rules/vocabulary-references |
|
|
Requirement |
/req/tsml/1.0/rec/xsd-xml-rules/vocabulary-references |
|
/conf/xsd-xml-rules/xlink-valid-local-reference |
|
|
Requirement |
/req/tsml/1.0/rec/xsd-xml-rules/xlink-valid-local-reference |
|
Test Purpose |
Verify that the element referenced by a local xlink:href reference exists. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-3-xsd-xml-rules.sch. Pass if no errors are reported for the “xlink-valid-local-reference” test. Report otherwise. |
A.2 Conformance class: Timeseries Observation | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-timeseries-observation | ||
Dependency |
http://www.opengis.net/spec/OMXML/2.0/req/observation |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-observation |
|
Dependency |
||
Dependency |
||
Dependency |
||
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp-observation |
|
Dependency |
||
Dependency |
||
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
|
|
/conf/xsd-timeseries-observation/procedure |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-observation/procedure |
|
Test Purpose |
Verify that the om:procedure element has a value that matches the content model defined by tsml:ObservationProcess or an appropriate reference is used. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-4-xsd-timeseries-observation.sch. Pass if no errors are reported for the “procedure” test. Fail otherwise. |
|
/conf/xsd-timeseries-observation/phenomenonTime |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-observation/phenomenonTime |
|
Test Purpose |
Verify that the phenomenon time describes the temporal extent of the observation result. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-4-xsd-timeseries-observation.sch. Pass if no errors are reported for the “phenomenonTime" test. Fail otherwise. |
A.3 Conformance class: Timeseries (TVP) Observation | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-timeseries-tvp-observation | ||
|
/conf/xsd-timeseries-tvp-observation/result |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp-observation/result |
|
Test Purpose |
Verify that the om:result element has a value that matches the content model defined by tsml:TimeseriesTVPType or is in the substitution group tsml:TimeseriesTVP. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-5-xsd-timeseries-tvp-observation.sch. Pass if no errors are reported. Fail otherwise. |
A.4 Conformance class: Categorical Timeseries (TVP) Observation | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-categorical-timeseries-tvp-observation | ||
|
/conf/xsd-categorical-timeseries-tvp-observation/result |
|
|
Requirement |
/req/tsml/1.0/req/xsd-categorical-timeseries-tvp-observation/result |
|
Test Purpose |
Verify that the om:result element has a value that matches the content model defined by tsml:CategoricalTVPType or is in the substitution group tsml:CategoricalTVP. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-6-xsd-categorical-timeseries-tvp-observation.sch. Pass if no errors are reported. Fail otherwise. |
A.5 Conformance class: Measurement Timeseries (TVP) Observation | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-measurement-timeseries-tvp-observation | ||
|
/conf/xsd-measurement-timeseries-tvp-observation/result |
|
|
Requirement |
/req/tsml/1.0/req/xsd-measurement-timeseries-tvp-observation/result |
|
Test Purpose |
Verify that the om:result element has a value that matches the content model defined by tsml:MeasurementTVPType or is in the substitution group tsml:MeasurementTVP. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-7-xsd-measurement-timeseries-tvp-observation.sch. Pass if no errors are reported. Fail otherwise. |
A.6 Conformance class: Timeseries (Domain Range) Observation | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-timeseries-domain-range-observation | ||
|
/conf/xsd-timeseries-domain-range-observation/result |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-domain-range-observation/result |
|
Test Purpose |
Verify that the om:result element has a value that matches the content model defined by tsml:TimeseriesDomainRangeType or is in the substitution group tsml:TimeseriesDomainRange. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-8-xsd-timeseries-domain-range-observation.sch. Pass if no errors are reported. Fail otherwise. |
A.7 Conformance class: Categorical Timeseries (Domain Range) Observation | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-categorical-timeseries-domain-range-observation | ||
|
/conf/xsd-categorical-timeseries-domain-range-observation/result |
|
|
Requirement |
/req/tsml/1.0/req/xsd-categorical-timeseries-domain-range-observation/result |
|
Test Purpose |
Verify that the om:result element has a value that matches the content model defined by tsml:TimeseriesDomainRangeType or is in the substitution group tsml:TimeseriesDomainRange and that all the range elements are of type Category. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-9-xsd-categorical-timeseries-domain-range-observation.sch. Pass if no errors are reported. Fail otherwise. |
A.8 Conformance class: Measurement Timeseries (Domain Range) Observation | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-measurement-timeseries-domain-range-observation | ||
|
/conf/xsd-measurement-timeseries-domain-range-observation/result |
|
|
Requirement |
/req/tsml/1.0/req/xsd-measurement-timeseries-domain-range-observation/result |
|
Test Purpose |
Verify that the om:result element has a value that matches the content model defined by tsml:TimeseriesDomainRangeType or is in the substitution group tsml:TimeseriesDomainRange and that all the range elements are of type Quantity. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-10-xsd-measurement-timeseries-domain-range-observation.sch. Pass if no errors are reported. Fail otherwise. |
A.9 Conformance class: Timeseries encoded as Time-Value Pairs | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-timeseries-tvp | ||
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-tvp |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-timeseries-tvp |
|
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
|
|
/conf/xsd-timeseries-tvp/valid |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/valid |
|
Test Purpose |
Verify that the XML instance is a valid timeseries. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/timeseriesTVP.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-timeseries-tvp/time-increasing |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/time-increasing |
|
Test Purpose |
Verify that each point in the timeseries is increasing in time. |
|
Test Method |
Inspect the value of each tsml:time element in the series and ensure the time instant is after the previous tsml:time instant. |
|
/conf/xsd-timeseries-tvp/record-homogenous |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/record-homogenous |
|
Test Purpose |
Verify that the record type for each point in the series is the same. E.g. all of type MeasurementTVP or CategoricalTVP. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/timeseriesTVP.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-timeseries-tvp/domain-time |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/domain-time |
|
Test Purpose |
Verify that the XML instance is a valid coverage timeseries consisting of single temporal element. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/timeseriesTVP.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-timeseries-tvp/default-point-metadata |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/default-point-metadata |
|
Test Purpose |
Ensure the default metadata is applied to each point in the timeseries unless it has been overridden. |
|
Test Method |
This requirement describes the logic for defaulting behavior. Conformance is to be tested when creating or parsing the instance document, rather than directly on an instance document. |
|
/conf/xsd-timeseries-tvp/equidistant-encoding |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/equidistant-encoding |
|
Test Purpose |
Ensure the equidistant timeseries metadata has been sufficiently defined. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-11-xsd-timeseries-tvp.sch. Pass if no errors are reported for the ‘equidistant-encoding’ test. Fail otherwise. |
|
/conf/xsd-timeseries-tvp/time-mandatory |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/time-mandatory |
|
Test Purpose |
Ensure that the time component of the timeseries coverage is sufficiently specified.Ensure each point in the series has a time specified, either through definition of an equidistant series or explicitly for each point. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-11-xsd-timeseries-tvp.sch. Pass if no errors are reported for the ‘equidistant-encoding' test. Fail otherwise. |
|
/conf/xsd-timeseries-tvp/null-value |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/null-value |
|
Test Purpose |
Ensure that @xsi:nil = 'true' is specified for each point that is defined as null. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-11-xsd-timeseries-tvp.sch. Pass if no errors are reported for the ‘null-value’ test. Fail otherwise. |
|
/conf/xsd-timeseries-tvp/null-point-reason |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-tvp/null-point-reason |
|
Test Purpose |
Ensure that a reason is specified for each point that is defined as null. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-11-xsd-timeseries-tvp.sch. Pass if no errors are reported for the ‘null-point-reason’ test. Fail otherwise. |
|
/conf/tsml/1.0/rec/xsd-timeseries-tvp/nil-reason-vocab |
|
|
Requirement |
/req/tsml/1.0/rec/xsd-timeseries-tvp/nil-reason-vocab |
|
Test Purpose |
Ensure that where a nilreason is provided it comes from the OGC nils vocabulary at http://www.opengis.net/def/nil/ |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-11-xsd-timeseries-tvp.sch. Pass if no errors are reported for the ‘nil-reason-vocab’ test. Fail otherwise |
A.10 Conformance class: Categorical (TVP) Timeseries | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-categorical-timeseries-tvp | ||
|
/conf/xsd-categorical-timeseries-tvp/value-category |
|
|
Requirement |
/req/tsml/1.0/req/xsd-categorical-timeseries-tvp/value-category |
|
Test Purpose |
Verify that each point in the timeseries has a value-type of a category. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/timeseriesTVP.xsd and the Schematron document http://schemas.opengis.net/waterml/2.0/6-12-xsd-categorical-timeseries-tvp.sch. Pass if no errors are reported. Fail otherwise. |
A.11 Conformance class: Measurement (TVP) Timeseries | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-measurement-timeseries-tvp | ||
|
/conf/xsd-measurement-timeseries-tvp/value-measure |
|
|
Requirement |
/req/tsml/1.0/req/xsd-measurement-timeseries-tvp/value-measure |
|
Test Purpose |
Verify that each point in the timeseries has a value-type of a measure. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/timeseriesTVP.xsd. Pass if no errors are reported. Fail otherwise. |
A.12 Conformance class: Timeseries encoded as Domain Range | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-timeseries-dr | ||
Dependency |
http://www.opengis.net/doc/GML/GMLCOV/1.0.1#clause-6 |
|
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-domain-range |
|
Dependency |
||
Dependency |
||
|
/conf/xsd-timeseries-dr/valid |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-dr/valid |
|
Test Purpose |
Verify that the XML instance is a valid timeseries. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/timeseriesDR.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-timeseries-dr/time-increasing |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-dr/time-increasing |
|
Test Purpose |
Verify that each point in the timeseries is increasing in time. |
|
Test Method |
Inspect the value of each element in the coverage domain and ensure the time instant is after the previous instant. |
|
/conf/xsd-timeseries-dr/record-homogenous |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-dr/record-homogenous |
|
Test Purpose |
Verify that the record type for each point in the series is the same. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/timeseriesDR.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-timeseries-dr/domain-time |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-dr/domain-time |
|
Test Purpose |
Verify that the XML instance is a valid coverage timeseries consisting of single temporal element. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/timeseriesDR.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-timeseries-dr/default-point-metadata |
|
|
Requirement |
/req/tsml/1.0/req/xsd-timeseries-dr/default-point-metadata |
|
Test Purpose |
Ensure the default metadata is applied to each point in the timeseries unless it has been overridden. |
|
Test Method |
This requirement describes the logic for defaulting behavior. Conformance is to be tested when creating or parsing the instance document, rather than directly on an instance document. |
A.13 Conformance class: Collection | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-collection | ||
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-collection |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-sampling-feature-collections |
|
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
|
|
/conf/xsd-collection/valid |
|
|
Requirement |
/req/tsml/1.0/req/xsd-collection/valid |
|
Test Purpose |
Verify that the tsml:Collection is valid. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/collection.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-collection/sampling-feature-single |
|
|
Requirement |
/req/tsml/1.0/req/xsd-collection/sampling-feature-single |
|
Test Purpose |
Verify that the tsml:samplingFeatureMember element has a value that matches the content model defined by sams:SF_SamplingFeature (or derivative) or an appropriate reference is used. |
|
Test Method |
Validate the XML document using the XML Schema Document http://schemas.opengis.net/tsml/1.0/collection.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-collection/sampling-feature-group |
|
|
Requirement |
/req/tsml/1.0/req/xsd-collection/sampling-feature-group |
|
Test Purpose |
Verify that the tsml:samplingFeatureMember element has a value that matches the content model defined by sams:SF_SamplingFeatureCollection or an appropriate reference is used. |
|
Test Method |
Validate the XML document using the XML Schema Document http://schemas.opengis.net/tsml/1.0/collection.xsd. Pass if no errors are reported. Fail otherwise. |
A.14 Conformance class: MonitoringFeature | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-monitoring-feature | ||
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature |
|
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
|
|
/conf/xsd-monitoring-feature/valid |
|
|
Requirement |
/req/tsml/1.0/req/xsd-monitoring-feature/valid |
|
Test Purpose |
Verify that the tsml:MonitoringFeature is valid. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/2.0/monitoringFeature.xsd. Pass if no errors are reported. Fail otherwise. |
A.15 Conformance class: MonitoringFeature as Feature of Interest | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-monitoring-feature-feature-of-interest | ||
Dependency |
http://www.opengis.net/spec/OMXML/2.0/req/observation |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-observation |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature-foi |
|
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
|
|
/conf/xsd-monitoring-feature-feature-of-interest/featureOfInterest |
|
|
Requirement |
/req/tsml/1.0/req/xsd-monitoring-feature-feature-of-interest/featureOfInterest |
|
Test Purpose |
Verify that the om:featureOfInterest element has a value that matches the content model defined by tsml:MonitoringFeature. |
|
Test Method |
Validate the XML document using the Schematron document http://schemas.opengis.net/tsml/1.0/6-17-xsd-monitoring-feature-feature-of-interest.sch. Pass if no errors are reported. Fail otherwise. |
A.16 Conformance class: ObservationProcess | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-observation-process | ||
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-observation-process |
|
Dependency |
http://www.opengis.net/spec/timeseriesrml/1.0/req/xsd-xml-rules |
|
|
/conf/xsd-observation-process/valid |
|
|
Requirement |
/req/tsml/1.0/req/xsd-observation-process/valid |
|
Test Purpose |
Verify that the tsml:ObservationProcess is valid. |
|
Test Method |
Validate the XML document using the XML Schema document http://schemas.opengis.net/tsml/1.0/observationProcess.xsd. Pass if no errors are reported. Fail otherwise. |
A.17 Conformance class: Timeseries Metadata | ||
http://www.opengis.net/spec/tsml/1.0/conf/xsd-metadata | ||
Dependency |
http://www.opengis.net/spec/tsml/1.0/req/xsd-xml-rules |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-metadata |
|
Dependency |
http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-metadata |
|
|
/conf/xsd-metadata/timeseries-metadata |
|
|
Requirement |
/req/tsml/1.0/req/xsd-metadata/timeseries-metadata |
|
Test Purpose |
Verify that the tsml:Timeseries/tsml:metadata element has a value that matches the content model defined by tsml:TimeseriesMetadata. |
|
Test Method |
Validate the XML document using the XML Schema Document http://schemas.opengis.net/tsml/1.0/timeseriesTVP.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-metadata/point-metadata |
|
|
Requirement |
/req/tsml/1.0/req/xsd-metadata/point-metadata |
|
Test Purpose |
Verify that the tsml:CategoricalTVP/tsml:metadata and tsml:MeasurementTVP/tsml:metadata elements have a value that matches the content model defined by tsml:PointMetadata. |
|
Test Method |
Validate the XML document using the XML Schema Document http://schemas.opengis.net/tsml/1.0/timeseriesTVP.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-metadata/timeseries-comments |
|
|
Requirement |
/req/tsml/1.0/req/xsd-metadata/timeseries-comments |
|
Test Purpose |
Verify that the tsml:TimeseriesMetadata/tsml:commentBlock element has a value that matches the content model defined by tsml:TimeseriesMetadata. |
|
Test Method |
Validate the XML document using the XML Schema Document http://schemas.opengis.net/tsml/1.0/timeseriesMetadata.xsd. Pass if no errors are reported. Fail otherwise. |
|
/conf/xsd-metadata/timeseries-metadata-extension |
|
|
Requirement |
/req/tsml/1.0/req/xsd-metadata/timeseries-metadata-extension |
|
Test Purpose |
Verify that the tsml:TimeseriesDomainRange/tsml:metadata element has a value that matches the content model defined by tsml:TimeseriesMetadataExtension. |
|
Test Method |
Validate the XML document using the XML Schema Document http://schemas.opengis.net/tsml/1.0/timeseriesDR.xsd. Pass if no errors are reported. Fail otherwise. |
Annex B - Codelists (informative)
This annex contains copies of codelists that are initially defined in the OGC Timeseries Profile of Observations and Measurements and used in the TimeseriesML XML encoding.
They are reproduced in this standard for convenience only. The normative definitions are not maintained in this standard.
Normative definitions can be found at http://www.opengis.net/def/timeseries/ and are maintained outside of this standard.
B.1 DataQualityCode Codelist
Terms in this codelist are used to indicate the quality of individual data points.
Code | Label | Definition |
---|---|---|
http://www.opengis.net/def/timeseries/DataQualityCode/Good |
Good |
The data has been examined and represents a reliable measurement. |
http://www.opengis.net/def/timeseries/DataQualityCode/Suspect |
Suspect |
The data should be treated as suspect. |
http://www.opengis.net/def/timeseries/DataQualityCode/Estimate |
Estimate |
The data is an estimate only, not a direct measurement. |
http://www.opengis.net/def/timeseries/DataQualityCode/Poor |
Poor |
The data should be considered as low quality and may have been rejected. |
http://www.opengis.net/def/timeseries/DataQualityCode/Unchecked |
Unchecked |
The data has not been checked by any qualitative method. |
http://www.opengis.net/def/timeseries/DataQualityCode/Missing |
Missing |
The data is missing. |
B.2 InterpolationCode Codelist
Terms in this codelist are used to indicate how data should be interpolated between neigbouring points in a timeseries.
Code | Label | Definition |
---|---|---|
http://www.opengis.net/def/timeseries/InterpolationCode/Continuous |
Continuous |
A continuous timeseries indicates the observation result is the value of a property at the indicated instant in time. The points are essentially connected and interpolation may occur between points in order to estimate the value of the property between points. The appropriate time spacing between successive points to minimize interpolation errors is related to rate of change (with respect to time) of the property. |
http://www.opengis.net/def/timeseries/InterpolationCode/Discontinuous |
Discontinuous |
The sampling of the property occurs such that it is not possible to regard the series as continuous. The time between samples is too large to classify the measurements as continuous. Example: An infrequent water sample measuring pH. |
http://www.opengis.net/def/timeseries/InterpolationCode/InstantTotal |
Instant Total |
Value represents a total attributed to a specific time instant. This is normally generated from an event based measuring device. Example: An individual tip of a tipping bucket rain gauge. |
http://www.opengis.net/def/timeseries/InterpolationCode/AveragePrec |
Average Preceding |
Value represents the average value over the preceding interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/MaxPrec |
Maximum Preceding |
Value represents the maximum value that was measured during the preceding time interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/MinPrec |
Minimum Preceding |
Value represents the minimum value that was measured during the preceding time interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/PrecTotal |
Preceding Total |
Value represents the total of measurements taken within the previous time interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/AverageSucc |
Average Succeeding |
Value represents the average value over the following interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/TotalSucc |
Total Succeeding |
Value represents the average value over the following interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/MinSucc |
Minimum Succeeding |
Value represents the minimum value for the following interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/MaxSucc |
Maximum Succeeding |
Value represents the maximum value for the following interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/ConstPrec |
Constant Preceding |
Value is constant in the preceding interval. |
http://www.opengis.net/def/timeseries/InterpolationCode/ConstSucc |
Constant Succeeding |
Value is constant in the succeeding interval. |
B.3 ProcessTypeCode Codelist
Terms from this codelist are used to indicate the type of process that was used in an observation.
Code | Label | Definition |
---|---|---|
http://www.opengis.net/def/timeseries/ProcessTypeCode/Algorithm |
Algorithm |
Timeseries data is generated by applying an algorithm to input data |
http://www.opengis.net/def/timeseries/ProcessTypeCode/ManualMethod |
Manual Method |
Timeseries data is collected manually |
http://www.opengis.net/def/timeseries/ProcessTypeCode/Sensor |
Sensor |
Timeseries data is collected from an automated sensor |
http://www.opengis.net/def/timeseries/ProcessTypeCode/Simulation |
Simulation |
Timeseries is generated from a simulation |
http://www.opengis.net/def/timeseries/ProcessTypeCode/Unknown |
Unknown |
Timeseries is collected or generated by an unknown process |
B.4 ProcessingCode Codelist
The contents of this codelist is not defined in the Timeseries Profile. It is a stub for any community or vendor specific codelist that defines processing codes relevant to timeseries observations (for example to indicate what processing level or step has been reached).
B.5 SampledMediumCode Codelist
The contents of this codelist is not defined in the Timeseries Profile. It is a stub for any community or vendor specific codelist that defines codes for sampled media relevant to timeseries observations.
B.6 StatusCode Codelist
The contents of this codelist is not defined in the Timeseries Profile. It is a stub for any community or vendor specific codelist that defines status codes relevant to timeseries observations (for example to indicate what verification checks have taken place).
Annex C
(Normative)
- Mapping of TimeseriesML 1.0 XML Schema types to WaterML2.0 XML Schema types
This annex contains a mapping of the TimeseriesML2.0 XML Schema to the WaterML 2.0 XML Schema.
In the TimeseriesML XML Schema implementation emphasis has been placed on minimizing the number of classes. This has been achieved by a combination of soft typing and by merging classes where appropriate (e.g. ObservationMetadata and TimeseriesMetadata are merged in the Timeseries conceptual model).
WaterML2.0 Part 1 XML Schema Type
|
TimeseriesML XML Schema Type |
Notes |
---|---|---|
DocumentMetadata collection.xsd |
None |
DocumentMetadata has been removed as a separate type. Properties of the WML2 DocumentMetadata class have been included in the TSML Collection. |
Collection collection.xsd |
Collection collection.xsd |
Addition of DocumentMetadata properties to the Collection type. |
SamplingFeatureMember collection.xsd |
SamplingFeatureMember collection.xsd |
|
Timeseries timeseries.xsd |
TimeseriesTVP timeseries.xsd |
|
MeasurementTimeseries timeseries.xsd |
TimeseriesTVP timeseries.xsd |
Soft typing, primary distinction is in the encoding of the time-value pairs. |
CategoricalTimeseries timeseries.xsd |
TimeseriesTVP timeseries.xsd |
Soft typing, primary distinction is in the encoding of the time-value pairs. |
TimeseriesMetadata timeseries.xsd |
TimeseriesMetadata timeseriesMetadata.xsd |
|
MeasurementTimeseriesMetadata timeseries.xsd |
TimeseriesMetadata timeseriesMetadata.xsd |
No distinction made between timeseries-level metadata type for Measure and Categorical timeseries. |
ObservationMetadata timeseriesObservationMetadata.xsd |
None
|
ObservationMetadata has been removed however properties of the class were retained and added to TimeseriesMetadata.
ObservationMetadata in WaterML2 specialized 19115 MD_Metadata.
19115 MD_Metadata may still be supplied using the om:metadata association role of OM_Observation.
|
TVPMetadata timeseries.xsd |
PointMetadata timeseriesMetadata.xsd |
|
TVPMeasurementMetadata timeseries.xsd |
PointMetadata timeseriesMetadata.xsd |
No distinction made between point-level metadata type for Measure and Categorical timeseries. Both use the same PointMetadata type. |
DefaultCategoricalTVPMetadata timeseries.xsd |
PointMetadata timeseriesMetadata.xsd |
No distinction made between point-level metadata type for Measure and Categorical timeseries. Both use the same PointMetadata type. |
MeasurementTVP timeseries.xsd |
MeasurementTVP timeseriesTVP.xsd |
|
CategoricalTVP timeseries.xsd |
CategoricalTVP timeseriesTVP.xsd |
|
Measure timeseries.xsd |
Measure timeseriesTVP.xsd
|
|
CommentBlock timeseries.xsd |
CommentBlock timeseriesMetadata.xsd |
|
ObservationProcess observationProcess.xsd
|
ObservationProcess observationProcess.xsd |
Schema is not restricted to use of ObservationProcess. Any valid derivation of OM_Process or SWE AbstractProcess may be used. |
MonitoringPoint monitoringPoint.xsd |
MonitoringFeature monitoringFeature.xsd |
No longer restricted to point monitoring features. Same inheritance from SF_SpatialSamplingFeature. |
TimeZone monitoringPoint.xsd |
TimeZone monitoringFeature.xsd |
|
TimeListSimple timeseries-domain-range.xsd [Informative] |
TimeListSimple timeseriesDR.xsd |
|
TimePositionList timeseries-domain-range.xsd [Informative] |
TimePositionList timeseriesDR.xsd |
|
AnnotationCoverage timeseries-domain-range.xsd [Informative] |
AnnotationCoverage timeseriesDR.xsd |
|
TimeseriesCoverage timeseries-domain-range.xsd [Informative] |
None timeseriesDR.xsd |
No new coverage types are defined. |
TimeseriesDomainRange timeseries-domain-range.xsd [Informative] |
TimeseriesDomainRange timeseriesDR.xsd |
|
MeasurementTimeseriesCoverage timeseries-domain-range.xsd [Informative] |
None |
No new coverage types are defined. |
MeasurementTimeseriesDomainRange timeseries-domain-range.xsd [Informative] |
TimeseriesDomainRange timeseriesDR.xsd |
Soft-typing |
CategoricalTimeseriesCoverage timeseries-domain-range.xsd [Informative] |
None |
No new coverage types are defined. |
CategoricalTimeseriesDomainRange timeseries-domain-range.xsd [Informative] |
TimeseriesDomainRange timeseriesDR.xsd |
Soft-typing |
MeasurementTimeseriesMetadataExtension timeseries-domain-range.xsd [Informative] |
TimeseriesMetadataExtension timeseriesDR.xsd |
Soft-typing |
CategoricalTimeseriesMetadataExtension timeseries-domain-range.xsd [Informative] |
TimeseriesMetadataExtension timeseriesDR.xsd |
Soft-typing |
[1] www.opengeospatial.org/cite
[2] https://portal.opengeospatial.org/files/64632