MTES-MCT / dialog

Intégration de la réglementation de circulation dans les solutions numériques
https://dialog.beta.gouv.fr
GNU Affero General Public License v3.0
9 stars 0 forks source link

Export des données sous un format d'API "user friendly" #986

Open florimondmanca opened 2 weeks ago

florimondmanca commented 2 weeks ago

User story

ETQ utilisateur d'un progiciel GIS propriétaire, je dispose d'une API standard et bien outillée pour réutiliser les données fournies à ce progiciel

ETQ membre de la communauté GIS (par ex OpenStreetMap, logiciels libres de cartographie / itinéraires, etc), je dispose d'un moyen courant de récupérer les données de DiaLog (DATEX II n'est pas considéré comme "courant" car nécessite un parser côté client)

Critères d'acceptation

Design

Implémentation

Contexte supplémentaire

Un chef de projet refonte GIS de la Mairie de Lille nous a signalé l'intérêt que pourrait représenter la mise à disposition des données sous le format standard OGC API Features (successeur de WFS)

Le cas d'usage est de récupérer en open data les données saisies dans le logiciel propriétaire Litteralis, y compris pour des collègues de services qui n'ont pas directement accès au WFS de Litteralis. (Lui-même a indiqué avoir des difficultés à accéder au WFS du Litteralis de la Mairie de Lille. NB : à ce jour la Mairie et la MEL ont un Litteralis chacun, qui ne communiquent pas.)

Pour cela les données fournies par DiaLog doivent être sous un format le plus brut possible (les polygônes), notamment au niveau de la géométrie (pas de post-traitement des polygônes), afin de refléter les données saisies. Les squelettes actuellement calculés pour les besoins du CIFS ne sont pas adaptés et pourraient d'ailleurs être confondus avec le réseau routier alors que ce sont des approximations qui ne correspondent à aucun référentiel.

(=> Conséquence : il faudrait déporter le post-traitement des polygônes pour qu'il soit uniquement fait pour l'export CIFS (techniquement, il faudrait créer une vue qui convertirait les polygônes en squelettes) - Ticket dédié à prévoir)

Le déversement dans l'écosystème OpenStreetMap lui semblait bénéfique et serait facilité par l'usage d'un format aussi courant que l'OGC API Features.

Le contact à la Mairie de Lille nous a conseillé de passer par la Géoplateforme pour l'hébergement. Selon la GeoPF pourrait moissonner notre flux et les clients requêteraient alors la version hébergée par la GeoPF (qui s'occupe du cache etc). Notamment en vue d'une montée en charge.

johanricher commented 1 week ago

Il me semble que ça a la même intention que #200 mais on avait décidé que cet ancien ticket devait être exploré pour préciser le besoin, il me semble qu'aujourd'hui grâce à ce contact on avance justement sur l'exploration.

Il me semble pas que "OGC" soit un format SIG contrairement à GeoJSON ou Shapefile, par exemple. "API standard" ou "user friendly" est trop vague également. Donc j'aimerais que la terminologie soit clarifiée mais surtout qu'on parte du besoin et de la finalité, ici il s'agirait de : télécharger les données de Dialog avec les géométries (et certainement d'autres propriétés à préciser).

Par exemple :

Pouvoir télécharger un fichier au format GeoJSON contenant toutes les données de DiaLog serait un cas d'usage.

Pouvoir télécharger un fichier au format GeoJSON correspondant à un arrêté spécifique (identifié par son ID) ou à une recherche ciblée, serait deux autres cas d'usages.

florimondmanca commented 1 week ago

Oui le périmètre de #200 est différent de ce ticket / du cas d'usage souhaité par la Mairie de Lille

200 semblait se restreindre à une organisation donnée, ce ticket est plutôt dans une logique open data => Pouvoir accéder aux arrêtés publiés par d'autres organisations dont j'aimerais consulter la donnée réglementaire, en pouvant m'appuyer sur les logiciels classiques d'exploration de données géographiques (logiciels SIG != format SIG)

Donc le cas d'usage ne me semble pas être exactement parmi ceux que tu as proposé en exemple

Par rapport à GeoJSON, le téléchargement d'un GeoJSON ou la mise à dispo d'une API OGC seraient deux façons de permettre "d'accéder à la donnée"

