geosas / bosco

Visualiseur du projet Bosco
0 stars 1 forks source link

Visualisation temporelle #4

Closed Gaetanbrl closed 2 months ago

Gaetanbrl commented 6 months ago

Cas d'usage

En tant qu'utilisateur de BOSCO Je souhaite pouvoir sélectionner des dates après sélection d'une parcelle, Afin de n'afficher que les valeurs d'un indicateur issu du dataStream pour cette date et pour une parcelle donnée.

Présentation

il est demandé de :

Le rendu final devra permettre de sélectionner rapidement et ergonomiquement les données sur les dates disponibles.

Prérequis

La couche raster doit être publiée et accessible avec une dimension temporelle.

Description fonctionnelle

Un nouveau customcontrols sera réalisé. Il ne sera pas basé sur la brique temporelle existante.

Il permettra de choisir :

Description technique

Lors du chargement, les dates fournies dans le getCapabilities du flux seront réutilisées pour charger le calendrier. Les technologies de la brique temporelle existante dans mviewer pourront cependant être réutilisées.

Tâches

Gaetanbrl commented 5 months ago

@hsquividant Dans la description de l'issue, les dates proviennent de la dimension temporelle (geoserver) de la couche rpg_bosco sela les descriptions précédents qui n'ont pas été commentée (donc vraies pour le moment) :

Je souhaite pouvoir sélectionner des dates après sélection d'une parcelle, Pouvoir choisir une date spécifique afin de consulter la valeur pour la parcelle sélectionnée à cette date Lors du chargement, les dates fournies dans le getCapabilities du flux seront réutilisées pour charger le calendrier.

Je vois cependant que pour la couche rpg_bosco il n'y a pas de dimension temporelle (voir getCapabilities) ni de champ type date pour cette couche qui permettrai d'avoir une dimension temporelle.

Cela veut donc dire qu'en l'état, la dimension temporelle n'existe que pour la couche humidite_bzh (datastream) et les dates ne peuvent provenir que de cette couche.

Questions :

hsquividant commented 5 months ago

@Gaetanbrl

Oui, à ce stade, seule la couche humidite_bzh fournit les dates. Il s'agit d'une couche raster multidate au format ImageMosaic.

Dans mon idée, la couche humidité multidate et la couche parcelle+SensorThings sont complètement indépendantes, donc dans ce premier développement, on peut faire le choix d'une déconnexion entre le calendrier affecté à la couche humidite_bzh et la sélection des datastreams reliée à la couche rpg_bosco. Dans le calendrier, il faut lister toutes les dates retournées par le getcapabilities de la couche humidite_bzh.

Gaetanbrl commented 5 months ago

on peut faire le choix d'une déconnexion entre le calendrier affecté à la couche humidite_bzh et la sélection des datastreams reliée à la couche rpg_bosco

Le calendrier serait à afficher dans la légende de la couche humidité_bzh donc ?

hsquividant commented 5 months ago

oui, c'est ça.

Gaetanbrl commented 5 months ago

Suite au point du jour, les éléments suivants sont à voir :

hsquividant commented 5 months ago
 Voir pour n'afficher les dates dans le calendrier qui ont des données à l'écran (voir possibilités avec imagemosaic et envelop 2d + intersection geoserver query layer avec une bbox mviewer)

Avec Tom, on investigue une autre option via l'API STAC (SpatioTemporal Asset Catalog), candidat à l'adoption par l'OGC. Sa fonction première est la recherche dans des catalogues de données sur des critères spatio-temporels. Un exemple de requête et la réponse associée : https://catalogue.dataspace.copernicus.eu/stac/search?bbox=-4,46,-3,48&collections=SENTINEL-1 Dans le JSON retourné, il faudrait récupérer les dates dans features[n].properties.datetime pour les intégrer à intégrer au calendrier. Si le STAC devient un standard OGC, il serait intéressant d'ajouter ce type de fonctions de recherche interopérables au mviewer. Les plateformes de diffusion d'images Sat l'utilise depuis pas mal de temps. @Gaetanbrl qu'en dis-tu ?

Gaetanbrl commented 5 months ago

Comme ca c'est faisable, il faudrait indiquer au custom control comment récupérer les dates ou par quel service et via quels propriétés du retour d'URL (qui peut changer selon l'URL utilisée).

Piste à creuser pour la mise en place dans mviewer afin de permettre de choisir la sources des dates via le getCapabilities ou via une API STAC.

Gaetanbrl commented 5 months ago

Avec Tom, on investigue une autre option via l'API STAC

@hsquividant est-ce que c'est opérationnel afin que je puisse poursuivre les devs avec cette solution ?

hsquividant commented 4 months ago

@Gaetanbrl, pour l'instant, nous n'avons rien d'opérationnel. Par contre Copernicus propose déjà une API STAC qui permet la récupération des dates présentes pour leurs images Sentinel-1 qui sont les mêmes que celles du projet BOSCO. Exemple de requête :
https://catalogue.dataspace.copernicus.eu/stac/collections/SENTINEL-1/items?bbox=-3,47.5,-2,48.5&datetime=2017-01-01T09:59:31.293Z/2022-12-31T09:59:31.293Z&limit=10 L'info à exploiter est dans features[n].properties.datetime. C'est bien pour initier les devs, mais on trouve que les temps de réponse sont relativement longs. On envisage donc de déployer un service miroir "maison" qui ne contiendrait que les infos utiles et qu'on espère nettement plus rapide. A suivre...

hsquividant commented 4 months ago

@Gaetanbrl, on vient de déployer notre propre service STAC. Il permet de récupérer les dates présentes au sein d'une emprise spatiale (bbox) et temporelle (datetime) avec des performances nettement supérieures à celles du service Copernicus. Pour le moment, il fournit plus de dates que celles réellement présentes dans l'emprise fournie dans la requête mais tu peux déjà la tester dans les devs. Exemples de requêtes :

Gaetanbrl commented 2 months ago

Reste à faire à traiter par l'équipe @hsquividant (voir dernier commentaire). Je fais une autre issue sur ce sujet et je clos cette issue.