# Service d'observation des capteurs

Le service d'observation des capteurs (Sensor Observation Service - SOS) est un service Web pour interroger les données instantanées et temporelles des capteurs et fait partie du projet Sensor Web.

## Description

Les données du capteur proposées comprennent les descriptions des capteurs eux-mêmes, codées au format SensorML et les valeurs mesurées dans le format O&M (Observations et Mesures). Le service Web ainsi que les deux formats de fichiers sont des standards ouverts et des spécifications du même nom défini par le Open Geospatial Consortium (OGC).
Si le SOS prend en charge un fonctionnement par transactions (SOS-T), les nouveaux capteurs peuvent être enregistrés sur l'interface du service et les mesures insérées. Une implémentation de SOS peut être utilisée à la fois pour les données provenant de capteurs in situ et à distance. En outre, les capteurs peuvent être mobiles ou fixes.
Depuis 2007, le SOS est une norme OGC officielle. L'avantage de SOS est que les données du capteur - de toute sorte - sont disponibles dans un format standardisé en utilisant des opérations normalisées. Ainsi, l'accès aux données du capteur via le Web est simplifié. Il permet également une intégration facile dans les infrastructures de données spatiales existantes ou les systèmes d'information géographique.
En 2016, OGC a accepté la spécification standard de l'API SensorThings, une nouvelle norme RESTful et JSON fournit des fonctions similaires à SOS. Comme l'API SensorThings et SOS sont basées sur l'OGC/ISO19156:2011, il a été démontré dans un projet pilote OGC IoT que les deux spécifications peuvent interopérer l'une avec l'autre.

## Opérations

Le SOS a un cœur de trois opérations qui doivent être fournies par chaque implémentation. L'opération GetCapabilities permet d'interroger un service pour obtenir une description de l'interface du service et des données du capteur disponibles. Pour utiliser le SOS, la fonction GetObservation est probablement la plus importante. Il peut être utilisé pour récupérer les données des capteurs. La fonction DescribeSensor renvoie des informations détaillées sur un capteur ou un système de capteurs et les processus de production.

### Opérations de base (profil cœur)

* GetCapabilities renvoie une description du service XML avec des informations sur l'interface (opérations proposées et les points d'accès) ainsi que les données des capteurs, telles que la période de couverture des données du capteur, les capteurs qui ont produit les mesures ou les phénomènes observés (par exemple la température de l'air).
* GetObservation permet d'interroger les valeurs observées, y compris leurs métadonnées. Les valeurs mesurées et leurs métadonnées sont renvoyées au format Observations et Mesures (O & M).
* DescribeSensor fournit des métadonnées de capteurs au format SensorML. La description du capteur peut contenir des informations sur le capteur en général, l'identifiant et la classification, la position et les phénomènes observés, mais aussi des détails tels que les données d'étalonnage.

### Opérations transactionnelles (profil transactionnel)

* RegisterSensor permet d'enregistrer un nouveau capteur dans un SOS déployé.
* InsertObservation peut être utilisé pour insérer les données des capteurs déjà enregistrés dans le SOS.

### Opérations étendues (profil amélioré)

* GetResult permet de demander les mesures des capteurs sans les métadonnées si l'on donne des métadonnées cohérentes (par exemple, le capteur, l'objet observé).
* GetFeatureOfInterest renvoie le géo-objet dont les propriétés sont surveillées par les capteurs dans le format Geography Markup Language.
* GetFeatureOfInterestTime fournit des périodes pour lesquelles les mesures d'un objet observé dans le SOS sont disponibles.
* DescribeFeatureType renvoie le type des géo-objets observés (Schéma XML (W3C))
* DescribeObservationType renvoie le type d'observation (Schéma XML), tel que om: (Observations et Mesures).
* GetObservationById permet d'interroger une observation spécifique à l'aide d'un identifiant renvoyé par le service en réponse à une opération InsertObservation.
* DescribeResultModel fournit le schéma XML de la valeur mesurée, ce qui est particulièrement important pour les mesures complexes, telles que les données multi-spectrales.

## Logiciels

Le SOS est un standard de l'OGC et définit finalement uniquement une interface de service, mais pas une implémentation. Il existe actuellement plusieurs implémentations ouverte du service :
* en Java de 52°North,
* en Java, dans le cadre du projet deegree par la société lat/lon,
* en C, dans MapServer,
* en Python, le projet istSOS.
Des implémentations propriétaires existent aussi.