Index de l'article

FME (Feature Manipulation Engine) est un logiciel ETL distribué par la société Safe Software. Il est pourvu de nombreuses composantes spatiales (on dit parfois ETL spatial) et est déjà bien répandu dans le monde de la géomatique.

fme transformation

FME est sous licence propriétaire, mais il est possible d'obtenir une licence d'évaluation sur leur site officiel.

Nous allons ici prendre en main les fonctionnalités les plus basiques du logiciel.

Les images de cet article sont cliquables (affichage plein écran) et proposent parfois des informations contextuelles supplémentaires.

Si vous n'êtes pas encore familiarisé avec les ETL, vous pouvez consuter cet autre article, dont l'introduction évoque les ETL et entrepôts de données en général.

 


À l'ouverture, FME vous propose, entre autres, de créer un nouveau Workspace, obtempérez, puis observez les différents panneaux du logiciel.

Diviser un shape en plusieurs KML

Télécharger le fichier zippé des IRIS en pièce jointe de cet article, dézippez-le puis importez-le dans FME via un Reader.

Les Readers, équivalents des Connecteurs sur d'autres ETL, sont accessibles depuis la barre d'outil principale du logiciel.

fme1

Le 1er champ d'un Reader vous demande de choisir un nom de format. Nous cherchons ici un format Shape. Explorez la liste déroulante et constatez qu'un grand nombre de formats sont disponibles. Vous pouvez également tapper les 1ères lettres ou un mot-clé.

fme 2b

Le 2nd champ vous propose, sur sa droite, un explorateur vous permettant d'aller chercher votre fichier source dans votre ordinateur. Sélectionnez votre shape des 50 000 IRIS français.

À ce stade nous pouvons laisser les autres paramètres par défaut. Observez qu'FME nous propose de considérer un système de projection pour notre fichier source, par défaut tel qu'il le trouvera dans le fichier source. Cliquez sur OK. FME commence la translation.

fme 3b

Le logiciel vous renvoie quelques logs et votre entité iris apparaît dans le panneau principal.

Ajoutez maintenant un Writer (juste à côté des Readers), et choisissez le format KML.

Le 2nd champ du Writer vous invite à mentionner un répertoire d'emplacement pour votre KML (il n'est pas encore question de diviser votre shape en plusieurs KML à ce stade), tapez également un nom pour celui-ci. Nom fictif qui en réalité ne sera pas utilisé par la suite, seul l'emplacement compte, le répertoire.

Joignez votre entité source à votre nouvelle entité de sortie KML (en drag-and-drop, avec la souris), puis intéressez-vous au panneau nommé Navigator.

fme 4b

Il vous propose quelques options en fonction de vos types de fichiers. Ouvez l'option Fanout dataset.

Vous y avez la possibilité d'éclater votre entité source en plusieurs fichiers de sortie. Et vous pouvez y mentionner un champ. Ce sera alors l'équivalent d'une requête de regroupement sur les valeurs de ce champ.

fme 5b

Choisissez votre champs contenant les noms de communes puis OK.

Vous pouvez d'ores-et-déjà lancer la tâche (Run translation, dans la barre d'outil principale). FME va commencer à créer les 30 000 fichiers des IRIS communaux (Pensez à stopper la tâche et vérifiez l'un de vos KML en l'ouvrant dans Google Earth).

fme 6b

Bravo ! Vous êtes en train de générer vos KML. Quand vous êtes satisfait de la démonstration, stoppez la translation, inutile d'attendre la ponte des 30 000 fichiers KML en sortie.

Dans le panneau principal, quand une de vos entité est sélectionnée, elle fait apparaître quelques icônes contextuelles juste au-dessus d'elle, dont l'option Inspect sur la droite.

Testez cette option Inspect sur votre fichier de sortie KML. En effet maintenant que vous avez lancé (puis stoppé...) la tâche, votre entité doit pointer sur des KML maintenant présents sur votre machine.

Ouvez l'un de vos KML via la fenêtre contextuelle de l'option Inspect de votre entité KML.

fme 7b

FME data inspector vous permet de visualiser des données géographiques, et de les interroger.


Transformer une vue SQL en shape

Téléchargez le fichier society_coords.sql et importez-le dans une base MySQL. Explorez sa forme et contenu sous Notepad afin de déterminer la meilleure méthode d'import.

Ce fichier SQL contient une table de sociétés géolocalisées au format Google :

