OGC 15-043r3: Timeseries Profile of Observations and Measurements Open Geospatial Consortium Submission Date: 2016-02-23 Approval Date: 2016-02-23 Publication Date: 2016-09-09 External identifier of this OGC ® document: http://www.opengis.net/doc/IS/timeseries-profile-om/1.0 URL for this OGC ® document: https://docs.ogc.org/is/15-043r3/15-043r3.html Additional Formats (informative): Please refer to the errata for this document, which may include some normative corrections. Internal reference number of this OGC ® document: 15-043r3 Version: 1.0 Category: OGC ® Implementation Standard Editors: James Tomkins , Dominic Lowe Timeseries Profile of Observations and Measurements Copyright notice Copyright © 2016 Open Geospatial Consortium To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . Warning This document is an OGC Member approved international standard. This document is available on a royalty free, non-discriminatory basis. Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation. Document type: OGC Standard Document subtype: Profile Document stage: Approved as official OGC standard Document language: English License Agreement Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement. If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR. THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD. THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY. This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party. Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications. This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it. i. Abstract The OGC Timeseries Profile of Observations and Measurements is a conceptual model for the representation of observations data as timeseries, with the intent of enabling the exchange of such data sets across information systems. This standard does not define an encoding for the conceptual model; however there is an accompanying OGC Standard which defines an XML encoding (OGC TimeseriesML 1.0 - XML Encoding of the Timeseries Profile of Observations and Measurements). Other encodings may be developed in future. ii. Keywords The following are keywords to be used by search engines and document catalogues. Timeseries, Observations, Exchange, Interoperability, OGC iii. Preface This standard defines the semantics of observational data as timeseries for data exchange. It profiles the Observations and Measurements standard to define a result of type Timeseries. This allows observational information systems to communicate timeseries data between systems and to end users. This standard has been developed from work initially undertaken within OGC WaterML 2.0: Part 1 – Timeseries. Work has been done to remove the hydrology specific aspects of this work to produce a domain-neutral model for the representation and exchange of timeseries data. 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) Météo-France KISTERS AG Environment Canada US National Weather Service Landcare Research v. Submitters All questions regarding this submission should be directed to the editors or the submitters: Name Representing OGC 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 vi. Future Work Future work will focus on increasing the flexibility of this standard in order to provide the widest practicable support for alternative types of timeseries. Some of the areas identified for exploration in future work include: Enhanced multi-parameter support Alternative encoding formats e.g. JSON, RDF etc. Coverage timeseries harmonisation Internet of Things harmonisation 1. Scope This document is an OGC® Implementation Standard for the representation of observations data structured as a timeseries. The Timeseries Profile of Observations and Measurements builds upon the OGC Observations & Measurements standard (OGC Abstract Topic 20). The profile is designed to be extensible to allow encoding of timeseries data 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 model is in the correct, precise description of timeseries. Interpretation of timeseries relies on understanding the nature of the process that generated them. This standard provides the framework under which timeseries can be exchanged with appropriate metadata to allow correct machine interpretation and thus correct use for further analysis. Existing systems should be able to use this model as a conceptual ‘bridge’ between existing schema or systems, allowing consistency of the data to maintained. This standard does not mandate an encoding, only a conceptual model. Encodings are provided in separate standards documents. At the time of writing an XML encoding is available (OGC TimeseriesML 1.0). 2. Conformance This standard defines a set of implementation requirements for Timeseries Observations. 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: a) 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 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 Abstract Specification Topic 20 – Observations and Measurements (aka ISO 19156:2011) OGC Abstract Specification Topic 2 – Spatial Referencing by Coordinates (aka ISO 19111:2007) OGC Abstract Specification Topic 6 – Schema for Coverage geometry and functions (aka ISO 19123:2005) OGC Abstract Specification Topic 11 – Geographic information — Metadata (aka ISO 19115:2003) OGC 07-036 Geography Markup Language (aka ISO 19136:2007) OGC WaterML2.0 part 1 – Timeseries. OGC 10-126r4. www.opengis.net/standards/waterml OGC Observations and Measurements v2.0 OGC Document 10-004r1 http://www.opengis.net/doc/AS/Topic20 (also published as ISO 19156:2011, Geographic information— Observations and Measurements) OGC SWE Common Data Model Encoding Standard v2.0 OGC Document 08-094r1 http://www.opengis.net/doc/IS/SWECommon/2.0 Unified Code for Units of Measure (UCUM) – Version 1.8, July 2009 Unified Modeling Language (UML). Version 2.3. May 2010. Extensible Markup Language (XML) – Version 1.0 (Fourth Edition), August 2006 XML Schema – Version 1.0 (Second Edition), October 2004 4. Terms and Definitions This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard. For the 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 colour red where “colour 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: FTP File Transfer Protocol GIS Geographic Information System ISO International Organization for Standardization O&M Observations and Measurements OGC Open Geospatial Consortium SensorML Sensor Model Language SWE Sensor Web Enablement TVP Time-Value Pair UML Unified Modeling Language UTC Coordinated Universal Time WMO World Meteorological Organisation 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 colour scheme is used to identify the package in which the class exists. This is just for informative purposes. Blue: Defined within this standard (Timeseries Profile of O&M) Green: ISO 19156 – Observations & Measurements Red: Other (ISO or GML) 5.3 Finding Requirements and Recommendations This standard is identified as http://www.opengis.net/spec/timeseries/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 specification URI. In this standard, all requirements are associated to tests in the abstract test suite in Annex A using the URI 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. Observations and Measurements - Overview ISO 19156 – Observations and Measurements (O&M) is a generic information model for describing observations. It defines an observation as “…an act associated with a discrete time instant or period through which a number, term or other symbol is assigned to a phenomenon. It involves application of a specified procedure, such as a sensor, instrument, algorithm or process chain. The procedure may be applied in-situ, remotely, or ex-situ with respect to the sampling location. The result of an observation is an estimate of the value of a property of some feature.” This is described using UML in Figure 1. The Timeseries Profile of Observations & Measurements builds upon the O&M model. Figure: : Observation as defined by O&M 6.1 Sampling Features O&M defines the concept of sampling features as a “feature, such as a station, transect, section or specimen, which is involved in making observations concerning a domain feature.” Sampling features are used in two circumstances: The observation does not obtain values for the whole of a domain feature; The observation procedure obtains values for properties that are not characteristic of the type of the ultimate feature (e.g. measuring electrical conductivity as a proxy for salinity) These concepts are common within a number of timeseries domains, thus the sampling features concept is used in this profile. 7. Timeseries Profile of Observations and Measurements - Overview 7.1 Introduction The Timeseries Profile of Observations and Measurements (abbreviated to Timeseries Profile) is an open standard for conceptualising observations data as a timeseries. It is based on the information model of Observations and Measurements version 2.0 (O&M). O&M is a conceptual model for describing observations and the relationships to various important aspects of the observation process. O&M provides a conceptual model, with an associated implementation as a GML Application Schema in XML schema, for describing a wide range of observations from multiple domains; from observations made by satellites and sensors to manual procedures performed in laboratories. It is a flexible model. Likewise, this standard is accompanied by a second standard defining a GML schema encoding using GML 3.3 encoding rules (see OGC TimeseriesML 1.0). The Timeseries Profile restricts and extends the O&M conceptual model to define a conceptual model that is directly applicable to observations and derived data structured as a timeseries. It is possible that other implementations of the Timeseries Profile can be derived from the conceptual model, for example JSON, NetCDF, non-GML conformant XML etc. The Timeseries Profile defines five main components for describing observations timeseries. Table 1 lists each component and its relationship with Observation and Measurements (ISO 19156). Collections are not currently defined within O&M and are thus an extension. Table Timeseries Profile components and equivalent concepts in O&M 2.0 Timeseries Profile components O & M 2.0 concepts Timeseries and metadata about timeseries Result Observation specialisations Observation Procedures used in measurement/analysis/processing Procedure Monitoring Features Sampling features Collections - The general characteristics of the Timeseries Profile are: A detailed timeseries model that supports encoding of information crucial to correct interpretation of timeseries, such as properties describing the nature of individual data values and their relationships; A model that is reusable across different systems and different transport technologies; A model that can be extended through the use of external schema and soft-typing; The ability to capture information relating to the provenance of a timeseries (i.e. how the timeseries was created). 7.2 Clarification of Terminology around Observations and Simulations While Observations and Measurements (ISO 19156) describes a conceptual information model for describing ‘observations’ (OM_Observation), an observation in this context may be the description of outputs from simulations such as forecast models, where the ‘observations’ occur into the future, or within a simulated time period. Therefore the term ‘Observation’ or ‘observation’ in this standard should be considered to be equally applicable to actual observations and to simulations (which may be simulating the future or the past). Using the same base concepts for describing actual observations and simulations increases the ease of data integration. 7.3 Use of Vocabularies Controlled vocabularies, also known as code-lists, are used in data exchange to identify particular concepts or terms, and sometimes relationships between them. For example, an organisation may define a controlled vocabulary for all observed phenomena that are to be exchanged between parties. Some of these definitions may be related in hierarchies or through other relationships such as equivalence (e.g. precipitation and rainfall refer to the same concept). The Timeseries Profile does not define a full set of vocabularies for data exchange; it does, however define some vocabularies which also provide backward compatibility with vocabularies in WaterML2.0: Part 1 - Timeseries. Vocabularies are defined in the Timeseries Profile for the following concepts: Quality assertions for data values of a broad, categorical type. See section 8.11.10 The interpolation type of the values of a timeseries. See section 8.11.11 The general types of processes used in observation. See section 8.11.12 These vocabularies are defined within the OGC definition namespace ( http://www.opengis.net/def/ ), which is governed by the OGC Naming Authority (OGC-NA). The OGC-NA is responsible for processing requests to change or add new definitions to this namespace. The procedures for the OGC-NA are outlined in OGC document 09-046 (OGC-NA – Procedures) and the structure of URIs is outlined in OGC 09-048 (OGC-NA – Name type specification – definitions). It is envisaged that the Timeseries Profile will be used alongside existing sets of vocabularies as agreed upon within communities (for example for describing the sampled medium). The parties involved in exchange will determine the vocabularies that are to be used in exchange. Optimally a recognised body, such as WMO, would govern the vocabularies. These vocabularies require a governance structure that allows changes to be made as definitions evolve. 7.4 Timeseries Observation as a specialised OM_Observation O&M groups observations into two types based on the nature of the result: observations whose result is static (e.g. a single measurement) and observations where the result varies as some function. It is therefore possible to define an observations timeseries using this model in two ways: A collection of OM_Observations. Each observation represents a single data point; the collection makes up a timeseries. An OM_Observation whose result is a discrete coverage that varies in time (c.f. OM_DiscreteCoverageObservation). Here the OM_Observation feature type provides the spatio-temporal context for the whole timeseries. TimeseriesObservation takes the second view of OM_Observation and defines TimeseriesObservation (base class), TimeseriesTVPObservation (where TVP means time-value pair) and a TimeseriesDomainRangeObservation as shown in Figure 2. Figure: : Observation types as related to ISO 19156 (green) and ISO 19123 (red) The TimeseriesObservation may be viewed as the contract that facilitates data exchange between parties through a common agreement (OM_Observation) of how observations may be conceptualised: i.e. the relationship between features, observed phenomena, procedure and the result generated (a timeseries). The two subtypes of TimeseriesObservation offer two different structuring possibilities for the timeseries result: a time-value pair style structure where the time, value and associated metadata are encoded as coupled items (TimeseriesTVP), and a separated structure where the time and values are represented as separate collections with metadata described separately to the time and values (TimeseriesDomainRange). The second approach will most often result in a more compact encoding due to a more efficient structuring although the first encoding may be more intuitive for many users. See section 7.6.1 for a more detailed description of the relationship to coverages. In the context of this profile, metadata at the Observation level is used as the carrier of first class elements required for data exchange and/or discovery (e.g. identifiers, spatiotemporal context, connections to features, procedures, phenomena and so on). Metadata at the Timeseries level is metadata that describes the structure and nature of the series, such as quality, interpolation types, whether the series is cumulative etc. Finally the Timeseries Profile also supports metadata at the individual data points in the timeseries for example to add quality metadata for individual values. It should be noted that the Timeseries class and its derivatives are available for use without the TimeseriesObservation feature type; this would be useful, for example, where existing systems are communicating that have previously agreed upon identifiers and/or context that allows sufficient context for exchange to occur without providing the full TimeseriesObservation. 7.5 Feature of Interest and Spatial Sampling Features In O&M, the feature of interest is the feature that is the target of the observation. O&M also makes a distinction between observations that make direct observations of feature properties and those that sample the feature and use the sample as a proxy for the value of a feature’s property (often this step involves process, e.g. using an aggregation or interpolation method). Within a number of domains sampling is a common approach (e.g. making a measurement at a particular point to make inferences about the whole feature). This profile defines one specialised sampling feature, a MonitoringFeature, which can serve as the feature of interest for timeseries observations. MonitoringFeature extends the O&M spatial sampling feature, SF_SpatialSamplingFeature. It should be noted that a spatial sampling feature is normally a proxy feature for the ultimate feature of interest. For example the nominal temperature of a city may be determined by an observation at a single point (as opposed to measuring the temperature across the whole city). In this case the city is the ultimate feature of interest, but the feature of interest of the observation is the spatial sampling feature which is represented by a single point. The bounding geometry of the MonitoringFeature (spatial sampling feature) is described by the ‘shape’ property from SF_SpatialSamplingFeature. For timeseries observations, the shape is frequently a point (e.g. corresponding to the location of a station or sensor) but it may be a polygon, line or other geometric object depending on the types of observations being made. NB. Whilst this profile provides the MonitoringFeature as a candidate feature of interest for use with a timeseries observation it should be noted that any O&M Feature Type may be used. 7.6 Timeseries Concepts Conceptually, the Timeseries Profile captures the notion of timeseries as a low-level data structure that contains an ordered set of related feature observations. The feature observations that make up a timeseries are often made by sensors, but may also be from manual observations, or a combination of both. For in-situ sensors, data loggers are often connected to sensors to store the individual observations, and will group them into timeseries for a particular phenomenon that is being measured. When data is processed from sensors and/or data loggers, particular metadata is associated with the collection of points that allow interpretation based on how the sensor is configured to measure (e.g. averaging periods, accumulation of values, value resets, etc.). A timeseries may not be the result of direct measurements but also derived from combinations of other series, processing and/or calculations. From an O&M perspective, such timeseries are still observations but are results from a different process (e.g. a temporal aggregation process). This allows disambiguation of timeseries of directly sensed phenomena and those derived through other relationships e.g. direct measurements of discharge vs. level-to-discharge calculation using a rating curve or table. The value type of the individual observations is another axis of categorisation for timeseries. Potential types for measurement include: Measures (3.2 m/s) Categorical (e.g. ‘cloudy’, ‘windy’, etc.) Vectors (e.g. wind speed and direction: 3.2 m/s North) Composite (combination of phenomena, e.g. Conductivity, Temperature, Dissolved oxygen) The Timeseries Profile focuses on timeseries with value types of measures and categories. These types capture the majority of requirements for data exchange, while keeping a level of simplicity in the model and encodings, leading to simpler implementations. Combined with the two subtypes of TimeseriesObservation identified in 7.4 these values create four possible observation subtypes with corresponding results as shown in Table 2. Table TimeseriesObservation subtypes and result types Observation Subtype Result MeasurementTimeseriesTVPObservation MeasurementTimeseriesTVP MeasurementTimeseriesDomainRangeObservation MeasurementTimeseriesDomainRange CategoricalTimeseriesTVPObservation CategoricalTimeseriesTVP CategoricalTimeseriesDomainRangeObservation CategoricalTimeseriesDomainRange Composite timeseries (multiple phenomena) and other measurement types such as vectors may be addressed in future versions. 7.6.1 Relationship to ISO 19123 – Coverages ISO 19123 defines a coverage as a: “ (a) feature that acts as a function to return values from its range for any direct position within its spatial, temporal or spatiotemporal domain ” Or, “ …a coverage is a feature that has multiple values for each attribute type, where each direct position within the geometric representation of the feature has a single value for each attribute type. ” It is common in many domains, particularly in some Geographic Information System (GIS) communities, to primarily consider a coverage as akin to a two dimensional spatial layer with values of a property over the layer. However it should be noted that the ISO 19123 definition is broader than this and allows for coverages that (for example) vary in time and are at a single point in a spatial coordinate reference system. Given the ISO 19123 definition, a timeseries in the context of observational data can be seen as a discrete coverage , where the domain is a spatiotemporal axis and the range is all the possible values of the observed property. An instance of such a coverage would be a set of ordered time instances where each is associated with a single value from the attribute space. This association is often represented using time-value pairs. The ISO coverages model describes two approaches to representing coverages: a ‘domain-range’ representation where the domain and range are encoded separately, with a mapping function that allows looking up of the range value for a given domain value; and a ‘geometry-value’, or interleaved, approach whereby the geometry and value are coupled together – the coupling explicitly represents the mapping. GML 3.2.1 notes that the geometry-value approach is “ … typically used during data collection where a set or properties relating to a single location are managed together, or update of a datastore where only a small number of features are manipulated at one time. ” And the domain-range approach is ‘ …more suitable for analysis, where spatio-temporal patterns and anomalies within a specific property are of interest .” For example, a grid showing the spatial distribution of rainfall is often generated from observations using interpolation techniques such as Kriging. The surface may be generated using point observations from in-situ sensors. The point observations are often represented using a geometry-value structure with the generated surface being represented using the domain-range approach, with a spatial grid (domain) mapped to its range values (representing total rainfall in the grid cell, for example). This provides a more efficient representation. Figure: : Timeseries as a Coverage The Timeseries Profile defines a timeseries as a coverage whose domain consists of a collection of ordered temporal elements and the spatial component relates to the feature of interest of the observation. For in-situ timeseries the spatial element will be fixed and need not be directly represented in the timeseries domain. The core coverage elements and the relationship to timeseries are shown in Figure 4. The timeseries is a one-dimensional coverage where the varying dimension is time; time being a first class dimension equivalent to any of the spatial dimensions as supported by ISO 19123. The TimeseriesTVP subtype of TimeseriesObservation within the Timeseries Profile 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. Figure: : Timeseries base type and relationship to coverages 7.7 Timeseries and Point metadata Associating metadata with timeseries as a whole and at each individual data value (point) in the timeseries is a common requirement in observational data. Data is annotated with various types of qualifying information such as quality assertions, affecting environmental conditions, description of processing and so on. These annotations are important when processing and analysing timeseries to ensure correct interpretation. The Timeseries Profile defines two core metadata classes; TimeseriesMetadata and PointMetadata. TimeseriesMetadata contains metadata that is applicable to the whole timeseries whereas PointMetadata is applicable to a particular data value in the timeseries. These classes are further specialised in the conceptual model for measurement and category based timeseries as shown in Figure 5. Figure: : Timeseries Metadata Using the interleaved structuring, metadata is associated with a time-value pair explicitly, with the metadata directly associated with a pair. Using the domain-range structuring, metadata is associated to the timeseries through an AnnotationCoverage. This is a coverage that describes the temporally ranging metadata for the series. The domain of the coverage is the time that the annotation is valid; the range captures the values of the annotation (e.g. a quality assertion). In ISO 19123 the values of range are described using a Record, which is a generic set of typed values. Each annotation that is required would need an associate record type. For example, quality may be a string record type that allows for simple categorical representations of quality. (It is noted that the term ‘annotation coverage’ is commonly used in some domains to refer to a coverage containing labels or other cartographic text and that this usage is distinct from that purpose). 7.8 Quality The Timeseries Profile provides the ability to specify a quality assertion using a default set of defined concepts of quality as described in the DataQualityCode code list defined in section 8.11.10. When a non-default quality code is required the qualifier property can be used. The qualifier property is used for qualifying information that is broader in nature than the quality property. These often include indicators or flags that provide further context for the value. Qualifiers allow for deeper interpretation and capture of useful information on a per value basis. The qualifier uses the SWE Common ‘Quality’ union that allows a qualifier to be specified using a Quantity, Quantity Range, Category or Text type. 7.9 Timeseries Spacing and Interpolation Types 7.9.1 intendedObservationSpacing This defines the expected duration between individual observations. It is common that observations will occur frequently (such as those performed by automated sensors or regular visits); this property allows specification of expected time between measurements. This is reflected in the individual points that make up the resulting timeseries, but there are cases where the observation interval does not match the intended observation interval. One example would be an increased observation interval intended to capture an event such as a peak in flood. Note the spacing property for Timeseries is a stricter definition, allowing regularly spaced (equidistant) timeseries to be encoded. 7.9.2 Equidistant timeseries (baseTime and spacing) Ttimeseries 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. If the spacing between the timeseries values differs then the time instants should be directly represented; for such cases (non-equidistant times), the intendedObservationSpacing (section 8.10.7) may be used to indicate the expected spacing. This allows for discovery based on the intended spacing, even there are some values that are not exactly equidistant (e.g. the frequency was increased through an important event). 7.9.3 Anchor Point The startAnchorPoint and endAnchorPoint properties are used to extend a timeseries to include non-explicitly represented periods of time for which the observation is valid. Individual points, when associated with their interpolation type (section 7.9.6), have a ‘direction’ in time: to correctly process such data it is required to understand where the boundaries of the values lie. For example, in Figure 6, the first point of the series (position B) has a data type of average for the preceding interval. Here the value represents the average from the previous point up to this point. As there is no previous point (it is the first in the series), it is not possible to determine when the preceding interval began. The anchor point time specifies a ‘ghost’ point to allow the value to be interpreted correctly. Figure: : Anchor points 7.9.4 Joining Separate Observation Series (max gap period) When two non-overlapping timeseries have been separately collected they require ‘connection’ in order to make a single timeseries. For example, if the latest two months of observational timeseries data is transferred from one system to a major archive, the series must be connected in order to make a full series over which reporting can be run (e.g. to calculate yearly summaries). Figure 7 shows an example of this scenario. Figure: : Connecting two timeseries Observation set #2 is the latest 2 months of data coming into the archival set shown by observation set #1. The join period between the two series will be determined by the time period between the series where no existing points exist. When any analysis is run over this series it is important to know if it is possible to interpolate between point A and point B. The maxGapPeriod property defines this for an observation series – if the join period is greater than the maxGapPeriod then the series should not be interpolated between the adjoining points. 7.9.5 Cumulative timeseries A series that is defined as cumulative (using the cumulative property of type boolean) is one where the values indicate a sequentially increasing series; i.e. each value is added to the last so the value represents the total of a value since accumulation began. An example is shown in Figure 8. Note: cumulative series should only be used for timeseries of the total data types: instantaneous total, preceding total, succeeding total as these represent total quantities. Figure: : A cumulative series The accumulationAnchorTime is used to define the time at which accumulation begins. This is used for consistently accumulated values (such as rainfall) where the values are representing a continuous stream of totals across a certain period. The accumulationIntervalLength defines the duration of the period. For example, Figure 9 shows accumulated daily rainfall totals from 9am to 9am. Figure: : Example accumulated series 7.9.6 Interpolation Type One of the core characteristics of measurement timeseries is the nature of the relationship between the time instant and the recorded value. This relationship is determined by the procedure that was used in making the estimate that the value represents. Representing this is crucial to correctly interpret the timeseries values. For example, the value may represent an average across the time period since the last point (average in preceding interval). The Timeseries Profile defines a number of types of timeseries, as shown in Table 3. The interpolation type is defined per point within the timeseries as it is possible for this to change mid series. Table Types of timeseries 7.9.6.1 Continuous/Instantaneous 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 minimise interpolation errors is related to rate of change (wrt time) of the property. http://www.opengis.net/def/timeseries/InterpolationCode/Continuous 7.9.6.2 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. http://www.opengis.net/def/timeseries/InterpolationCode/Discontinuous 7.9.6.3 Instantaneous Total Value represents a total attributed to a specific time instant. This is normally generated from an event based measuring device such as a tipping bucket rain gauge. http://www.opengis.net/def/timeseries/InterpolationCode/InstantTotal 7.9.6.4 Average in preceding interval Value represents the average value over the preceding interval. http://www.opengis.net/def/timeseries/InterpolationCode/AveragePrec 7.9.6.5 Maximum in preceding interval Value represents the maximum value that was measured during the preceding time interval. http://www.opengis.net/def/timeseries/InterpolationCode/MaxPrec 7.9.6.6 Minimum in preceding interval Value represents the minimum value that was measured during the preceding time interval. http://www.opengis.net/def/timeseries/InterpolationCode/MinPrec 7.9.6.7 Preceding total Value represents the total of measurements taken within the previous time interval. http://www.opengis.net/def/timeseries/InterpolationCode/TotalPrec 7.9.6.8 Average in succeeding interval Value represents the average value over the following interval. http://www.opengis.net/def/timeseries/InterpolationCode/AverageSucc 7.9.6.9 Succeeding total Value represents the total of measurements taken within the following time interval. http://www.opengis.net/def/timeseries/InterpolationCode/TotalSucc 7.9.6.10 Minimum in succeeding interval Value represents the minimum value for the following interval. http://www.opengis.net/def/timeseries/InterpolationCode/MinSucc 7.9.6.11 Maximum in succeeding interval Value represents the maximum value for the following interval. http://www.opengis.net/def/timeseries/InterpolationCode/MaxSucc 7.9.6.12 Constant in preceding interval Value is constant in the preceding interval. http://www.opengis.net/def/timeseries/InterpolationCode/ConstPrec 7.9.6.13 Constant in succeeding interval Value is constant in the succeeding interval. http://www.opengis.net/def/timeseries/InterpolationCode/ConstSucc 7.9.6.14 Statistical Interpolation type is defined by a statistical method. http://www.opengis.net/def/timeseries/InterpolationCode/Statistical 7.10 Observation Process Within O&M, the ProcessUsed association links the observation to the OM_Process used to generate the result. OM_Process is abstract and does not define any attributes or associations. This standard specialises O&M as shown in Figure 10. Figure: : Observation process feature type A large number of direct in-situ observations are performed by a sensor or sensor system. Manual procedures may also be used to make measurements at a particular sampling feature. These may be ad-hoc visits to a particular feature, or continued visits to a well identified sampling feature. Procedures that generate derived or synthetic results also exist, such as those produced by algorithms or simulations. Algorithms are commonly implemented in software to process data sets for reporting or other purposes. Examples include: Temporal interpolation or aggregation; Spatial interpolation; Quality assurance related tasks such as automatic spike removal or gap filling; Derivation of new “observed phenomena”. These operations are performed on raw observational data to create separate data products more appropriate for particular types of reporting, ingestion into models, or for archival purposes. Maintaining information on the procedure used in the creation of a new ‘observation’ is important for correct interpretation of an observation’s result. Note here that the data being described is not strictly an observation but the O&M model is appropriate for such description, and encourages such use: “ An instance of OM_Process is often an instrument or sensor, but may be a human observer, a simulator, or a process or algorithm applied to more primitive results used as inputs.” A TimeseriesObservation shall have a procedure property of type or subtype of either OM_Process or SWE AbstractProcess , or a reference to one of these types. This includes ObservationProcess defined in this standard as a subtype of OM_Process. 7.11 Sampling Feature Collections Defining groups of sampling features is often required, allowing multiple sampling features to be associated with a particular identifier or name. A SamplingFeatureCollection is how a group such as a “field site with many sampling locations” would be expressed. Figure: : SF_SamplingFeatureCollection as defined by ISO 19156 A sampling group may be defined by fully defining each of the sampling features contained in the group, or by referencing each of the sampling features in the group. It is possible to implement sampling groups in both directions: When defining the sampling feature, include a relation to the sampling features in the group using the relatedSamplingFeature property. Define a SF_SamplingFeatureCollection that contains the sampling features. Note: this can be done by referencing already defined sampling features through an identifier or by defining the containing features directly inline. 7.12 Collections The Timeseries Profile 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. Its UML is shown in Figure 12. Such collections are required in a number of data exchange scenarios; whether the underlying transport technology is web services, FTP or other technologies. The grouping may indicate a relationship between the contained entities; however the relationship will depend on the individual use of the collection class. For example, a collection of observations may be all the observations within the last 24 hours for a particular measuring location, but this would be determined by the system creating or handling the documents. Figure: : Collection The collection class also allows for local definitions of codes, such as quality codes and qualifiers. The local dictionaries are a convenience to allow elements that normally reside in code lists to be specified locally in the document. There are two benefits to this: it allows metadata to be provided alongside each code item; and it allows more compact encoding for code list items that need to be referenced regularly. Finally the collection class allows for references to conformance classes (by conformance class identifier) to indicate which conformance classes are adhered to within the collection. The contents of a collection will be determined by the scenario in which it is used; some examples include: Web service responses; Transactional updates; Data from groups of sensors. The collection class may be replaced by services that already define such collections – such as in the Sensor Observation Service – but the model may be used as a guide to the content of collections. 8. The Timeseries Profile UML Conceptual Model - Requirements Classes This section defines a set of Requirements Classes for a timeseries conceptual model. This is not an encoding but a set of concepts that could be implemented in numerous ways or technology. A normative XML Schema implementation is provided in OGC15-042 TimeseriesML 1.0 – XML Encoding. 8.1 Requirement Class Dependencies Figure: : Requirement Class Dependencies 8.2 Requirements Class : Sampling Feature Collections Requirements Class: UML Sampling Feature Collections http://www.opengis.net/spec/timeseries/1.0/req/uml-sampling-feature-collections Dependency http://standards.iso.org/iso/19156/2011 Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature Requirement /req/uml-sampling-feature-collections/groups Groups of sampling features (such as Monitoring Features) shall be described using the SamplingFeatureCollection feature type from ISO 19156 8.2.1 Requirements class overview Figure: : Relationship between SF_SamplingFeatureCollection and MonitoringFeature It is often necessary or useful to define groups of monitoring features, for example when there are several monitoring points at a particular site or station. The ISO 19156 SF_SamplingFeatureCollection provides this grouping mechanism. A group can be defined in one of two ways: · By including a relationship from the sampling feature (MonitoringFeature) to the group using the relatedSamplingFeature property of the sampling feature. · By defining a SF_SamplingFeatureCollection that contains the sampling points. This can be done by defining the points inline of the collection or by referencing pre-defined sampling points using an identifier. 8.3 Requirements Class : Collection Requirements Class: Collection http://www.opengis.net/spec /timeseries/1.0/ req/uml-collection Target Type Encoding of the conceptual model Dependency http://standards.iso.org/iso/19156/2011 Requirement /req/uml-collection/valid A collection shall have the ability to contain multiple sampling features or sampling feature collections; collection-level metadata; observations; and inline (local) dictionaries as described in this standard. 8.3.1 Requirements class overview Figure: : Collection 8.3.2 Collection properties The Timeseries Profile 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 samplingFeatureMember One or more sampling features, or groups of sampling features (SF_SamplingFeatureCollection) SamplingFeatureMember Zero to many (Optional) profile This may be used to reference a definition of a conformance class that members of the collection conform to. ConformanceClass Zero to many (Optional) observationMember One or more timeseries observations TimeseriesObservation 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 document was generated. TM_DateAndTime One (Mandatory) generationSystem The system (e.g. software or hardware) used to generate this document. CharacterString Zero or one (Optional) version This version property is distinct from the version of the Timeseries profile. 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 in a particular context. This standard does not specify further how this version attribute should be used. GenericName Zero or one (Optional) parameter A soft-typed parameter for extra metadata properties. NamedValue Zero to many (Optional) temporalExtent Describes the full temporal extent of 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) 8.3.3 SamplingFeatureMember properties A sampling feature member may be either a single sampling feature (e.g. MonitoringFeature) or a group of features (SF_SamplingFeatureCollection). Property Definition Data types and values Multiplicity byGroup A grouped collection of MonitoringFeatures (SF_SamplingFeatureCollection). SF_SamplingFeatureCollection One (Mandatory) byFeature A monitoring feature. SF_SpatialSamplingFeature One (Mandatory) 8.4 Requirements Class : Timeseries Observation Requirements Class: Timeseries Observation http://www.opengis.net/spec /timeseries/1.0/ req/uml-timeseries-observation Target Type Encoding of the conceptual model Dependency http://standards.iso.org/iso/19156/2011 Dependency http://standards.iso.org/iso/19156/2011 Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-observation-process Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature-foi Requirement /req/uml-timeseries-observation/result A TimeseriesObservation shall have a result that is conformant with the Timeseries UML and Timeseries requirements class, as defined in this standard. Requirement /req/uml-timeseries-observation/resultDomain The spatial domain of the timeseries result shall be consistent with the featureOfInterest of the observation. Requirement /req/uml-timeseries-observation/featureOfInterest The featureOfInterest shall be of type or subtype of SF_SpatialSamplingFeature, as defined by ISO 19156, which includes MonitoringFeature as defined in clause 8.20 of this standard, or any other Feature Type (for non-spatial timeseries). Requirement /req/uml-timeseries-observation/procedure A TimeseriesObservation shall have a procedure property of type or subtype of either OM_Process or SWE AbstractProcess, or a reference to one of these types. This includes ObservationProcess as defined in clause 8.22 of this standard as a subtype of OM_Process. Requirement /req/uml-timeseries-observation/observedProperty A TimeseriesObservation shall have an observedProperty of type GFI_PropertyType, as described in ISO 19156. 8.4.1 Requirements class overview Figure: : Timeseries Observation This standard defines TimeseriesObservation as a type of OM_Observation with particular requirements on the feature of interest, the result (must be a Timeseries) , the procedure, and other aspects of the observation. Two subtypes of TimeseriesObservation offer two different encoding structures for the timeseries result: a time-value pair style structure where the time, value and associated metadata are encoded as coupled items ( TimeseriesTVPObservation ), and a separated structure where the time and values are represented as separate collections with metadata described separately to the time and values ( TimeseriesDomainRangeObservation ). The second approach will most often result in a more compact encoding due to a more efficient structuring and is consistent with the ISO 19123 Coverages model. In this conceptual model TimeseriesTVPObservation and Timeseries are further sub-classed into: CategoricalTimeseriesTVPObservation, MeasurementTimeseriesTVPObservation, CategoricalTimeseriesDomainRangeObservation and MeasurementTimeseriesDomainRangeObservation. 8.4.2 TimeseriesObservation properties A TimeseriesObservation is defined as a specialisation of the O&M OM_DiscreteCoverageObservation. Property Definition Data types and values Multiplicity Procedure A TimeseriesObservation shall have a procedure property of type or subtype of either OM_Process or SWE AbstractProcess , or a reference to one of these types. This includes ObservationProcess defined in this standard as a subtype of OM_Process. ObservationProcess (Or any other valid derivation of OM_Process or SWE AbstractProcess) One (Mandatory) featureOfInterest The feature of interest of a TimeseriesObservation is a MonitoringFeature, which is a specialisation of SF_SpatialSamplingFeature (O&M) or any other Feature Type (for non-spatial timeseries). MonitoringFeature One (Mandatory) Result The result of a TimeseriesObservation is a Timeseries. Timeseries One (Mandatory) 8.5 Requirements Class : Timeseries (TVP) Observation Requirements Class: Timeseries (TVP) Observation http://www.opengis.net/spec /timeseries/1.0/ req/uml-timeseries-tvp-observation Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp Requirement /req/uml-timeseries-tvp-observation/result A TimeseriesTVPObservation shall have a result of type TVPTimeseries 8.5.1 Requirements class overview Figure: : Interleaved Timeseries Observation 8.5.2 TimeseriesTVPObservation properties TimeseriesTVPObservation is a TimeseriesObservation where the result is a time-value pair encoded timeseries. Property Definition Data types and values Multiplicity result The result is a TimeseriesTVP TimeseriesTVP One (Mandatory) 8.6 Requirements Class : Measurement Timeseries (TVP) Observation Requirements Class: Measurement Timeseries (TVP) Observation http://www.opengis.net/spec /timeseries/1.0/ req/uml-measurement-timeseries-tvp-observation Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-timeseries-tvp Requirement /req/uml-measurement-timeseries-tvp-observation/result A MeasurementTimeseriesTVPObservation shall have a result of type MeasurementTimeseriesTVP 8.6.1 Requirements class overview Figure: : Interleaved Measurement Timeseries Observation 8.6.2 MeasurementTimeseriesTVPObservation properties MeasurementTimeseriesTVPObservation is a TimeseriesObservation where the result is a time-value pair encoded timeseries. Property Definition Data types and values Multiplicity result The result is a MeasurementTimeseriesTVP MeasurementTimeseriesTVP One (Mandatory) 8.7 Requirements Class : Categorical Timeseries (TVP) Observation Requirements Class: Categorical Timeseries (TVP) Observation http://www.opengis.net/spec /timeseries/1.0/ req/uml-categorical-timeseries-tvp-observation Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-tvp Requirement /req/uml-categorical-timeseries-tvp-observation /result A CategoricalTimeseriesTVPObservation shall have a result of type CategoricalTimeseriesTVP. 8.7.1 Requirements class overview Figure: : Interleaved Categorical Timeseries Observation 8.7.2 CategoricalTimeseriesTVPObservation properties CategoricalTimeseriesTVPObservation is a TimeseriesObservation where the result is a time-value pair encoded timeseries containing category type values (typically according to a defined classification scheme). Property Definition Data types and values Multiplicity result The result is a CategoricalTimeseriesTVP CategoricalTimeseriesTVP One (Mandatory) 8.8 Requirements Class : Timeseries (Domain Range) Observation Requirements Class: Timeseries (Domain Range) Observation http://www.opengis.net/spec /timeseries/1.0/ req/uml-timeseries-domain-range-observation Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-domain-range Requirement /req/uml-timeseries-domain-range-observation/result A TimeseriesDomainRangeObservation shall have a result of type TimeseriesDomainRange. 8.8.1 Requirements class overview Figure: : Timeseries (Domain Range) Observation A TimeseriesDomainRangeObservation is a type of timeseries observation where the result is a domain range encoded timeseries. In a domain range encoding, the coverage domain (points, in this case temporal points) are encoded separately from the coverage rangeset (i.e. the values e.g. measurements). 8.8.2 TimeseriesDomainRangeObservation properties TimeseriesDomainRangeObservation is a TimeseriesObservation where the result is a domain-range encoded timeseries. Property Definition Data types and values Multiplicity result The result is a TimeseriesDomainRange TimeseriesDomainRange One (Mandatory) 8.9 Requirements Class : Measurement Timeseries (Domain Range) Observation Requirements Class: Measurement Timeseries (Domain Range) Observation http://www.opengis.net/spec /timeseries/1.0/ req/uml-measurement-timeseries-domain-range-observation Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-domain-range-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-timeseries-domain-range Requirement /req/uml-measurement-timeseries-domain-range-observation/ result A MeasurementTimeseriesDomainRangeObservation shall have a result of type MeasurementTimeseriesDomainRange . 8.9.1 Requirements class overview Figure: : Measurement Timeseries Observation - Domain Range 8.9.2 MeasurementTimeseriesDomainRangeObservation properties A MeasurementTimeseriesDomainRangeObservation is a TimeseriesObservation where the result is a domain range encoded timeseries with measurement values for the rangeset. Property Definition Data types and values Multiplicity result The result is a MeasurementTimeseriesDomainRange MeasurementTimeseriesDomainRange One (Mandatory) 8.10 Requirements Class : Categorical Timeseries (Domain Range) Observation Requirements Class: Categorical Timeseries (Domain Range) Observation http://www.opengis.net/spec /timeseries/1.0/ req/uml-categorical-timeseries-domain-range-observation Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-domain-range-observation Requirement /req/uml-categorical-timeseries-domain-range-observation /result A CategoricalTimeseriesDomainRangeObservation shall have a result of type CategoricalTimeseriesDomainRange. 8.10.1 Requirements class overview Figure: : Categorical Timeseries Observation - Domain Range 8.10.2 CategoricalTimeseriesDomainRangeObservation properties CategoricalTimeseriesDomainRangeObservation is a TimeseriesObservation where the result is a domain-range encoded timeseries containing category type values (typically according to a defined classification scheme). Property Definition Data types and values Multiplicity result The result is a CategoricalTimeseriesDomainRange CategoricalTimeseriesDomainRange One (Mandatory) 8.11 Requirements Class : Timeseries (core) Requirements Class: Timeseries (core) http://www.opengis.net/spec /timeseries/1.0/ req/uml-timeseries-core Target Type Encoding of the conceptual model Dependency http://standards.iso.org/iso/19123/2005 Requirement /req/uml-timeseries-core /domain-object A timeseries is a coverage whose domain shall consist of the temporal elements of the timeseries. If the series is spatially varying, the spatial elements shall describe each spatial element (empty for in-situ timeseries). Requirement /req/uml-timeseries-core /time-increasing The time elements of the timeseries shall be ordered in increasing time. Requirement /req/uml-timeseries-core /record-homogeneous The record-type for the values (range) of the timeseries shall be homogenous. Requirement /req/uml-timeseries-core /coverage-type A timeseries shall implement the domain-range or geometry-value (time-value pairs) coverage type. (This requirement is abstract). Requirement /req/uml-timeseries-core /quality When specifying the quality of a data point using the quality property an appropriate URI from the DataQualityCode list shall be used. Requirement /req/uml-timeseries-core /metadata The timeseries shall support metadata for the series as described by the TimeseriesMetadata type Requirement /req/uml-timeseries-core /point-metadata The timeseries shall support point metadata for each value in the series as described by the PointMetadata type. 8.11.1 Requirements class overview Figure: : Timeseries - core The core Timeseries class contains an ordered set of data. This data may be annotated with metadata about each particular data point ( PointMetadata ). It may also be annotated with metadata about the Timeseries as a whole ( TimeseriesMetadata ). There are several specializations of Timeseries in this standard to accommodate different encodings (interleaved and domain-range) and different result types (measurement and categorical). The Timeseries (or it’s specializations) is the result of a TimeseriesObservation . Figure: : Codelists Several codelists are used by the Timeseries Profile. Some of these are initially defined in this standard (but may be extended by the OGC without updating this standard), others are not explicitly defined in this standard at all and community codelists may be used. Figure: : Coverage Domain in a Timeseries At a conceptual level the Timeseries Profile defines a timeseries as a coverage whose domain consists of collection of ordered temporal elements and the spatial component relates to the feature of interest of the observation. 8.11.2 Timeseries properties Class described in the Timeseries requirements class. Base type for abstract timeseries of records. Property Definition Data types and values Multiplicity point Each point of the timeseries is represented by a time-value pair. AnnotatedTimeValuePair Zero to many (Optional) metadata Metadata which applies to the timeseries as a whole. TimeseriesMetadata Zero or one (Optional) 8.11.3 AnnotatedTimeValuePair properties The AnnotatedTimeValuePair is a datatype containing a simple time-value pair along with optional metadata about that data point. Property Definition Data types and values Multiplicity metadata Metadata about this time-value data point PointMetadata Zero or one (Optional) geometry The geometry of the data point. In the case of AnnotatedTimeValuePair the geometry is a temporal geometry (TM_Position). TM_Position One (Mandatory) value The observed value of the data point (e.g. the measure or category) Record One (Mandatory) 8.11.4 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) 8.11.5 SampledMediumCode Codelist The contents of this codelist are not defined in this standard. It is a stub for any community or vendor-specific codelist that defines codes for sampled media relevant to timeseries observations. Code item Definition URL 8.11.6 StatusCode Codelist The contents of this codelist is not defined in this standard. 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). Code item Definition URL 8.11.7 TimeseriesMetadata properties In the context of this profile, metadata at the Observation level is used as the carrier of first class elements required for data exchange and/or discovery (e.g. identifiers, spatiotemporal context, connections to features, procedures, phenomena and so on). Metadata at the Timeseries level is metadata that describes the structure and nature of the series, such as quality interpolation types, whether the series is cumulative etc. It should be noted that the Timeseries class is available for use without the TimeseriesObservation feature type; this would be useful, for example, where existing systems are communicating that have previously agreed upon identifiers and/or context that allows sufficient context for exchange to occur. Property Definition Data types and values Multiplicity commentBlock Comments about the timeseries. CommentBlock Zero to many (Optional) temporalExtent The extent of the temporal domain of the timeseries. The concept is inherited from the coverage model. 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) 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) intendedObservationSpacing Defines the expected spacing between observations e.g. daily. 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) 8.11.8 PointMetadata properties The point metadata applies to an individual point. Although default values may be set depending on the encoding. In the XML encoding in this standard the concept of default point metadata is implemented. Property Definition Data types and values Multiplicity quality This property is for specifying a quality assertion using the 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) 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) 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) 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) qualifier The qualifier property is used for qualifying information that is broader in nature than the quality property. These often include indicators or flags that provide further context for the value. Quality information often aggregates these elements, but qualifiers allow for deeper interpretation and capture of useful information on a per point basis. The qualifier uses the SWE Common ‘Quality’ union that allows a qualifier to be specified using a Quantity, Quantity Range, Category or Text type. The qualifier type may also be used to specify a quality code where the Timeseries Profile quality codes are not being used or where an internal quality code needs to be preserved with the data. Quality Zero to many (Optional) processing The processing property allows for the categorisation of the processing that has been performed on the timeseries. This is closely related to the procedure information as defined at the observation level, but allows for more granular definition (i.e. on a per point basis). Often a default processing type will be set for a whole timeseries, such as a for a forecast timeseries. The XML encoding handles these cases with a defaulting mechanism. ProcessingCode Zero or one (Optional) source This property allows for granular definition of the source of a particular timeseries value. The property points to an object of MD_DataIdentification type (from ISO 19115) that provides context on where the data was sourced. This is useful derived timeseries where the values are aggregated from multiple sources. The property is by reference only meaning that the full MD_DataIdentification type would not be encoded directly but referenced. The XML implementation provides a means to do this. MD_DataIdentification Zero or one (Optional) 8.11.9 TSML_DomainObject properties The TSML_DomainObject is abstract. It has no properties, but carries two constraints: Temporal elements shall be ordered in increasing time The domain of the result is defined by the feature of interest (the spatial location) and the temporal steps on the timeseries. Property Definition Data types and values Multiplicity spatialElement Spatial element of coverage domain. GM_Object One (Mandatory) temporalElement Temporal element of coverage domain TM_GeometricPrimitive One (Mandatory) 8.11.10 DataQualityCode Codelist Terms in this codelist are used to indicate the quality of individual data points. This codelist shall be managed by the OGC and is extensible outside of this standard at the discretion of the OGC. The identifier for this codelist shall be: http://www.opengis.net/def/timeseries/DataQualityCode All items in this codelist shall have identifiers that follow the pattern: http://www.opengis.net/def/timeseries/DataQualityCode /[itemlabel] 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. 8.11.11 InterpolationCode Codelist Terms in this codelist are used to indicate how data should be interpolated between neigbouring points in a timeseries. This codelist shall be managed by the OGC and is extensible outside of this standard at the discretion of the OGC. The identifier for this codelist shall be: http://www.opengis.net/def/timeseries/InterpolationCode All items in this codelist shall have identifiers that follow the pattern: http://www.opengis.net/def/timeseries/InterpolationCode /[itemlabel] 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 minimise interpolation errors is related to rate of change (wrt 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. 8.11.12 ProcessingCode Codelist The contents of this codelist is not defined in this standard. 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). Code item Definition URL 8.12 Requirements Class : CategoricalMetadata Requirements Class: CategoricalMetadata http://www.opengis.net/spec /timeseries/1.0/ req/uml-categorical-metadata Requirement /req/uml-categorical-metadata/ valid-metadata Categorical Metadata shall be valid according to TimeseriesMetadata and PointMetadata defined in clauses 8.11.7 and 8.11.8 of this standard. 8.13 Requirements Class : MeasurementMetadata Requirements Class: MeasurementMetadata http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-metadata Requirement /req/uml-measurement-metadata/valid-metadata Measurement metadata shall be valid according to TimeseriesMetadata and PointMetadata defined in clauses 8.11.7 and 8.11.8 of this standard and according to the definitions of MeasurementTimeseriesMetadata and MeasurementPointMetadata in Figure 26 and clauses 8.13.2 and 8.13.3. 8.13.1 Requirements class overview Figure: : Measurement Metadata 8.13.2 MeasurementTimeseriesMetadata properties Metadata specific to measurement timeseries. Property Definition Data types and values Multiplicity 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) accumulationIntervalLength Defines the length of time over which accumulation is recorded e.g. 24 hours TM_PeriodDuration Zero or one (Optional) accumulationAnchorTime Defines the time at which accumulation begins e.g. 9am. TM_Position 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) 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) 8.13.3 MeasurementPointMetadata properties Metadata about a time-value data point for a measurement timeseries. Property Definition Data types and values Multiplicity censoredReason Used to indicate the reason the value has been censored (e.g. below a threshold). CensoredReasonCode 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) 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) aggregationDuration Describes the temporal aggregation that has occurred to the value. TM_PeriodDuration Zero or one (Optional) 8.14 Requirements Class : Interleaved (TVP) Timeseries Requirements Class: Interleaved (TVP) Timeseriew http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core Requirement /req/uml-timeseries-tvp / interleaved The time (domain) and values (range) shall be provided using time-value pair representation. 8.14.1 Requirements class overview Figure: : Timeseries-interleaved Figure: : Relationship to Coverages 8.14.2 TimeseriesTVP properties The TimeseriesTVP is a timeseries encoding following a time-value pair interleaved pattern. It is made up of a set of individual time-value pairs (elements). Property Definition Data types and values Multiplicity element A set of elements describing each time-value pair. TimeValuePair Zero to many (Optional) 8.14.3 TimeValuePair properties A single point in time and associated value (e.g. measurement). Property Definition Data types and values Multiplicity metadata Metadata about this time-value pair PointMetadata Zero or one (Optional) geometry The temporal 'geometry' of the point (i.e. the time). TSML_DomainObject One (Mandatory) 8.15 Requirements Class : Measurement (TVP) Timeseries Requirements Class: Measurement (TVP Timeseries http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-timeseries-tvp Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp Requirement /req/uml-measurement-timeseries-tvp / value-type All values of the time-value pairs of a MeasurementTimeseriesTVP shall be of type Measure. Requirement /req/uml-measurement-timeseries-tvp / interpolation-type When specifying the interpolation type of a data point using the interpolation property an appropriate URI from the InterpolationCode list shall be used. 8.15.1 Requirements class overview Figure: : Measurement (TVP) Timeseries The MeasurementTimeseriesTVP is a timeseries encoding following time-value pair interleaved pattern where the values of the range are measures. 8.15.2 MeasurementTimeseriesTVP properties The MeasurementTimeseriesTVP is a timeseries encoding following a time-value pair interleaved pattern where the value is a measurement. It is made up of a set of individual time-value pairs (elements). Property Definition Data types and values Multiplicity metadata Metadata about this timeseries MeasurementTimeseriesMetadata Zero or one (Optional) element A set of elements describing each time-value pair. MeasureTimeValuePair Zero to many (Optional) 8.15.3 MeasureTimeValuePair properties A time-value pair encoding where the value is a measure. Property Definition Data types and values Multiplicity metadata Metadata about this time-value pair MeasurementPointMetadata Zero or one (Optional) value The measurement value for this data point (e.g. 5.3m) Measure One (Mandatory) 8.16 Requirements Class : Categorical (TVP) Timeseries Requirements Class: Categorical (TVP) Timeseries http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-tvp Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp Requirement /req/uml-categorical-timeseries-tvp / value-type All values of the time-value pairs of a CategoricalTimeseriesTVP shall be of type Category . 8.16.1 Requirements class overview Figure: : Categorical Timeseries Interleaved 8.16.2 CategoricalTimeseriesTVP properties The CategoricalTimeseriesTVP is a timeseries encoding following a time-value pair interleaved pattern where the value is a category. It is made up of a set of individual time-value pairs (elements). Property Definition Data types and values Multiplicity element A set of elements describing each time-value pair. CategoryTimeValuePair Zero to many (Optional) metadata Metadata about this timeseries CategoricalTimeserieslMetadata Zero or one (Optional) 8.16.3 CategoryTimeValuePair properties A time-value pair encoding where the value is a categorisation. Property Definition Data types and values Multiplicity metadata Metadata about this time-value pair CategoricalPointMetadata Zero or one (Optional) value The categorical value of the data point (e.g. 'High') Category One (Mandatory) 8.17 Requirements Class : Timeseries (Domain Range) Requirements Class: Timeseries (Domain Range) http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-domain-range Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core Requirement /req/uml-timeseries-domain-range / domain-range-separate The time (domain) and values (range) shall be directly represented separately with a 1:1 relationship between each time instant and value in the range. 8.17.1 Requirements class overview Figure: : Timeseries-domain-range The TimeseriesDomainRange is a timeseries encoding following the coverage domain-range pattern. 8.18 Requirements Class : Measurement (Domain Range) Timeseries Requirements Class: Measurement (Domain Range) Timeseries http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-timeseries-domain-range Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-domain-range Requirement /req/uml-measurement-timeseries-domain-range / value-type The type of all the range elements of a MeasurementTimeseriesDomainRange shall be of type Measure . 8.18.1 Requirements class overview Figure: : Measurement (Domain Range) Timeseries The MeasurementTimeseriesDomainRange is a timeseries encoding following the coverage domain-range pattern where each range element is a Measure. 8.19 Requirements Class : Categorical (Domain Range) Timeseries Requirements Class: Categorical (Domain Range) Timeseries http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-domain-range Target Type Encoding of the conceptual model Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-domain-range Requirement /req/uml-categorical-timeseries-domain-range/value-type The type of all the range elements of a CategoricalTimeseriesDomainRange shall be of type Category. 8.19.1 Requirements class overview Figure: : Categorical (Domain Range) Timeseries The CategoricalTimeseriesDomainRange is a timeseries encoding following the coverage domain-range pattern where each range element is a value from a category. 8.20 Requirements Class : Monitoring Feature Requirements Class: Monitoring Feature http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature Target Type Encoding of the conceptual model Dependency http://standards.iso.org/iso/19156/2011 Requirement /req/uml-monitoring-feature/valid An encoding of MonitoringFeature shall be according to this standard with all attributes and associations. Requirement /req/uml-monitoring-feature/time-zone-abbreviation When using a time zone abbreviation, an abbreviation from the list supplied at http://www.timeanddate.com/library/abbreviations/timezones/ should be used. 8.20.1 Requirements class overview Figure: : Monitoring Feature The MonitoringFeature serves as the feature of interest for timeseries observations. It extends SF_SpatialSamplingFeature. The geometry of the MonitoringFeature is described by the ‘shape’ property. For timeseries observations the shape is frequently a point but may be an area polygon or other geometric object. 8.20.2 MonitoringFeature properties A feature where observations are taken such as a sensor, gauge or monitoring site. Property Definition Data types and values Multiplicity timeZone The timezone that the MonitoringFeature is located in. TimeZone Zero or one (Optional) daylightSavingsTimeZone The timezone that the MonitoringFeature is located in when daylight savings applies. TimeZone Zero or one (Optional) relatedParty The details of a party related to this MonitoringFeature. Multiple related parties may be described using the role codelist (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 feature, history records etc. GenericName 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 ISO 19111 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. GenericName Zero to many (Optional) 8.20.3 TimeZone properties The TimeZone class captures information about 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) 8.21 Requirements Class : MonitoringFeature FeatureOfInterest Requirements Class: MonitoringFeature FeatureOfInterest http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature-foi Target Type Encoding of the conceptual model Dependency http://standards.iso.org/iso/19156/2011 Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature Requirement /req/uml-monitoring-feature-foi/foi The target of the featureOfInterest property of the TimeseriesObservation shall be a MonitoringFeature type or a reference to an object of this type. 8.21.1 Requirements class overview Figure: : Monitoring Feature as Feature Of Interest 8.22 Requirements Class : Procedures Requirements Class: Procedures http://www.opengis.net/spec/timeseries/1.0/req/uml-observation-process Target Type Encoding of the conceptual model Dependency http://standards.iso.org/iso/19156/2011 Requirement /req/uml-observation-process/valid The om:procedure property shall point to a feature type that represents the ObservationProcess class according to this standard. Requirement /req/uml-observation-process/processType The processType property of ObservationProcess shall use the appropriate type from the ProcessTypeCode list. 8.22.1 Requirements class overview Figure: : Observation Process 8.22.2 ObservationProcess properties A large number of direct in-situ observations are performed by a sensor or sensor system. Common types of sensors include rain gauges, level gauges, quality sensors such as temperature, turbidity etc. Manual procedures may be also used to make measurements at a particular sampling point. These may be ad-hoc visits to particular point that may be of interest, or continued visits to a well identified sampling point. Procedures that generate derived or synthetic results also exist, such as those produced by algorithms or simulations. Algorithms are commonly implemented in hydrological software to process data sets for reporting or other purposes. Examples include: Temporal interpolation or aggregation; Spatial interpolation; Quality assurance related tasks such as automatic spike removal or gap filling; Derivation of new observed phenomena such as calculation of volume from stage, discharge (flow) from stage etc. 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 If the process involves temporal aggregation of a result set, the time duration over which data has been aggregated should be expressed here. E.g. hourly, daily aggregates. TM_PeriodDuration Zero or one (Optional) verticalDatum Specifies the datum that is used as the zero point for height-related measurements. 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. GenericName Zero to many (Optional) comment Comments specific to the process from the operator. CharacterString Zero to many (Optional) parameter A defintion 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. GenericName Zero or one (Optional) processType A defintion of the type of process used in the observation. This may be a Sensor, ManualMethod, Algorithm or Simulation (including models). ProcessTypeCode One (Mandatory) 8.22.3 ProcessTypeCode Codelist Terms from this codelist are used to indicate the type of process that was used in an observation. This codelist shall be managed by the OGC and is extensible outside of this standard at the discretion of the OGC. The identifier for this codelist shall be: http://www.opengis.net/def/timeseries/ProcessTypeCode All items in this codelist shall have identifiers that follow the pattern: http://www.opengis.net/def/timeseries/ProcessTypeCode /[itemlabel] 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 Annex A (Normative) Abstract Test Suites A.1 Conformance class: Sampling Feature Collections http://www.opengis.net/spec/timeseries/1.0/conf/uml-sampling-feature-collections /req/uml-sampling-feature-collections/groups Groups of sampling features (such as Monitoring Features) shall be described using the SamplingFeatureCollection feature type from ISO 19156 Dependency http://standards.iso.org/iso/19156/2011 /conf/uml-sampling-feature-collections/groups Requirement /req/uml-sampling-feature-collections/groups Test Purpose Verify that groups of sampling features are described using the SamplingFeatureCollection feature type from ISO 19156. Test Method Inspect the model or software implementation to verify the above requirement. A.2 Conformance class: Collection http://www.opengis.net/spec/timeseries/1.0/conf/uml-collection Dependency http://standards.iso.org/iso/19156/2011 /conf/uml-collection/valid Requirement /req/uml-collection/valid Test Purpose Verify the model or implementation supports collections of sampling features or sampling feature collections; collection-level metadata; observations; and inline dictionaries as described in this standard. Test Method Inspect the model or software implementation to verify the above requirement. A.3 Conformance class: Timeseries Observation http://www.opengis.net/spec/timeseries/1.0/conf/uml-timeseries-observation Dependency http://standards.iso.org/iso/19156/2011 Dependency http://standards.iso.org/iso/19156/2011 Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-observation-process Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-monitoring-feature-foi /conf/uml-timeseries-observation/result Requirement /req/uml-timeseries-observation / result Test Purpose Verify that an observation produces a result that is a Timeseries. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-observation/resultDomain Requirement /req/uml-timeseries-observation/resultDomain Test Purpose Verify that the spatial domain of the timeseries result is consistent with that of the featureOfInterest of the observation. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-observation/featureOfInterest Requirement /req/uml-timeseries-observation/featureOfInterest Test Purpose Verify that if featureOfInterest of the observation is not a domain feature then the featureOfInterest property shall be SF_SpatialSamplingFeature or a subtype of this class. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-observation/procedure Requirement /req/uml-timeseries-observation/procedure Test Purpose Verify that the procedure of the Observation is an instance of, or reference to, a type of ObservationProcess or SWE AbstractProcess that defines the process used in generating the timeseries. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-observation/metadata Requirement /req/uml-timeseries-observation/metadata Test Purpose Verify that the metadata property of the Observation is of type ObservationMetadata. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-observation/observedProperty Requirement /req/uml-timeseries-observation/observedProperty Test Purpose This requirement reflects the requirement from ISO 19156 that an observation must specify the observed property of the observation. Verify that the observedProperty property of the OM_Observation has been implemented. Test Method Inspect the model or software implementation to verify the above requirement. A.4 Conformance class: Timeseries (TVP) Observation http://www.opengis.net/spec/timeseries/1.0/conf/uml-timeseries-tvp-observation /conf/uml-timeseries-tvp-observation/result Requirement /req/uml-timeseries-tvp-observation / result Test Purpose Verify that an observation result is a Timeseries using the interleaved (time-value pair) structure. Test Method Inspect the model or software implementation to verify the above requirement. A.5 Conformance class: Measurement Timeseries (TVP) Observation http://www.opengis.net/spec/timeseries/1.0/conf/uml-measurement-timeseries-tvp-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-timeseries-tvp /conf/uml-measurement-timeseries-tvp-observation/result Requirement /req/uml-measurement-timeseries-tvp-observation/result Test Purpose Verify that an observation result conforms to the structure of a MeasurementTimeseriesTVP. Test Method Inspect the model or software implementation to verify the above requirement. A.6 Conformance class: Categorical Timeseries (TVP) Observation http://www.opengis.net/spec/timeseries/1.0/conf/uml-categorical-timeseries-tvp-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-tvp /conf/uml-categorical-timeseries-tvp-observation/result Requirement /req/uml-categorical-timeseries-tvp-observation/result Test Purpose Verify that an observation result conforms to the structure of a CategoricalTimeseriesTVP. Test Method Inspect the model or software implementation to verify the above requirement. A.7 Conformance class: Timeseries (Domain Range) Observation http://www.opengis.net/spec/timeseries/1.0/conf/uml-timeseries-domain-range-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-timeseries-domain-range /conf/uml-timeseries-domain-range-observation/result Requirement /req/ uml-timeseries-domain-range-observation/result Test Purpose Verify that an observation result is a Timeseries using the domain range structure. Test Method Inspect the model or software implementation to verify the above requirement. A.8 Conformance class: Measurement Timeseries (Domain Range) Observation http://www.opengis.net/spec/timeseries/1.0/conf/uml-measurement-timeseries-domain-range-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-domain-range-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-measurement-timeseries-domain-range /conf/uml-measurement-timeseries-domain-range-observation/result Requirement /req/uml-measurement-timeseries-domain-range-observation / result Test Purpose Verify that an observation result conforms to the structure of a MeasurementTimeseriesDomainRange. Test Method Inspect the model or software implementation to verify the above requirement. A.9 Conformance class: Categorical Timeseries (Domain Range) Observation http://www.opengis.net/spec/timeseries/1.0/conf/uml-categorical-timeseries-domain-range-observation Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-domain-range-observation /conf/uml-categorical-timeseries-domain-range-observation/result Requirement /req/uml-categorical-timeseries-domain-range-observation / result Test Purpose Verify that an observation result conforms to the structure of a CategoricalTimeseriesDomainRange. Test Method Inspect the model or software implementation to verify the above requirement. A.10 Conformance class: Timeseries (core) http://www.opengis.net/spec/timeseries/1.0/conf/uml-timeseries-core Dependency http://standards.iso.org/iso/19123/2005 /conf/uml-timeseries-core/domain-object Requirement /req/uml-timeseries-core/domain-object Test Purpose Verify that the Timeseries is a coverage with domain consisting of a single temporal element and no spatial element. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-core/time-increasing Requirement /req/uml-timeseries-core/time-increasing Test Purpose Verify that the time elements of the timeseries are ordered in increasing time. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-core/record-homogeneous Requirement /req/uml-timeseries-core/record-homogeneous Test Purpose Verify that the record-type for each value (range element) of the timeseries is all the same for the whole series (coverage). Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-core/coverage-type Requirement /req/uml-timeseries-core/coverage-type Test Purpose Verify that the structure of the timeseries (coverage) is defined according to the domain-range timeseries conformance class OR the time-value timeseries conformance class. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-core/quality Requirement /req/uml-timeseries-core/quality Test Purpose Verify that the quality assertions used for the timeseries use a URI from the DataQualityCode list. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-core/metadata Requirement /req/uml-timeseries-core/metadata Test Purpose Verify that the metadata property of the timeseries is of type TimeseriesMetadata. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-timeseries-core/point-metadata Requirement /req/uml-timeseries-core/point-metadata Test Purpose Verify that the implementation supports point-based metadata using the type TimeseriesMetadata. Test Method Inspect the model or software implementation to verify the above requirement. A.11 Conformance class: CategoricalMetadata http://www.opengis.net/spec/timeseries/1.0/conf/uml-categorical-metadata /conf/uml-categorical-metadata/valid-metadata Requirement /req/uml-categorical-metadata / valid-metadata Test Purpose Verify the implementation represents all the required attributes and associations to provide metadata for a categorical point or timeseries. Test Method Inspect the model or software implementation to verify the above requirement. A.12 Conformance class: MeasurementMetadata http://www.opengis.net/spec/timeseries/1.0/conf/uml-measurement-metadata /conf/uml-measurement-metadata/valid-metadata Requirement /req/uml-measurement-metadata / valid-metadata Test Purpose Verify the implementation represents all the required attributes and associations to provide metadata for a measurement point or timeseries. Test Method Inspect the model or software implementation to verify the above requirement. A.13 Conformance class: Interleaved (TVP) Timeseries http://www.opengis.net/spec/timeseries/1.0/conf/uml-timeseries-tvp Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core /conf/uml-timeseries-tvp/interleaved Requirement /req/uml-timeseries-tvp/interleaved Test Purpose Verify the timeseries is structured using time-value pairs as defined by the TimeValuePair class. Test Method Inspect the model or software implementation to verify the above requirement. A.14 Conformance class: Measurement (TVP) Timeseries http://www.opengis.net/spec/timeseries/1.0/conf/uml-measurement-timeseries-tvp Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-tvp /conf/uml-measurement-timeseries-tvp/value-type Requirement /req/uml-measurement-timeseries-tvp/value-type Test Purpose Verify the values (range elements) of the timeseries are of type Measure. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-measurement-timeseries-tvp/interpolation-type Requirement /req/uml-measurement-timeseries-tvp/interpolation-type Test Purpose Verify that the interpolation type used for the timeseries uses a URI from the InterpolationCode list. Test Method Inspect the model or software implementation to verify the above requirement. A.15 Conformance class: Categorical (TVP) Timeseries http://www.opengis.net/spec/timeseries/1.0/conf/uml-categorical-timeseries-tvp /conf/uml-categorical-timeseries-tvp/value-type Requirement /req/uml-categorical-timeseries-tvp / value-type Test Purpose Verify the values (range elements) of the timeseries are of type Category. Test Method Inspect the model or software implementation to verify the above requirement. A.16 Conformance class: Timeseries (Domain Range) http://www.opengis.net/spec/timeseries/1.0/conf/uml-timeseries-domain-range Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-core /conf/uml-timeseries-domain-range/domain-range-separate Requirement /req/uml-timeseries-domain-range / domain-range-separate Test Purpose Verify the domain (time) and range (value) parts of the timeseries are represented as separate data items. Test Method Inspect the model or software implementation to verify the above requirement. A.17 Conformance class: Measurement (Domain Range) Timeseries http://www.opengis.net/spec/timeseries/1.0/conf/uml-measurement-timeseries-domain-range Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-timeseries-domain-range /conf/uml-measurement-timeseries-domain-range/value-type Requirement /req/uml-measurement-timeseries-domain-range/value-type Test Purpose Verify the values (range elements) of the timeseries are of type Measure. Test Method Inspect the model or software implementation to verify the above requirement. A.18 Conformance class: Categorical (Domain Range) Timeseries http://www.opengis.net/spec/timeseries/1.0/conf/uml-categorical-timeseries-domain-range Dependency http://www.opengis.net/spec/timeseries/1.0/req/uml-categorical-timeseries-domain-range /conf/uml-categorical-timeseries-domain-range/value-type Requirement /req/uml-categorical-timeseries-domain-range/value-type Test Purpose Verify the values (range elements) of the timeseries are of type Category. Test Method Inspect the model or software implementation to verify the above requirement. A.19 Conformance class: Monitoring Feature http://www.opengis.net/spec/timeseries/1.0/conf/uml-monitoring-feature Dependency http://standards.iso.org/iso/19156/2011 /conf/uml-monitoring-feature/valid Requirement /req/uml-monitoring-feature/valid Test Purpose Verify the implementation represents all the required attributes and associations for a MonitoringFeature. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-monitoring-feature/time-zone-abbreviation Requirement /req/uml-monitoring-feature/time-zone-abbreviation Test Purpose Ensure that time zone abbreviations use an abbreviation from the list supplied at http://www.timeanddate.com/library/abbreviations/timezones/ Test Method Inspect the model or software implementation to verify the above requirement. A.20 Conformance class: MonitoringFeature FeatureOfInterest http://www.opengis.net/spec/timeseries/1.0/conf/uml-monitoring-feature-foi Dependency http://standards.iso.org/iso/19156/2011 /conf/uml-monitoring-feature-foi/foi Requirement /req/ uml-monitoring-feature-foi /foi Test Purpose Verify the featureOfInterest property of the TimeseriesObservation object is of type MonitoringFeature (or a reference to such a type). Test Method Inspect the model or software implementation to verify the above requirement. A.21 Conformance class: Procedures http://www.opengis.net/spec/timeseries/1.0/conf/uml-observation-process Dependency http://standards.iso.org/iso/19156/2011 /conf/uml-observation-process/valid Requirement /req/uml-observation-process/valid Test Purpose Verify the procedure property uses the ObservationProcess type or a reference to such a type. Test Method Inspect the model or software implementation to verify the above requirement. /conf/uml-observation-process/processType Requirement /req/uml-observation-process/processType Test Purpose Verify the processType property of the ObservationType uses an appropriate URI from the ProcessTypeCode list. Annex B (Normative) Mapping between Timeseries Profile of O&M and the WaterML2.0 Conceptual Model This annex contains a mapping of the WaterML2.0 conceptual model to the Timeseries conceptual model. The two models are closely aligned. WaterML2.0 Part 1 UML Feature/Data Type Timeseries Profile of O&M UML Feature/Data Type Notes Collection Collection DocumentMetadata none DocumentMetadata has been removed as a separate type. Properties of the DocumentMetadata class have been included in the Collection. ConformanceClass ConformanceClass SamplingFeatureMember SamplingFeatureMember ObservationMetadata none ObservationMetadata has been removed as a separate type. Properties of the ObservationMetadata class have been included in TimeseriesMetadata. TimeseriesObservation TimeseriesObservation TimeseriesDomainRangeObservation TimeseriesDomainRangeObservation CategoricalTimeseriesDomainRangeObservation CategoricalTimeseriesDomainRangeObservation MeasurementTimeseriesDomainRangeObservation MeasurementTimeseriesDomainRangeObservation TimeseriesTVPObservation TimeseriesTVPObservation CategoricalTimeseriesTVPObservation CategoricalTimeseriesTVPObservation MeasurementTimeseriesTVPObservation MeasurementTimeseriesTVPObservation AnnotatedTimeValuePair AnnotatedTimeValuePair CommentBlock CommentBlock CommentBlockMetadata none Deemed to be unnecessary PointMetadata PointMetadata TVPCategoricalMetadata CategoricalPointMetadata Renamed so it isn’t specific to the time value pair encoding. Timeseries Timeseries TimeseriesMetadata TimeseriesMetadata WML_DomainObject TS_DomainObject AnnotationCoverage AnnotationCoverage TimeseriesDomainRange TimeseriesDomainRange CV_AttributeValuesMeasure CV_AttributeValuesMeasure MeasurementTimeseriesDomainRange MeasurementTimeseriesDomainRange CategoricalTimeseriesDomainRange CategoricalTimeseriesDomainRange WML_AttributeValuesMeasure none Removed as it didn’t add significantly to the conceptual model. TimeValuePair TimeValuePair TimeseriesTVP TimeseriesTVP MeasureTimeValuePair MeasureTimeValuePair MeasurementPointMetadata MeasurementPointMetadata MeasurementTimeseriesMetadata MeasurementTimeseriesMetadata MeasurementTimeseriesTVP MeasurementTimeseriesTVP CategoricalTimeseriesTVP CategoricalTimeseriesTVP CategoryTimeValuePair CategoryTimeValuePair MonitoringPoint MonitoringFeature TimeZone TimeZone ObservationProcess ObservationProcess none CategoricalTimeseriesMetadata Absent from WaterML2 conceptual model. Added for consistency with MeasurementTimeseriesMetadata. [1] www.opengeospatial.org/cite [2] https://portal.opengeospatial.org/files/64632