Une mise à jour de l’extension « Pentaho GIS Plugins » sera déposée prochainement sur notre espace Github par les équipes d’Atol CD. Pour rappel, cette extension permet de manipuler « à minima » l’information géographique au sein de l’ETL Pentaho Data Intégration, l’idée n’étant de concurrencer les ETL spatiaux dédiés tels que FME. Disponible à partir de la version 5.x de PDI, ce module ajoute notamment le type de donnée « Geometry » et des briques dédiées à la lecture ou à l’écriture vers les formats SIG usuels. Pour les nouveaux, une présentation globale de l’extension initiale est disponible ici.

# Une version 1.3.0 plus riche en formats de lecture et d’écriture

Lecture des formats DXF et Spatialite améliorée

  • Pour le DXF, récupération sous forme de nœud XML des xData éventuellement présentes dans le fichier. Seules les xData de type texte, entier ou réel sont extraites (codes de groupes 1000, 1040, 1070,1071).

Exemple d’extraction et de traitement des xData contenues dans les fichiers DXF PCI cadastre pour la couche des limites de parcelles cadastrales

  • Pour Spatialite, possibilité de lister toutes les tables contenues dans une base Spatialite pour faciliter la création de boucles sur chaque table. Un attribut « is_spatial » est retourné en plus du nom de la table afin d’indiquer si la la table contient des colonnes de type « Geometry »

Lecture des formats GPX et GeoPackage

  • Fichiers GPX : Lecture des formats GPX 1.0 et 1.1. Les « Waypoint » sont transformées en « Point », les « Track » en « MultiLineString », les « Route » en « LineString ». La valeur d’altitude éventuellement présente pour chaque coordonnées d’entité est traduite traduites en valeur « Z » dans la géométrie. Les valeurs des balises « name » et « description » liées aux entités sont également extraites.

Exemple d’extraction de données d’un parcours GPS (Route)

  • Fichiers GeoPackage : Lecture des tables vectorielles et attributaires (« Features » et « Attributes ») du format Geopackage 1.2. Possibilité de lister le contenu de la table « gpx_contents » pour faciliter la création de boucles sur chaque table.

Prise en compte des xData dans l’écriture de DXF et écriture des formats GPX, Geopackage et SVG

  • DXF : Possibilité de création de xData lors de la génération du fichier DXF. Les colonnes du flux de type  texte, entier ou réel sont automatiquement converties en xData lors de la génération d’un fichier DXF si l’option est retenue.
  • GPX : Ecriture des formats GPX 1.0 et 1.1. Le type de géométrie conditionne l’entité GPX générée. Les géometries de type « Point » sont traduites en « Waypoint », les « MultiLineString » en « Track », les « LineString » en « Route. Les géométrie 3D permettent de renseigner les valeurs d’altitude des coordonnées des entités. Certaines métadonnées peuvent être renseignées pour le fichier (nom, description, auteur) ou pour chaque entité.

  • Geopackage : Génération de fichier GeoPackage 1.2 à partir d’un flux. Si une colonne de type « Geometry » est renseignée, une table vectorielle (Features) est créée, sinon création une table attributaire (Attributes) est générée. De nombreux paramètre permettre de préciser le comportement à adopter (remplacement de fichier, remplacement de table, etc.). Une colonne de type « Integer » doit automatiquement est renseignée pour permettre la génération de la clef primaire. Si cette colonne contient des valeurs nulles, le processus d’auto-incrément est automatiquement mobilisé.

Un fichier Geopackage peut être alimenté lors de plusieurs transformations successives

  • SVG : Génération d’un fichier SVG en précisant les dimensions en px. Possibilité d’associer des attributs (id, title, class, etc.) aux entités SVG, d’associer des styles CSS et de créer de gérer l’ordre d’affichage des objets en créant des groupes. Cette brique pourra notamment faciliter la génération de fichier SVG en vue d’une utilisation par le plugin Pentaho SVG Components

L’export SVG peut mobiliser des styles CSS pour produire un SVG directement exploitable

 

Nouveaux SGBD « spatiaux » supportés

  • Lecture et écriture des géométries depuis ou vers le type « Geometry » de MS SQL Server 2008
  • Lecture et écriture des géométries depuis ou vers le type « Geometry » de MySql

# Un enrichissement des briques « Géotraitements » et « Agrégation de géométries »

  • Cercle englobant minimal : Création du cercle minimal englobant une géométrie
  • Création de surfaces : Création d’un MultiPolygon à partir des éléments linéaires contenus dans une géométrie
  • Découpe : Découpe de géométries avec les modes suivants : surfacique par linéaire, linéaire par linéaire, linéaire par ponctuel
  • Extraction de la dernière coordonnée : Extraction de la dernière coordonnée d’une géométrie pour retourner un Point
  • Extraction de la première coordonnée : Extraction de la première coordonnée d’une géométrie pour retourner un Point
  • Homogénéisation de lignes : Pour une MultiLineString, fusion des entités pour former des LineString de longueur maximale
  • Plus courte ligne : Pour une MultiLineString, retourne la LineString de plus faible longueur
  • Plus petit polygone : Pour un MultiPolygon, retourne le Polygon de plus faible superficie
  • Plus longue ligne : Pour une MultiLineString, retourne la LineString de plus grande longueur
  • Plus grand polygone : Pour un MultiPolygon, retourne le Polygon de plus grande superficie
  • Réduction de précision : Force le nombre de décimales des coordonnées d’une géométrie
  • Référencement linéaire : Retourne un Point situé à une certaine distance le long d’une LineString
  • Simplification (VW) : Simplification de géométrie avec la méthode de Visvalingam-Whyatt
  • Suppression des trous : Pour une géométrie surfacique, suppression des trous de superficie inférieure ou égale à une valeur spécifiée
  • La fonctionnalité « Dissoudre les frontières » permet retourne une « MultiLineString » (Brique d’aggrégation)

Exemple de dissolution de frontière appliquée à la couche « Départements de métropole » issue de IGN Admin Express. Les frontières entre départements sont individualisées en LineString après le géotraitement « décomposition ». Actuellement, le traitement ne permet pas de récupérer les attributs gauche/droite de chaque frontière