Mais ces deux approches sont de nature différente :

Dans les 2 cas il faut décider des champs qu'on expose, mais en termes de mise en service la fabrication et l'hébergement de fichiers GeoJSON "par nous-mêmes" serait peut-être + coûteuse, paradoxalement

johanricher commented 1 week ago

D'accord, le contact de la Mairie de Lille parle d'une API mais je me demande si cela n'est pas une approche solutionniste car il ne précise pas la finalité. A ce stade de ma compréhension, rien ne me permet de dire que des données (fichiers statiques disponibles au téléchargement, plutôt qu'une API) ne serait pas un moyen valide de répondre à son besoin.

Sur l'approche API vs données et pourquoi prévilégier l'une au détriment de l'autre peut poser problème : https://cq94.medium.com/les-api-cest-bien-en-abuser-ca-craint-b5d1c92b32f2

Une diffusion de fichiers téléchargeables, si possible historisés est très complémentaire d’une diffusion par API et permet d’autres types de réutilisations que celles envisagées par les services proposés par l’API. (...)

Dans certains cas, une API offre un service à valeur ajoutée sur des données brutes disponibles par ailleurs. Par exemple l’API de géocodage proposée sur adresse.data.gouv.fr permet de tirer parti de la Base Adresse Nationale de façon bien plus utile que le simple accès aux fichiers de référence.

Ceux-ci sont bien entendu disponibles en téléchargement, sans passer par l’API pour permettre d’autres usages ou services que ceux proposés car une API ne peut pas être assez universelle pour prévoir tout type d’usage et de réutilisation des données… ou alors elle devient une usine à gaz.

florimondmanca commented 1 week ago

Merci pour l'article

Est-ce que la conclusion serait qu'une diffusion par fichier historisé serait complémentaire d'une diffusion par API "d'exploration" ?

En effet Jean-Roc nous a évoqué des cas d'usage nécessitant une échelle de temps à la journée, qui semblent peu compatibles avec la gestion d'une publication historisée (ça fait un paquet de fichiers à héberger et à gérer) ?

Exemple (je paraphrase) : je m'occupe des travaux, je passe ma vie dans QGIS, j'aimerais voir si la métropole a déjà pris un arrêté là où je veux en créer un ; ou à l'inverse m'assurer que la métropole ou le service voisin voit que j'ai mis en place une restriction à tel endroit.

La diffusion fichier répondrait plutôt à des cas d'usage comme celui-ci ? Faire une analyse historique des arrêtés à partir d'un snapshot à un instant donné que j'ai besoin de télécharger entièrement pour y appliquer du traitement hors ligne.

(P.S. : apparemment le service d'hébergement de la GeoPF (attention car je n'ai rien trouvé à ce sujet sur le site de la Géoplateforme, il faudrait demander des précisions) permettrait de faire cette historisation "pour nous". À creuser...)

Par ailleurs, serait-il utile que tu rencontres à ton tour Jean-Roc pour lui poser les questions que tu as en tête et aider à clarifier les besoins ? On n'est pas ressortis avec autre chose qu'en substance "Je veux récupérer les données que j'ai mis dans Litteralis ainsi que celles des services adjacents qui ont aussi Litteralis".

MathieuFV commented 1 week ago

J'appuie la conclusion de Florimond, ce que nous a appris cet entretien c'est qu'il y a une frustration de voir les données Litteralis enfermées, mais sur les cas d'usage c'était plus flou...

Je peux rappeler que nous avions assisté, Stéphane et moi, à une réunion de préparation de chantier à la métropole de Rennes où la métropole, la ville, l'opérateur de transport en commun etc. examinaient des plans de situation des travaux prévus (et des mesures de circulation). Ce genre d'outils par exemple bénéficierait de la possibilité d'utiliser les données DiaLog dans des logiciels de géointelligence. Par exemple je crée une carte avec les règles de circulation permanente dans le quartier ou dans le bassin de mobilité et je dessine là où je vais faire des travaux pour voir où les camions vont passer.

johanricher commented 6 days ago

Cas d'usage QGIS avec OGC API :

https://github.com/opengeospatial/ogcapi-features/blob/master/implementations/clients/qgis.md