Repository navigation
Dealing with "Derived" Observations #3
|
Hello all, I'm seeking some guidance on how to deal with what I'm calling "derived" observations. A derived observation is an observation which can be calculated, derived or generated from, and is therefore a child of, a real observation. To illustrate, here are two concrete examples from separate applications I am working on:
How would you represent this in the STA model? I'm exploring these avenues:
I'm wondering if anyone has experience with something like this; all opinions welcome! |
Replies: 1 comment 2 replies
|
This discussion would also fit nicely on the official SensorThings GitHub discussion list. There are many aspects to the question of "Derived" Observations, but in the end the question is always: what does one want to make available to the client. To start off, all Observations are derived. Electronic sensors generally measure a voltage, that gets translated into a value in a different unit. And even when I read a mercury (or oil) thermometer, I actually measure the position of a meniscus, that is translated into a temperature. These original measurements are not available to the end user, and the derivation details go in the Sensor or Procedure description. This is most likely also the case for your accelerometer example. The high frequency acceleration measurements are probably not available in the STA service, so you can just state in your Sensor metadata that it derives its measurements from acceleration data. In the case of aggregations, like your raster example, the Sensor for those aggregations is the algorithm that does the aggregation. This is also the reason that in the update from O&M v2 to OMS, the class Sensor was renamed to Observer. A mathematical model or aggregation algorithm can also be the Observer (or in STA the Sensor). When the aggregation happens in time, this should be made clear by making the phenomenonTime of the Observation a time interval. When the aggregation happens in space, this should be made obvious by making the Feature an area, and not a point. If the original data is not available to the user, then the Sensor/Procedure can describe the combination of the original sensor and the aggregation done on the data. In the case that the original data is available, but not in the STA service, the Datastream or the Observation can link to the original data. In STA v2 the Relations extension will the method of choice for this link. Subclassing of STA classes is never needed. Soft-typing is much easier to deal with for both client and server. |
This discussion would also fit nicely on the official SensorThings GitHub discussion list.
There are many aspects to the question of "Derived" Observations, but in the end the question is always: what does one want to make available to the client.
To start off, all Observations are derived. Electronic sensors generally measure a voltage, that gets translated into a value in a different unit. And even when I read a mercury (or oil) thermometer, I actually measure the position of a meniscus, that is translated into a temperature. These original measurements are not available to the end user, and the derivation details go in the Sensor or Procedure description. This is most likely also the c…