Lors des formations FME Form et FME Flow que je dispense je parle souvent du fait que FME est un outil extrêmement souple qui permet de répondre très souvent à toutes les problématiques data. Avec la période des jeux olympiques de Paris 2024, j’ai eu l’idée de faire sous FME la création des anneaux olympiques à partir d’un point saisi sur Terre.

Créer les anneaux olympiques à partir d'un point sur l'ETL spatial FME Form 2024

A priori, rien de très compliqué sur FME Form 2024 mais voyons comment j’ai procédé de mon côté. Comme souvent, il y a forcément plusieurs façon de procéder à vous de me dire comment vous l’auriez développé !

Étape 1 : Récupérer un point sur Terre

Sur FME Form, il n’y a pas d’outil permettant de saisir une géométrie si ce n’est en demandant des coordonnées. Sur FME Flow, le paramètre Geometry ouvre par contre une carte permettant la saisie de point, de ligne, de polygone ou de rectangle englobant. Sur FME Form j’ai donc créer un paramètre de type Geometry et saisi un point au format GeoJSON.

Paramètre publié FME Form de type Geometry pour passer une géométrie sur FME Flow

Étape 2 : Récupération du point et transformation vers une géométrie FME

Suite à cela, je récupère le Geojson stocké dans le paramètre publié pour créer un point avec le Transformer GeometryReplacer et en profite ensuite pour faire une Reprojection du code EPSG:4326 (WGS84) vers le Lambert93 (EPSG:2154).

GeometryReplacer et Reprojector, deux Transformer FME Form

Étape 3 : Création des anneaux olympiques

Les anneaux sont au nombre de 5, pour rappel, ces derniers ont une signification, ils représentent les 5 continents enlacés par l’olympisme !

De ce fait, je passe d’un point qui est le centre de mon projet à 5 points. Pour cela, je vais utiliser le Transformer Cloner qui me permet de multiplier les objets. Une fois ces points multipliés, et pour créer les cercles, une zone tampon est créée via le Transformer Bufferer. 150 mètres me semble suffisant. Le problème est que un rond ne fait pas un anneau et pour ce faire, un second buffer de 125 m est créé afin de venir découper celui de 150 m par celui de 125m. Pour découper des données vectorielles ou images (raster), nous avons Clipper dans FME. Nous voilà avec un 5 anneaux superposés !

script FME pour créer des cercles avec deux zones tampons (Bufferer) coupés ensemble avec le Transformer Clipper
création d'anneaux olympiques avec FME Form

Il reste à déplacer les cercles pour qu’ils s’enlacent et à les coloriser. Pour cela, les Transformer Offsetter et FeatureColorSetter sont tout indiqué ! Pour pouvoir gérer les différents déplacements et couleurs, un AttributeFilter utilise l’attribut « _copynum » du Cloner pour envoyer chaque objet se faire modifier indépendamment.

Translation spatiale avec le Transformer Offsetter dans FME

Le résultat est à la fois sympa et montre toute la souplesse de l’outil. Toutes les fonctions sont disponibles sur FME Form et si vous souhaitez progressez n’hésitez pas à me solliciter pour que je puisse vous partager ma passion de #FME.

Script FME Form 2024 permettant de générer les anneaux olympiques by SITDI-France

Utilisation sur FME Flow

J’ai décidé de publier ce traitement sur FME Flow pour proposer ce service à mes collègues ou à l’externe. Cela s’effectue simplement depuis FME Form. Je décide de publier via le service Data Streaming car j’ai demandé de générer un HTML avec le Transformer HTMLReportGenerator

L’interface FME Flow me propose une carte pour situer mon point

Situer une zone d'intérêt ou un point sur une carte FME Flow

Le traitement se lance et m’affiche le fichier html généré

Fichier html avec une carte et les anneaux olympiques

Le Transformer HTMLReportGenerator ne permet pas de conserver la couleur fournie par FME, il faudrait peut être créer sa propre carte image avec le Transformer MapnikRasterizer ou l’écrire dans un format supportant la gestion de la couleur.

Pour les intéressés, le projet FME 2024.1 est disponible par ici

Vous avez des questions sur FME, pour une formation, l’achat d’une licence ou pour une prestation ? Contactez moi via contact@sitdi-france.fr

Loïc Guénin Randelli #FMEaddict