FME

De Wiki de Geonov
Révision datée du 18 janvier 2021 à 11:27 par Mathieu Ambrosy (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

FME (Feature Manipulation Engine) est un ensemble d'outils d'ETL spatial flexibles et puissants, utilisé par des milliers de professionnels des SIG partout dans le monde pour convertir, transformer et intégrer rapidement des données.

FME RGB.png

Ce logiciel est conçu par la société canadienne Safe Software.

1 Licence

FME est activé par une licence fixe (fichier .lic) spécifique à la machine installée ou par un jeton de licence flottante.

1.1 Licence fixe

1.2 Licence flottante

FME utilise le logiciel FlexLM pour gérer ses licences flottantes.

2 Formats pris en charge

La force de FME est sa capacité à lire et à écrire de très nombreux formats de données.

Pour afficher la liste des formats supportés par FME, consultez cette page de Safe Software.

Aucune page ne correspond à ces critères.

3 Transformers

Les "transformers" sont les outils permettant d'effectuer une action sur les données.



4 Langages externes

Lorsque vous n'arrivez pas à réaliser un traitement à l'aide des nombreux "transformers" de FME, un peu de codage Python ou TCL peut s'avérer salutaire.

4.1 Langage Python

4.1.1 Installer un module

Pour installer un module python dans FME, copiez son répertoire dans le sous-répertoire "python" de FME, par exemple "C:\Program Files (x86)\FME\python" et l'appelez dans le code Python avec :

import nom_du_module

Pour installer un module python dans FME Server, copiez son répertoire dans "<FMEServerDir>\Server\fme\python" et l'appelez dans le code Python avec :

import nom_du_module

4.2 Langage TCL

5 SQL

FME permet d'effectuer des requêtes SQL au sein de certains "transformers" ou dans des scripts de début ou de fin de traitement.

Si plusieurs requêtes doivent être effectuées, il faut d'abord écrire cette ligne pour indiquer que le caractère ";" sera le séparateur des différentes requêtes :

FME_SQL_DELIMITER ;

6 Fichiers temporaires

Dès que FME traite un fichier, il le convertit dans son format interne (.FFS) et le stocke sur le disque dur dans un répertoire temporaire, par défaut "C:\Users\[Utilisateur]\AppData\Local\Temp".

Pour que FME écrive ses fichiers temporaires dans un autre répertoire, créez une variable d'environnement "FME_TEMP" avec le répertoire souhaité comme valeur, par exemple :

FME_TEMP = D:\FME\Temp

7 Mémoire allouée

Par défaut FME utilise 50% maximum de la mémoire vive.

Pour modifier cette valeur, ajoutez dans l'entête du projet FME le mot-clé "FME_ENGINE_MEMORY_REDLINE" comme ceci :

FME_ENGINE_MEMORY_REDLINE 0.8

Dans cet exemple, 0.8 indique 80% d'utilisation de la mémoire.

8 Problèmes fréquents

8.1 Problème de géométrie après une jointure

Lorsque vous faites une jointure spatiale ou attributaire (avec SpatialFilter ou FeatureMerger par exemple), FME récupère les attributs de format des entités appelées y compris ceux spécifiques à leur géométrie.

Par exemple si vous faites une jointure avec un fichier SHP contenant des arcs, FME récupérera l'attribut de format "SHAPE_GEOMETRY" dont la valeur vaudra "arc".

Ce sera problématique si vous générez du SHP en sortie car même si vous aviez initialement des polygones, FME lira l'attribut "SHAPE_GEOMETRY" qui lui indiquera qu'il faut faire un SHP contenant des arcs et vos polygones seront rejetés.

Donc quand vous effectuez une jointure vers un format identique à celui que vous générez, vous vous exposez à ce problème assez alambiqué mais tout à fait normal dans le fonctionnement de FME.

La solution est d'exposer l'attribut problématique après la jointure (car pour ne rien arranger, ces attributs sont cachés par défaut) à l'aide de AttributeExposer, dans notre exemple "SHAPE_GEOMETRY", puis de le supprimer définitivement avec un AttributeRemover.