(lat,long):zoom

Créez une vue SQL permettant d'afficher cette table dans 2 champs de coordonnées classiques (x et y, astuce ici : Segmenter des points géographiques au format Google). Nous l'appelons ici view_society_coords.

FME peut pointer directement sur une base MySQL (et donc potentiellement sur une application web) pour convertir des données en shape par exemple.

Commencez par créez un Reader sur un format MySQL classique (non-spatial).

  fme9

Créez une nouvelle connexion si nécesaire (option Add database connexion).

  fme10

Il vous reste encore à sélectionner la ou les tables à utiliser, dans les Paramètres.

fme11

 Inutile à ce stade de préciser le système de projection. Confirmez pour faire apparaître votre entité d'entrée.

Créez maintenant un Writer en shape. Précisez le système de projection en EPSG: 4326, (faîtes une recherche via l'option More coord systems de liste déroulante si nécessaire) ainsi que la définition manuelle.

Précisez également l'emplacement de votre futur shape en choisissant un répertoire dans le champ Dataset.

fme12Après confirmation et juste avant lla création de votre entité shape dans FME, une nouvelle fenêtre apparaît. C'est le bon moment pour choisir quel type de shape on souhaite en sortie. Ici nous projetterons des points, choisissez donc l'option shape_multipoint.

fme13

Votre entité shape apparaît à côté de votre entité MySQL.

Nous allons maintenant faire appel à l'un des nombreux composants de transformation (translation) du logiciel. Remarquez que quand vous êtes dans le panneau principal (Main), en cliquant dans le blanc puis en entrant quelques lettres au clavier, cela fait apparaître une fenêtre d'exploration des composants FME.

Cherchez le composant nommé VertexCreator.

fme14

Double-cliquez dessus pour l'appeler dans le panneau principal.

fme15

Joignez votre entité d'entrée au composant VrtextCreator, puis le composant à votre entité de sortie.

fme16

Rentrez dans les paramètres du VertexCreator (double-clic). C'est le moment d'attribuer les champs de coordonnées à utiliser pour projeter les géographies.

fme17

Lancez la tâche. Si la translation s'exécute correctement, vous pourrez alors afficher votre shape depuis FME via l'option DataInspector de votre entité shape.

fme18


Cumuler des fichiers textes 

Téléchargez le fichier test_separate_files et dézippez-le.

Il contient une trentaine de fichiers .txt standadisés en 2 colonnes séparées par un ; : un 1er champ que nous pouvons décrire comme étant la source des enregistrements, et un 2nd contenant des emails (ici des emails falsifiés).

Quand vous avez un certain nombre de fichiers de structures identiques, FME peut les fusionner rapidement, dans un fichier Excel par exemple.

Ajouter un Reader (dans la barre d'outils).

fme1

Mentionnez le format CSV et sélectionnez tous vos fichiers (champ Dataset).

fme2

Précisez le delimiter (dans les paramètres) ainsi que l'absence de nom de champ. Précisez également l'affichage des entités regroupées sur leur nom de fichier, afin d'avoir f'afficher chaque entités séparément dans l'interface FME.

fme3

Confirmez les prochaines boîtes de dialogue (OK) afin d'afficher vos entités. fme4

Sélectionnez toutes vos entités puis clic-droit dessus.

Choisissez alors l'option Connect junction.

fme5

Ajoutez maintenant un Writer au format Excel. Précisez bien une définition manuelle.

fme6

Choisissez un répertoire de destination, ainsi qu'un nom pour votre fichier, et confirmez.

Liez ensuite manuellement vos entités CSV à votre entité de sortie (drag-and-drop).

fme7

Double-cliquez sur votre entité Excel pour rentrer dans ses paramètres. Créez et assignez les champs aux champs des entités CSV.
fme8

 

Vous n'avez plus qu'à exécuter la translation, et à récupérer votre joli fichier Excel. 

Liens ou pièces jointes
Accéder à cette adresse URL (https://hg-map.fr/extern/data/shapes/france/iris.zip)iris.zip[Les IRIS de l’INSEE, en shape polygones]0 Ko
Télécharger ce fichier (my_separate_files.zip)my_separate_files.zip[Fichiers txt d'emails falsifiés]156 Ko
Accéder à cette adresse URL (https://hg-map.fr/attachments/article/39/society_coords.sql)society_coords.sql[Fichier SQL d'entités points géolocalisées]0 Ko