The following UML diagram shows the SensorThings API data model.
Note: We are still working on the Web pages of OGC SensorThings API. It will be available here soon. For now, you can download the old fashion PDF version. :-)
The OGC SensorThings API data model consists of two parts: (1) the Sensing profile and (2) the Tasking profile. The Sensing profile allows IoT devices and applications to CREATE, READ, UPDATE, and DELETE (i.e., HTTP POST, GET, PATCH, and DELETE) IoT data and metadata in a SensorThings service.
Managing and retrieving observations and metadata from IoT sensor systems is one of the most common use cases. As a result, the Sensing profile is designed based on the ISO/OGC Observation and Measurement (O&M) model [OGC and ISO 19156:2011].
SensorThings API has the following resources:
Thing
Locations
HistoricalLocations
Datastream
ObservedProperty
Sensor
Observation
FeatureOfInterest
The key to the model is that an Observation
is modeled as an act that produces a result whose value is an estimate of a property of the observation target or FeatureOfInterest
. An Observation
instance is classified by its event time (e.g., resultTime and phenonmenonTime), FeatureOfInterest
, ObservedProperty
, and the procedure used (often a Sensor
).
Moreover, Things
are also modeled in the SensorThings API. Further the geographical Locations
of Things
are useful in almost every application and as a result are included as well.
In the Sensing profile, a Thing
has Locations
and HistoricalLocations.
A Thing
also can have multiple Datastreams
. A Datastream
is a collection of Observations
grouped by the same ObservedProperty
and Sensor
. An Observation
is an event performed by a Sensor that produces a result whose value is an estimate of an ObservedProperty
of the FeatureOfInterest
.