Développement d’outils de validation et correction de topologie Martine Girard 15 décembre 2009.

Slides:



Advertisements
Présentations similaires
Explorer un espace d’états
Advertisements

Material/Sources: Daniel Bardou, Julie Dugdale &
La Recette La recette.
ACubeOLAP Client Olap en ACube.
Département Édition - Intégration SEMINAIRE SOA Migration du canal Esup MonDossierWeb Olivier Ziller / Charlie Dubois Université Nancy 2 16 octobre 2007.
Nouvelle version du canal Esup MonDossierWeb
LOD et Progressive Meshes (maillages progressifs) Hugue Hoppes 1996
Introduction Pour concrétiser l’enseignement assisté par ordinateur
INTRODUCTION.
Phase de préparation des itérations Produit Story 11 Release1 Story 1mStory 21 Release2 Story 2m… …
Conception d’une application de gestion de fiches études
La revue de projet.
Le 8 mars Notre vision du web-to-print. le 8 mars Information pour le système Prisme Technologies Prisme Technologies se spécialise dans.
Ajouts, corrections et modifications de fiches en ligne. Description générale de la fonctionnalité Lorsque des corrections de fiches dans un envoi original.
GED Masters: Gestion Électronique de Documents
Eric Guilbert, Marc Daniel *, Eric Saux
Module 1 : Préparation de l'administration d'un serveur
Démarche de résolution de problèmes
جامعــــــة محمد خيضــــــــــــر بــســكــــــــــــرة
Algorithmique et Programmation
Initiation à la conception de systèmes d'information
Chap 4 Les bases de données et le modèle relationnel
Administration de bases de données spatiales avec SavGIS
Développement d’IHM* et d’applicatifs spécifiques
BERNARDIN Benoît Lycée Louis Pergaud
Développement d’IHM* et d’applicatifs spécifiques
Configuration de Windows Server 2008 Active Directory
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Des outils pour le développement logiciel
Entre construction théorique et mise en œuvre opérationnelle
Méthode des Ensembles de Niveaux par Eléments Finis P1
Module 3 : Création d'un domaine Windows 2000
Module 1 : Installation de Windows 2000 ou mise à niveau vers Windows 2000.
Tolerance Manager Un concept métier
COLLÈGE BOURGET         Titre du laboratoire souligné         Par: Nom 1 Nom 2 Nom 3 20_         Travail présenté à: Mme Bussières Sciences et technologies.
SEMINAIRE DE CONTACT novembre 2008 Outils de gestion de projet.
Module 1 : Installation de Microsoft Windows XP Professionnel
Mise en oeuvre et exploitation
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Vue d'ensemble Préparation de l'installation
Les listes de contrôle d’accès
Requêtes homme-agent sur le fonctionnement Etudiantes: Anne DARME & Céline GIRARD Encadrant: Nicolas SABOURET Rapporteur: Vincent CORRUBLE Responsable:
Introduction au Génie Logiciel
Application de gestion des retards
Tutorat en bio-informatique
Intégration de schémas
BEWITCHED 12/10/2006 Soutenance GLAO #5 slide 1 Soutenance GLAO #5 AGL & SYGIME Bewitched Team 12 Octobre 2006.
DOSSIER G10 – La base de données Relationnelle
Initiation à la conception des systèmes d'informations
Mustapha Hamidou Vendredi 20 août Stage Contour Matching.
LE DATA WAREHOUSE.
Module 3 : Création d'un domaine Windows 2000
ITI Lab # 11 Adapté de versions antérieures créées par: Daniel Amyot et Alan Williams.
AUTOMATISEZ VOS PROCESSUS OCTOPUS Un « Workflow » bien défini 25 mai 2015 DOCUMENT CONFIDENTIEL COPYRIGHT © OCTOPUS ITSM TOUT DROITS RÉSERVÉS.
L’enseignement de l’Analyse Fonctionnelle et Structurelle S 5 en S. T
Développement et maintenance sur le projet RefPack
Visualisation des flots optiques en 3D
Post-optimisation, analyse de sensibilité et paramétrage
Les lieux de vie des oiseaux à la Cité Descartes Projet SIG Groupe : Fanny Pagnier Johan Leclercq Partenaire : Paris-Est Nature.
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
Introduction Module 1.
Vous présente en quelques réalisations un réel savoir-faire, le fruit de longues années d’expériences, aujourd’hui à votre service. Toutes les fonctionnalités.
Sciences Mécaniques Appliquées
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Les formulaires Les calques Les comportements Les scénarios Les modèles Les feuilles de styles (CSS) La mise en ligne Les formulaires permettent à l’utilisateur.
La Charte Informatique
Projet de session Par Eve Grenier Dans le cadre du cours SCG Réalisation d’applications en SIG Jeudi le 20 avril 2006.
PROJET DE SESSION PRÉSENTÉ PAR : Rosemarie McHugh DANS LE CADRE DU COURS : SCG Réalisation d’applications en SIG 16 avril 2007.
PROJET DE SESSION DANS LE CADRE DU COURS: SCG Réalisation d’applications en SIG PRÉSENTÉ PAR: Marie-Andrée Levesque 18 AVRIL 2006.
Formation Ouverte et A Distance Bureau des expertises techniques, des projets d'infrastructures et de la sécurité des systèmes d'information Parcours de.
Transcription de la présentation:

Développement d’outils de validation et correction de topologie Martine Girard 15 décembre 2009

Plan de présentation Introduction Problématique à l’origine du projet Objectifs visés Étapes de réalisation Objectifs spécifiques Description pressentie de l’application Description des algorithmes

Plan de présentation (suite) Modélisation de données Choix technologiques Phase de développement Démonstration Jeux de données test et résultats Conclusion

Introduction - Problématique Les entreprises bénéficiaires de contrats d’approvisionnement et d’aménagement forestier (C.A.A.F.) doivent déposer au MRNF des contours de travaux planifiés et réalisés. Les contours déposés doivent être conformes à une norme qui définit les caractéristiques spatiales et descriptives Reboitech a conçu pour ses clients bénéficiaires de CAAF un portail Internet de suivi des travaux sylvicoles

Introduction – Problématique (suite) Le portail accueille les contours de travaux, déposés par les exécutants des travaux. Il valide les informations descriptives mais pas les informations spatiales. Ces contours sont produits par des entreprises souvent mal outillées pour produire des fichiers qui répondent à la norme. On désire offrir à nos clients de générer les fichiers conformes pour la remise au MRNF à partir des fichiers déposés sur notre portail.

Introduction - Objectifs L’objectif principal visé par ce projet est de détecter et corriger certaines erreurs topologiques afin de générer des fichiers conformes à la norme. La norme concerne des fichiers de points, lignes et polygones. Comme les travaux concernent principalement des polygones, ce projet vise uniquement la correction de polygones. Un des objectifs de départ était de permettre à l’utilisateur d’accepter ou de refuser les corrections.

Étapes de réalisation Étude de la norme et identification des éléments couverts par le projet. Description fonctionnelle de l’application. Définition des algorithmes de détection et de correction des erreurs. Choix technologiques. Modélisation des données nécessaires. Installation et configuration de PostgreSQL/PostGIS

Étapes de réalisation (suite) Développement de l’application. Choix de données de tests. Essais sur les données choisies. Examen des résultats. Identification des correction réussies. Identification des problématiques restantes. Préparation de la présentation

Objectifs spécifiques Les objectifs spécifiques ont été déterminés suite à l’examen de la norme et au choix des éléments à inclure au projet. Adresse de la norme du RAIF ntreprises/NORME_RAIF_version%201.2.pdf ntreprises/NORME_RAIF_version%201.2.pdf Le tableau qui suit présente l’ensemble des exigences du MRNF sur les polygones avec choix pour ce projet.

Objectifs spécifiques (suite) CaractéristiqueDescriptionPriorisation 1- RésolutionLa résolution demandée par le MRNF est le mètre Aucune (Le MRNF fait cette correction) 2- ExactitudeLa géométrie doit refléter exactement la localisation sur le terrain Aucune (on ne peut valider cette information) 3- Dimension minimale d’une entité géométrique Superficie minimale des polygones et des exclusions (trous) de 0,05 hectares À réaliser 4- Distance minimale entre deux sommets Distance minimale de 4 mètres entre deux sommets consécutifs Optionnel 5- Distance maximale entre deux sommets Distance maximale de 1000 mètres entre deux sommets consécutifs Optionnel 6- GénéralisationApplication de l’algorithme de Douglas-Peucker avec tolérance de 0,35 mètre Aucune (Le MRNF fait cette correction)

Objectifs spécifiques (suite) CaractéristiqueDescriptionPriorisation 7- Distance minimale entre les limites d’un polygone Distance minimale de 4 mètres entre deux lignes d’un même polygone À réaliser 8- Polygone en une seule partieUne même entité ne peut être constituée de plus d’un polygone (excluant les trous) À réaliser 9- Polygone sans erreurs de numérisation Il ne doit pas y avoir d’erreurs de numérisation tel que la délimitation d’un polygone qui s’entrecoupe Optionnel 10- Appui sur une couche de référence Cohérence des polygones fournis avec les couches de référence diffusées par le MRNF ou provenant d’un RAIF antérieur Aucune (On ne peut valider sans les couches de référence)

Objectifs spécifiques (suite) CaractéristiqueDescriptionPriorisation 11- Cohérence géométrique globale Deux polygones dont les limites sont distantes ou s’entrecoupent d’un mètre ou moins partagent les mêmes segments. Deux polygones peuvent se superposer uniquement sur une superficie de 0,05 hectare et plus. Optionnel 12 – Cohérence spatiale de contexte Deux polygones qui ont les mêmes valeurs d’attributs ne peuvent être adjacents ou se superposer. À réaliser

Objectifs spécifiques (suite) L’objectif du projet est donc de détecter et de corriger, s’il y a lieu les erreurs identifiées dans le tableau précédent comme à réaliser. Pour celles identifiées comme optionnelles en début de projet, leur réalisation dépendait du temps disponible.

Description pressentie Interface utilisateur comme celle-ci

Description pressentie (suite) Les fichiers d’origine sont en format shapefiles. Donc ouverture de shapefiles et traitement sur ceux-ci. Traitements de détection et correction effectués selon les choix de l’utilisateur. Traitement de tous les polygones pour détection d’erreurs, si erreur, copie du polygone dans nouveau fichier à traiter.

Description pressentie (suite) Quand toutes les erreurs sont détectées, traitement des polygones en erreur et correction de celles-ci. Affichage des polygones corrigés en superposition aux polygones originaux pour acceptation ou refus de la correction.

Définition des algorithmes – Détection des erreurs Dimension minimales d’une entité Calculer superficie polygone Si < 0.05  erreur Calculer superficie exclusion Si < 0.05  erreur Distance minimale entre les limites d’un polygone Créer des lignes à partir des segments Si distance de moins de 4 m d’une autre ligne sauf sa voisine  erreur

Définition des algorithmes – Détection des erreurs (suite) Polygone en une seule partie Si géométrie de type multiPolygon avec plus de 1 polygone  erreur Cohérence spatiale de contexte Si 2 polygones partagent au moins 1 segment et qu’ils ont les mêmes attributs  erreur

Définition des algorithmes – Correction des erreurs Dimension minimale d’une entité Polygone < 0.05 Si agrandir, appliquer un buffer jusqu’à superficie > 0.05 Si supprimer, supprimer le polygone Exclusion < 0.05 Si agrandir, appliquer un buffer jusqu’à superficie > 0.05 Si supprimer, supprimer l’exclusion

Définition des algorithmes – Correction des erreurs (suite) Distance minimale entre les limites d’un polygone Si agrandir, éloigner le segment afin d’obtenir 4 m Si supprimer, rapprocher le segment afin que les 2 polygones partagent le même segment Polygone en une seule partie Défaire le MultiPolygon en x polygones correspondant à ses x membres

Définition des algorithmes – Correction des erreurs (suite) Cohérence spatiale de contexte Unir les 2 polygones en un seul

Modélisation de données Les données d’origine sont en shapefile et ont des attributs prédéfinis et pré-validés. ChampTypeTailleDescription IDInteger4Identifiant unique No_sec_intText15Numéro du secteur d’intervention Pro_noText15Numéro de projet SupFloat6,2Superficie du polygone (ha) TraitText10Code du traitement SecteurText50Nom du secteur EtatText1Indique l’état de traitement (G : mesuré, non traité, C : commencé, T : terminé) Sup_traitFloat6,2Superficie traitée (ha)

Modélisation des données (suite) Attributs pour la table des polygones corrigés ChampTypeTailleDescription IDInt4Identifiant unique ID_oldInt4Identifiant du polygone corrigé SupFloat6,2Superficie du polygone (ha) Sup_oldFloat6,2Superficie avant correction (ha)

Choix technologiques Étant donné les manipulations de données spatiales, le choix de Java avec la librairie JTS s’imposait. Comme la manipulation de fichiers shapefiles n’est pas possible en JTS, j’ai décidé de transférer les données des shapefiles vers une BD PostgreSQL/PostGIS

Développement Intégration des shapefiles de test issus de données réelles dans PostgreSQL Développement de l’interface visuelle selon le modèle présenté Changement à apporter: enlever le choix de fichier d’entrée Ajouter les informations de connection à la BD Enlever le répertoire de sortie

Développement (suite) Application des validations, problématique: la correction d’un item peut apporter une autre erreur. Solution choisie: Prédéterminer un ordre de correction, corriger à mesure Faire toutes les corrections sans permettre le choix

Développement (suite) Autre problématique: On peut vouloir agrandir les polygones seulement s’ils sont plus grands que 0.04 ha. Aussi, on peut vouloir agrandir les polygones mais supprimer les exclusions

Développement (suite) Autre problème rencontré: Si des géométries ne sont pas valides, les fonctions de JTS provoquent des erreurs. Solution: appliquer la fonction simplify de JTS. Cette fonction est l’application de l’algorithme de Douglas-Peucker et retourne une géométrie valide.

Développement (suite) Interface finale Connexion Valeurs par type Paramètres pour choix Douglas-Peucker

Développement (suite) Algorithme retenu Faire une requête dans la BD pour obtenir gid et the_geom Placer le résultat dans une liste d’objet de la classe MonPoly formée de int fid: le gid MultiPolygon mpl : la géométrie String corr: indique le type de correction apportée Double supOld: superficie avant correction Double sup: superficie nouvelle

Développement (suite) Pour toute la liste faire les opérations suivantes: Simplifier selon l’algorithme de Douglass-Peucker avec la tolérance indiquée. Diviser les multi-parts (MultiPolygon avec plus de 1 membre).

Développement (suite) Déceler les distances inter géométries (fonction isWithinDistance) Corriger les distances inter géométries en divisant les 2 polygones par segments et en évaluant la distance entre les segments. Si agrandir, déplacer un segment de 0.5m à la fois. Si supprimer, partager le même segment.

Développement (suite) Déceler les adjacences non permises (fonction intersects et attributs identiques) Corriger les adjacences non permises (fonction union)

Développement (suite) Déceler les superpositions (fonction intersects et attributs différents) Corriger les superpositions (fonction intersects, difference)

Développement (suite) Déceler les distances intra polygone: diviser le polygone en ses points. Vérifier la distance entre tous les points du polygone Corriger distance intra: Trouver les 2 segments qui sont trop près (ils ne doivent pas être voisins). Si supprimer, éliminer le segment 1. Si agrandir, déplacer le segment 1 de 0.5m à la fois

Développement (suite) Déceler les exclusions trop petites: Transformer les trous en polygones et calculer la superficie (fonction getArea) Corriger : Refaire le polygone sans le trou ou agrandir celui-ci avec la fonction buffer de 0.05 m à la fois. Déceler les polygones trop petits avec la fonction getArea Corriger: appliquer la fonction buffer de 0.05 m à la fois ou supprimer le polygone. Insérer la liste de polygones résultante dans la table de polygones corrigés.

Démonstration

Tests et résultats Pour les fins de ce travail, j’ai utilisé de vraies données déposées sur le site. Les fonctions de détection d’erreurs fonctionnent bien. La plupart des erreurs semblent détectées. Problème avec adjacence. Peut être dû à un infime distance entre les polygones.

Tests et résultats (suite) Pour la correction, les suppressions d’exclusion et de polygones fonctionnent. L’explosion de multi-parties fonctionne La correction inter-géométrie avec élimination de l’espace fonctionne mais peut engendrer d’autres erreurs (adjacence et distance intra-géométrie) L’union ne fonctionne pas toujours, on perd des polygones.

Conclusion La détection des erreurs est relativement facile. La correction pose plusieurs problèmes. Une analyse plus approfondie s’impose avant de déployer l’application. Ce développement a permis de cerner les éléments les plus problématiques pour alimenter l’analyse future.

Recommandations Éliminer les segments de moins de 4 mètres. Vérifier auprès du client la conséquence des corrections Commencer par détecter et corriger les erreurs de ce type.