Bonjour,

Pour vous faire une démonstration de quelques unes des formidables capacités de l’ETL spatial FME, j’ai imaginé un petit exercice à partir de deux jeux de données disponibles en OpenData. D’un côté, les données OpenStreetMap que tout le monde commence à connaître et dont je suis un contributeur. J’ai récupéré les données de Paris sur ce site proposant une extraction en .shape. Notez que j’ai également écris un tutoriel sur la contribution via JOSM, si cela vous intéresse de participer à la cause. Sur ces données, j’ai utilisé les routes et les bâtiments. De l’autre, les stations vélib à Paris où l’on peut retirer ces vélos en libre service permettant une amélioration de la multi-modalité. Pour le rendu cartographique final, le fond de plan Stamen issu des données OSM a été utilisé.

I] Énoncé de l’exercice.

A partir de ces deux lots de données, il faut trouver puis extraire et créer des fichiers pour les bâtiments et les routes coupées 150 m autour d’une station vélib. En effet, nous partons du constat qu’un utilisateur ne voudra pas faire plus que 300 mètres à pied pour prendre un vélib (distance non étudiée mais qui me paraît probable). Cette distance pourra être modifiée avant le lancement du processus via un paramètre publié.

II] Réalisation du script

FME est capable de lire et d’écrire de nombreux formats. Pour faire simple, j’ai récupéré les fichiers en format .shp (shape) mais nous aurions pu utiliser un format .geojson par exemple pour les stations de vélib. Un glissé déposé des 3 fichiers shape et tout s’ajoute naturellement. Étant donné que depuis 2000, le RGF93 est la norme, je passe les données qui sont dans la projection wgs84 dans le transformer Reprojector que je configure avec une transformation EPSG:2154 (RGF93). Ensuite, pour accélérer le processus global, j’ai décidé de créer une BoundingBox (bbox) de l’ensemble des points des stations vélib. Pour ce faire, le transformer BoundingBoxAccumulator est idéal. Ceci me permet ensuite d’utiliser Clipper afin de découper les bâtiments et les routes par rapport aux Buffer des stations. Je me suis permis d’appliquer buffer de 2 m sur les routes et de 150 m sur les point de stations via le transformer Bufferer. Les bâtiments et les routes viennent alors se confronter à notre buffer des stations via un Clipper afin de savoir ce qui est vraiment dans les fameux 150 mètres de la station vélib. Le Clipper possède deux port Outside et Inside. Le port Inside nous intéresse pour savoir ce qui est dedans mais le Outside peut être également pertinent dans l’idée par exemple d’ajouter de nouvelles stations.

N.B : Pour cet exercice, j’ai décidé de couper les objets mais nous aurions pu également utiliser deux autres transformers très intéressants chez FME que sont SpatialRelator et SpatialFilter pour respecter les géométries initiales pour récupérer par exemple les tronçons et les bâtiments intersectés. Ces deux transformers permettent d’effectuer des requêtes spatiales sur les fameuses conditions (Contains, Intersects, Equals…).

III] Le script ETL FME complet

Comme vous pouvez le voir, je me suis également permis de calculer les distances des routes coupées par nos buffer via un LengthCalculator. Cette mesure est alors passée dans un StatisticCalculator afin d’en ressortir la mesure globale en mètre. En mètre car nous sommes, rappelez vous, dans une projection RGF93. Pour passer cette mesure en kilomètre dynamiquement, il nous suffit d’ajouter un ExpressionEvaluator et de diviser la somme générée par le StatisticCalculator/1000.

La moulinette est prête à être lancée et c’est en 11 minutes que le calcul et l’écriture des fichiers s’opèrent sur une bonne workstation. L’exercice demandait de passer en paramètre la distance du Bufferer afin si besoin de refaire le calcul sur un plus petit ou plus gros buffer. Pour ce faire, il suffit d’aller dans les paramètres du transformer et de créer un nouveau paramètre publié via la flèche liée au champ de la distance. On donne alors un nom explicite au paramètre.

Publication d’un paramètre personnalisé

Paramètre que l’on retrouvera au lancement du workbench si le bouton spécifique est coché (?>)

Nous retrouvons notre paramètre en bas. Paramètre que l’on peut modifier à souhait avant l’exécution du processus FME.

IV] résultats

Pour les routes, on se retrouve donc avec 11464 km de routes coupées par les buffer des stations contre 27452 km non coupées soit une proportion de 41 %. Je trouve que ce score est plutôt très bon !

Aperçu du résultat avec les Buffer des stations en vert

Pour les bâtiments le score est un peu moins bon car il y a seulement 104 532 bâtiments ou morceaux de bâtiments coupés par nos buffers quand 1 789 616 ne le sont pas soit une proportion de 5 %. Ce score plus petit ne met pas forcément en évidence que peu de bâtiments sont touchées mais peut être qu’ils sont plus gros en hyper-centre de Paris, là où sont concentrés les stations vélib (d’où le nombre plus faible). La surface du bâtiment aurait peut être été plus parlante en utilisant un AreaCalculator. Le résultat aurait été ensuite passé dans un StatisticCalculator pour avoir la surface totale.

Les routes et les bâtiments dans les Buffer des stations vélib

Les routes et les bâtiments exclus des Buffer

La liste de ces bâtiments reste un indicateur intéressant si par exemple, on cherche un logement proche d’une station de vélib mais ce qui aurait été très intéressant c’est d’avoir le nombre d’habitants par bâtiments pour savoir le potentiel de personnes touchées par ce service et là, nous mettons un pas dans le géomarketing. La mise en ligne d’un Sig-Web permettant d’avoir accès à ces informations serait sûrement utile aux particuliers mais aussi à des professionnels comme les agents immobiliers.

v] Log FME

Nous avons fait un petit tour des capacités de l’ETL FME sur cet exercice, qui je l’espère, a été intéressant pour vous. Si vous avez des questions sur le processus en lui même ou sur des processus que vous aimeriez mettre en œuvre, n’hésitez pas à me contacter ! Au besoin, je peux également mettre à disposition les fichiers en sortie.

A bientôt, Loïc Guénin Randelli, spécialiste ETL FME, reporting et bases de données spatiales. www.sitdi-france.fr