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]
Feature of a type defined within a particular application domain
[ISO 19156, definition 4.4]
Abstraction of real-world phenomena
[ISO 19101:2002, definition 4.11]
Act of observing a property
[ISO 19156, definition 4.10]
Method, algorithm or instrument, or system of these which may be used in making an observation
[ISO 19156, definition 4.11]
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
Feature, such as a station, transect, section or specimen, which is involved in making observations concerning a domain feature
[ISO 19156, definition 4.16]
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.]
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 accumulationIntervalLengthdefines the duration of the period. For example, Figure 9 shows accumulated daily rainfall totals from 9am to 9am.
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.
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.
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.
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 relatedSamplingFeatureproperty.
- 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.
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 conceptualmodel. 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
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 |
|
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
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_SamplingFeatureCollectionprovides 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
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
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 TimeseriesObservationoffer 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, CategoricalTimeseriesDomainRangeObservationandMeasurementTimeseriesDomainRangeObservation.
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
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
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
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
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
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
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
The core Timeseriesclass 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 Timeseriesin 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.
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.
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 Timeseriesclass is available for use without the TimeseriesObservationfeature 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
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
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
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
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
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
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
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 |
|
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
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
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 |
|
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
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 |
||
|
/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 |
||
|
/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 |
||
Dependency |
||
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 |
||
|
/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 |
||
|
/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 |
||
|
/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 |
||
|
/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. |