RÉALISATION D UN SERVICE WEB RETOURNANT LE NOM D UNE COMMUNE ET SON CODE INSEE À PARTIR D UN POINT LAT/LON EN FRANCE Présenté par : Mohcen BENMOUNAH Texte en blanc Stage effectué à : Tela-Botanica Texte en blanc MASTER II - BIOINFORMATIQUE 1/47 M. BENMOUNAH 6 septembre Réalisation 2011 d un service Web retournant un nom de commun
Tela-Botanica Carnet En Ligne Contexte du stage Présentation Tela-Botanica Tela-Botanica est fondée en 1999. Réseau des botanistes francophones. Ses objectifs : 1 Rassembler tous les botanistes dans leur diversité. 2 Monter des projets collectifs. 3 Collecter des données pour les mettre à disposition des botanistes. 4 Regrouper les initiatives qui concourent au développement de la botanique. 2/47
Tela-Botanica Carnet En Ligne Contexte du stage Présentation Tela-Botanica Elle dispose de : 1 Forums de discussion. 2 Des logiciels performants dédiés à la botanique. 3 Moteurs de recherche. 4 Présentation cartographique des observations botaniques. 3/47
Tela-Botanica Carnet En Ligne Contexte du stage Présentation Tela-Botanica Ses grands projets : 1 L index synonymique de la Flore de France. 2 Une base de données de tous les herbiers de France. 3 Flore d Afrique du Nord et de la Réunion. 4 Un carnet de terrain en ligne pour collecter les données naturalistes. 4/47
Tela-Botanica Carnet En Ligne Contexte du stage Carnet En Ligne Carnet En Ligne (CEL) est : 1 Un carnet de terrain informatique pour collecter les données naturalistes. 2 L équivalent numérique d un carnet de terrain. 3 Permet de saisir des observations botaniques, de les illustrer avec des images, créer des projets et d y associer des plantes. 4 Partage des observations avec le réseau. 5 Module cartographique de géolocalisation des observations botaniques. 5/47
Carnet En ligne Introduction Tela-Botanica Carnet En Ligne Contexte du stage Figure: Présentation du Carnet En Ligne. 6/47
Module cartographique Introduction Tela-Botanica Carnet En Ligne Contexte du stage Figure: Module cartographique. 7/47
Tela-Botanica Carnet En Ligne Contexte du stage Localisation de l observation (Google Map) Figure: Géolocalisation cartographique. 8/47
Tela-Botanica Carnet En Ligne Contexte du stage Problème du Carnet En Ligne Ancienne géolocalisation du Carnet En Ligne imprécise. Appel au service de géolocalisation gratuit GeoNames. Effectue le Reverse Geocoding (renseigner le nom de la commune, à partir d un point X/Y). Le carnet renseigne un nom de commune qui est bien souvent erroné... - Nombre limité d appel au service par jour. - La commune retournée correspond à une autre, située à proximité. - Ne renseigne aucune commune. 9/47
Tela-Botanica Carnet En Ligne Contexte du stage Problème du service de géolocalisation GeoNames Figure: Problème de géolocalisation du Carnet En Ligne. 10/47
Tela-Botanica Carnet En Ligne Contexte du stage Objectifs du stage... Objectifs du stage : Fournir un service Web à cette application comme solution alternative à l API GeoNames. Ce service Web permettra de localiser précisement une observation botanique. Retourner le nom de la commune et son code INSEE en fonction du point (Lat/lon). 11/47
Introduction Contraintes du service Web Contraintes de la base géographique exploitée Projet cartographie libre : OpenStreetMap (OSM) Missions du stage La solution réside dans... Réalisation d un service Web Reverse Geocoding qui renseigne la commune à laquelle appartient un point GPS. L obtention des contours des limites administratives communales en France. 12/47
Introduction Contraintes du service Web Contraintes de la base géographique exploitée Projet cartographie libre : OpenStreetMap (OSM) Missions du stage Contraintes du service Web... Précision de la géolocalisation. Rapidité de la réponse. Disposition locale (BD locale) des données spatiales (contours communaux). Mise à jour régulière des données locales. 13/47
Introduction Contraintes du service Web Contraintes de la base géographique exploitée Projet cartographie libre : OpenStreetMap (OSM) Missions du stage Contraintes de la base géographique exploitée... Disponibilité des contours administratifs de communes de France. Gratuité des données. Courverture importante de la France metropolitaine. 14/47
OpenStreetMap (OSM) Contraintes du service Web Contraintes de la base géographique exploitée Projet cartographie libre : OpenStreetMap (OSM) Missions du stage Projet libre collaboratif destiné à la cartographie. Des milliers d utilisateurs volontaires participent à l élaboration de la carte du monde. Partage des connaissances géographiques pour les mettre librement à la disposition du public. Les cartes sont créées en utilisant (appareils GPS, photographie aérienne, connaissances locales et autres sources gratuites). Le projet est autorisé à exploiter les données cadastrales. Des outils d édition des données sont dédiés à éditer ces données OSM. 15/47
Couverture communale : OpenStreetMap Contraintes du service Web Contraintes de la base géographique exploitée Projet cartographie libre : OpenStreetMap (OSM) Missions du stage Figure: Couverture de plus de 75% des communes françaises. 16/47
Missions du stage Introduction Contraintes du service Web Contraintes de la base géographique exploitée Projet cartographie libre : OpenStreetMap (OSM) Missions du stage Missions du stage... 1 Trouver une solution afin d intégrer les données OSM. 2 Fournir une solution simple afin de mettre à jour les nouvelles données d OSM. 3 d un service Web en PHP permettant de géolocaliser l observation botanique (Nom de la commune, INSEE ). 17/47
Première étape Introduction... Les données sont contenues dans des fichiers XML disponibles en téléchargement. Filtrage des données géographiques afin de récupérer les données des limites administratives. 18/47
Deuxième étape Introduction... Des scripts d analyse de données remplissent la base de données spatiale. 19/47
Troisième étape Introduction de géolocalisation... Une seule table est interrogeable par le service Web. Elle contient le nom de la commune, le code INSEE et le polygone formant la limite administrative de la commune. L algorithme permet de localiser de façon précise à quel polygone (commune) se trouve le point recherché. 20/47
Quatrième étape Introduction locales... Les limites administratives communales OSM évoluent. Des scripts de mise à jour sont developpés. 21/47
Description de la BD OpenStreetMap La base de données OpenStreetMap dispose : 1 Relation. 2 Way (Chemin). 3 Node (noeud). 22/47
Description de la BD OpenStreetMap : Relation Une relation est une : Des chemins refermés sur eux mêmes avec des tags spécifiques. Les relations possèdent un nombre de tags. Pour les relations administratives (<tag k= boundary v= administrative />) Seules les limites adminitratives communales qui nous intéressent (<tag k= admin_level v= 8 />) 23/47 Figure: Représentation de l entité Relation.
24/47 M. BENMOUNAH Réalisation Figure: d un service Représentation Web retournant deun l entité nom deway commun. Introduction Description de la BD OpenStreetMap : Way (Chemin) Un chemin (Way) est un : Interconnexion entre au moins deux noeuds. Possède également des tags spécifiques. Multitude de noeuds formant un chemin.
Description de la BD OpenStreetMap : Node (Noeud) Un noeud (Node) est un : Élément de base du système OSM. Définit un couple latitude/longitude. Un point se trouve dans la surface terrestre. 25/47
Format fichier OSM Introduction Figure: Format du fichier OSM. 26/47
Introduction Une relation posséde plusieurs chemins. Un chemin peut avoir une multitude de noeuds. Figure: Modèle entité-association. 27/47
Diagramme de classe Introduction Figure: Diagramme de classe. 28/47
Table consultable par le service Web Figure: Structure de la table osm_communes consultable par le service Web. 29/47
Filtrage du Fichier OSM OSMOSIS? : Application écrite en langage JAVA. Manipulation des données OpenStreetMap (En ligne de commande). Filtrage du fichier (France.osm) contenant toutes les informations géographiques. Le filtrage s effectue sur les tags des relations vus précédement. Après filtrage (Commande) sur des tags spécifiques : Conserver que les relations correspondant à des communes. Rejetter toutes informations inutiles (chemins, noeuds ). 30/47
Introduction Étapes du remplissage : 1 Analyse du fichier OSM en utilisant la classe PHP :XmlReader. 2 Lire le fichier ligne par ligne. 3 Récupérer pour chaque noeud XML l information nécessaire. 4 Insertion dans les tables correspondantes. 31/47
Introduction Scripts d analyse de données. Algorithme de gestion de l ordre des ways. Définition du polygone de la commune et rajouter l objet polygone à la commune. Définition du point centre du polygone. Gestion des multipolygones. Figure: Structure de la classe ParseurOSM.php. 32/47
Cas spéciaux : multipolygone Figure: Cas enclave exclave de la commune de Langogne et Naussac en Lozère. 33/47
Vérification des paramètres entrés. Identification des 20 communes les plus proches du point recherché (Distance euclédienne). Algorithme de géolocalisation. Figure: Structure du service Web. 34/47
Algorithme : retourner les communes proches Sans cette fonction : La base de données locale contient environ 27000 communes. => Temps de réponse d algorithme de géolocalisation est très lent. D où linterêt de cette fonction : Récupération des 20 communes les plus proches du point X/Y. Distance euclédienne entre le point recherché et le centre du polygone de la commune. L algorithme de géolocalisation s effectue uniquement sur ces communes proches. 35/47
Algorithme de géolocalisation. But de l algorithme... Déterminer si le point est à l intérieur ou non du polygone. Retourner le nom et le code INSEE de la commune correspondante. 36/47
Principe de l algorithme Polygone fermé. Tracer un rayon horizontal du point recherché vers la droite. Compter le nombre nb d intersection entre le rayon et les segments du polygone. - Si nb : paire = le point est à l extérieur de la commune. - Si nb : impaire = le point est à l intérieur de la commune. Figure: Principe de l algorithme de géolocalisation. 37/47
Principe de l algorithme Fonctionne également pour les polygones avec des trous (Multipolygone). Figure: Principe de l algorithme de géolocalisation pour les multipolygones. 38/47
Autres services Web Géographiques... Si le service Web OSM ne retourne aucune commune... de deux services Web Lion1906 (France) et wikipedia (DROM-COM). Base de données contenant le centre du polygone de chaque commune. Retourner uniquement la commune la plus proche du point recherché. Basé sur le même principe de la fonction : trouvercommunesproches(). 39/47
Chaque jour une nouvelle version du fichier France.osm est publiée. Changements opérés sur les données OpenStreetMap (niveau communale). Étapes de la mise à jour : Génération d un fichier de différence entre deux versions du fichier OSM. Nouveaux scripts d analyse des données et de mise à jour de la base de données. 40/47
Génération du fichier de différence À l aide du logiciel OSMOSIS (commande spécifique)... Obtenir un fichier de différence entre deux intervalles de temps (équivalent commande Unix : DIFF). Le fichier possède une nouvelle structure contenant uniquement les changements opérés. 41/47
Format fichier OSM de différence Figure: Format du fichier OSM de différence. 42/47
Scripts d analyse de données de différence Traitement du nouveau format de fichier. Lecture du fichier de différence et l analyse des noeuds XML (create, modify et suppression). Seules les identifiants des entités cités dans le fichier de différence seront modifiés dans la base locale. Figure: Structure de la classe MiseAJour.php. 43/47
Mise à jour régulière (cron) La mise à jour est produite hebdomadairement à l aide d un fichier cron : 1 Téléchargement du nouveau fichier France.osm. 2 Filtrage du fichier OSM. 3 Génération du fichier de différence en comparant le nouveau et l ancien fichier filtré. 4 Analyse des données et remplissage de la base (prise en compte des changements). 44/47
La mission initiale est atteinte... Géolocalisation via le Carnet En Ligne précise. Mise à jour régulière depuis OSM. Base de données disposant de plus de 27000 communes. Version finale livrée début août et mise en ligne. Désormais le Carnet En Ligne fait appel à ce service Web pour localiser les observations botaniques. 45/47
Introduction Coordonnées GPS => Nom commune, CodeINSEE... http://www.tela-botanica.org/service:eflore:osm/0.1/ nom-commune?lon=4.64571&lat=46.20286 Figure: Retour au format json le nom de la commune et son code INSEE. 46/47
Apports du stage Géolocalisation précise et rapide pour les utilisateurs du Carnet En Ligne. Découvrir le fonctionnement d une entreprise. Suivre les étapes d un projet depuis sa phase de conception à sa mise en ligne. Apprendre davantage sur le domaine de la cartographie et de la géographie en France. Perfectionnement en langage PHP et Bash. 47/47