FME
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.
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.
- AttributeExposer
- AttributeKeeper
- AttributeRemover
- BANGeocoder
- CommonValueNullReplacer
- FeatureMerger
- GeometryExtractor
- GeometryReplacer
- NeighborFinder
- SpatialFilter
- Tester
- WorkspaceRunner
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.