Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NEW] - Type hybride WMS et sensorthings #869

Open
Gaetanbrl opened this issue Mar 4, 2024 · 1 comment
Open

[NEW] - Type hybride WMS et sensorthings #869

Gaetanbrl opened this issue Mar 4, 2024 · 1 comment
Assignees

Comments

@Gaetanbrl
Copy link
Collaborator

Gaetanbrl commented Mar 4, 2024

Cette contribution est financée dans le cadre du projet BOSCO (CNRS / Inrae - @hsquividant )
https://www.spaceclimateobservatory.org/fr/bosco
https://geosas.fr/bosco/

Présentation

Les couches types Sensorthings (#725) nécessitent de disposer d'une couche du même type.
Cette évolution vise à passer par l'utilisation d'une couche WMS pour appeler un flux OGC sensorthings lors de l'interrogation d'une entité.

Le cas d'usage est le suivant :

En tant qu'utilisateur,
Je souhaite disposer d'un flux WMS cliquable et facilement configurable,
Qui me permet d'interroger et mettre en forme des séries temporelles issues de capteur.

Description fonctionnelle

Lorsqu'un utilisateur clique sur une entité d'un WMS, le comportement est identique au cas où un utilisateur clique sur une entité de type sensorthings.

Par exemple avec une couche parcellaire :

  • le custom control permet de voir les type de données (datastreams) comme l'humidité, l'ensoleillement, etc...
  • lors du clique sur une entité, le template affiche une dataviz en lien avec les valeurs sélectionnées dans le customcontrol (les observations)

Description technique

Cette évolution nécessite que le WMS dispose d'un champ qui permet, pour toute entité, de connaître l'URL Things d'appel.
C'est en effet cette première URL qui permet de récupérer les informations suivantes utiles aux type sensorthings.

Exemple d'enchaînement :

  1. Clique sur l'entité pour réaliser une requête GetFeature
    https://geosas.fr/geoserver/sensorthings/ows?SERVICE=WMS&LAYERS=bosco&QUERY_LAYERS=bosco&STYLES=&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&EXCEPTIONS=XML&BBOX=-243282.988701%2C6101620.00219%2C-212459.757045%2C6106129.786859&FEATURE_COUNT=1000&HEIGHT=236&WIDTH=1613&FORMAT=image%2Fpng&INFO_FORMAT=application/json&CRS=EPSG%3A3857&I=884&J=131

  2. Lecture du champ et de la valeur de l'URL
    https://frost.geosas.fr/bosco/v1.0/Things(41104)

  3. Lecture du résultat et récupération de l'URL des Datastreams
    https://frost.geosas.fr/bosco/v1.0/Things(41104)/Datastreams

  4. Requête Datastreams

  5. Lecture des résultats pour afficher le customcontrol sensorthings

  6. Lecture des résultats pour obtenir les observations
    https://frost.geosas.fr/bosco/v1.0/Datastreams(41104)/Observations

Fonctionnement technique proposé (e.g librairie, extrait de code, etc.)

Sur la base du type sensorthings déjà proposé (#627), il convient d'avoir un nouveau paramètre pour le type de couche WMS que l'on pourra nommé sensorthingsfield <string>.

Ce paramètre permettra :

  • Si non vide, de savoir si le comportement doit être le même que le type sensorthings au clic
  • Si non vide, de pouvoir lire le bon champ qui contiendra l'URL permettant de lire les informations utiles au type sensorthings

Ici, le champ est ThingsUrl :

https://geosas.fr/geoserver/sensorthings/ows?SERVICE=WMS&LAYERS=bosco&QUERY_LAYERS=bosco&STYLES=&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&EXCEPTIONS=XML&BBOX=-243282.988701%2C6101620.00219%2C-212459.757045%2C6106129.786859&FEATURE_COUNT=1000&HEIGHT=236&WIDTH=1613&FORMAT=image%2Fpng&INFO_FORMAT=application/json&CRS=EPSG%3A3857&I=884&J=131

@Gaetanbrl
Copy link
Collaborator Author

Cette évolution nécessite que la PR #725 soit mergée.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant