Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parPatrice Carton Modifié depuis plus de 9 années
1
Cadre et développement logiciel en géomatique
Fonctionnalités d’entrées/sorties de données géospatiales dans l’outil ETL GeoKettle Projet présenté par Jean Mathieu aux professeurs Thierry Badard et Frédéric Hubert
2
ETL ETL (Extract, Transform and Load)
Extrait les données de différentes sources Transforme ces donneés pour en corriger les erreurs, les conformer à des normes ou restructurer leur contenu pour respecter un schéma voulu Charge les données dans l’entrepôt de données Gère à la fois l’insertion et la mise à jour de données
3
GeoKettle Intégration de données issues de différentes sources
Version spatiale de Pentaho data integration (Kettle) Objects géométriques basés sur JTS topology suite Librairie GeoTools (fonctionnalités d’entrées/sorties) Open source
4
Fonctionnalités Geokettle
Bases de données: PostGIS (Lecture/Écriture) Oracle Spatial (Lecture/Écriture) MySQL Spatial (Lecture/Écriture) Fichiers: ShapeFile (ESRI) (Lecture)
5
Mandat Géography Markup Language (GML) (Lecture) MapInfo (Lecture)
WFS (Lecture) ShapeFile (Écriture) Tâches optionnelles: TIGER (Lecture) ArcSDE (Lecture)
6
Choix technologiques GeoTools (version 2.5.1):
Shapefile - an ESRI shapefile (R/W) GML - Geography Markup Language (R) WFS - Features from an OGC Web Feature Server (RW) ArcSDE - ESRI's middleware for spatial databases (R) Tiger - Topologically Integrated Geographic Encoding and Referencing developed at the US Census Bureau (R) MapInfo - MIF (Mapinfo Interchange Format) (RW) (work in progress)
7
Choix technologiques GeoKettle (version 3.1.0) Language : Java JTS
Eclipse : open source
8
Méthodologie Analyser le fonctionnement de GeoKettle
Cibler les classes et endroits ou auront lieu les changements. Explorer les options offertes par Geotools
9
Fonctionnement de GeoKettle
Classes ciblées GISFileInputDialog : Boite de dialogue GeotoolsReader : Fonctions de lecture GISFileInput : processus principal
10
Fonctionnement de GeoKettle
Classe GISFileInputDialog SWT Récupère le nom de fichier, son extension et autres paramètres
11
Fonctionnement de GeoKettle
Classe GeoToolsReader Fonctions d’ouverture/fermeture des fichiers Récupération des lignes et champs
12
Fonctionnement de GeoKettle
Classe GISFileInput - Processus principal (« RUN ») - Appel des fonctions du lecteur - Instanciation de l’entrepôt de données
13
MapInfo (Lecture) Abandonné Géotools ne supporte pas ce format
public class MIFDataStore extends AbstractDataStore Module: modules/unsupported/mif (gt-mif.jar) (Maven report) (SVN head)
14
Solutions Librairie OGR(GDAL C++) et java binding?
(should be considered unsupported, no bindings maintainer) Utiliser les librairies d’applications acceptant ce format comme OpenJump et se servir de ces logiciels pour tester son utilisation.
15
GML (Lecture) À faire Ajouter dans la classe GeotoolsReader une fonction détectant le format du fichier d’entrée pour ensuite choisir le bon DataStore
16
GML Encodage de l’URL Problèmes nombreux reliés au schéma
Tentatives avec plusieurs fichiers différents Très(trop) stricte quand à la forme du fichier VS le nombre de formes possibles de ce format Problèmes critiques SAXException durant le «parsing» Processus jamais arrêté…
17
Solutions OpenJump et UDIG supportent ce format…mais semblent également être capricieux après quelques essais. Librairie GeoRSS comporte des fonctions pouvant lire ce format. Revoir les besoins en ce qui concerne le format GML
18
ShapeFile (Écriture) À faire: Cheminement inverse
Création des mêmes classes que pour le mode lecture. Reconvertir les données du format de GeoKettle vers celui de GeoTools Construire le shéma de données Introduire les données dans le «Datastore» Écrire les données
19
ShapeFile (Écriture) Conversion du type de données
- Détecter la classe d’objet de l’entrepôt - Trouver la classe Geotools correspondante - Traduire la classe
20
Difficultés Chemin inverse partiel seulement Méthode en lecture:
1 - Datastore 2 - Feature Source (attributs) 3 - Feature Collection (Ensemble des données) 4 - Features (Données individuelles) 5 - Insertion dans l’entrepôt
21
Difficultés Impossible d’instancier certains éléments sans le shéma
Solution: Javadoc Données dans l’entrepôt Création des types de données Création de la « Factory » Création du DataStore Création du shéma de données Création du « Writer » Écriture dans le DataStore
22
Difficultés Renvoit une exception si le fichier n’existe pas Solution:
Tester la création d’un nouveau fichier et l’ajouter à la liste d’objets de fichiers.
23
Géométries Types de géométries très spécifiques dans un ShapeFile
Null Shape Point PolyLine Polygon MultiPoint MultiPatch
24
Géométries GeoKettle comporte le type «Geometry»
Peut comporter plusieurs types de géométrie Donc, Le type géométrique du premier objet est celui choisi, si les données ne sont pas toutes du même type, une erreur est lancée.
25
Tests Tests effectués sur tous les format de géométries possible dans un shapefile (Succès) Tests chronomètrés (environs lignes / secondes)
26
Démonstration
27
696 secondes plus tard…
28
Démonstration
29
À faire Liste de choix de géométries pour l’utilisateur…
Demander pour réécrire un fichier existant… Champs dans le visualisateur non adaptés à l’écriture…
30
À faire Les opérations sur les systèmes de référence sont maintenant disponibles…inclure ces informations au ShapeFile. Chronomètre met beaucoup de temps à s’arreter Optimisation du code
31
Suggestions Possibilité d’ajouter des éléments à un Shapefile déjà existant Décomposeur de géométries
32
Bilan général Lecture de GML : non atteint
Beaucoup plus problématique que dans les prévisions Problèmes de shéma GeoRss OpenJump et udig Lecture de MapInfo : non atteint Non supporté OpenJump Lecture de WFS : non atteint Manque de temps Écriture de ShapeFile : opérationnel
33
Apprentissages Faire des prétests durant l’étude de faisabilité
Fonctionnement interne d’un outil ETL Mise en commun des apprentissages faits en cours et la réalité. Bâtir un projet sur une application existante
34
Remerciments Très grand merci à Étienne Dubé
Thierry Badard, Frédéric Hubert Merci au debugger qui dépasse maintenant le chien comme meilleur ami de l’homme Merci à la coupe longueil de Denis Lapierre qui a été pour moi une source de motivation
35
Questions?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.