Que vous soyez un utilisateur expérimenté ou à vos tout débuts avec FME, il est fort probable que vous ayez déjà utilisé les listes. Il n’est pas nécessaire d’être ceinture noire en FME pour les exploiter à leur plein potentiel, alors voici quelques concepts qui vous aideront à partir du bon pied avec les listes!
1. Qu’est-ce qu’une liste?
Un peu comme les listes en Python, qui sont une collection ordonnée d’items d’un certain type, une liste FME permet aux objets (features) d’avoir de multiples valeurs par attributs, et ce, pour chaque enregistrement. Chaque valeur est conservée dans un index, ou un élément de liste, qui peut être référencée avec sa position dans la liste. Cette image montre l’attribut “myList”, qui contient cinq valeurs, dont les index vont de 0 à 4.
Vous pouvez utiliser autant les valeurs d’attributs en format tabulaire que dans une liste d’un workspace FME, ce qui ajoute de la flexibilité à vos données. Sachez aussi qu’il existe environ 80 transformers dans FME pour construire et utiliser les listes.
2. Où retrouve-t-on les listes?
Il est fréquent d’utiliser des listes dans les situations où il faut joindre des attributs dans une relation de type “un-à-plusieurs”. En effet, enregistrer des valeurs multiples pour un attribut peut être plus efficace que de créer un nouvel enregistrement pour chaque relation. Ceci s’applique aussi bien aux jointures non spatiales (“database joins”) qu’aux jointures spatiales (intersections d’objets ou relations entre objets adjacents).
Le fait de séparer les valeurs d’une chaîne de caractères créera aussi une liste où chaque particule est placée dans un élément de la liste.
Dans des formats web comme XML ou JSON, les données sont souvent conservées dans des listes. Même si le schéma diffère d’un format à l’autre, FME peut regrouper efficacement des éléments dans une liste.
Cette image montre deux objets JSON appartenant à l’index “stations”, avec des données associées :
Une fois les données lues et traitées dans FME, les objets sont maintenant enregistrés dans une liste nommée « array{} ».
Cette liste peut alors être explosée en objets ou en enregistrements individuels avec ses attributs associés (capacity, eightd_has_key_dispenser, lat, lon, etc.), tel que montré ici :
3. Quels sont les avantages des listes?
- Générer une liste pour des relations “un-à-plusieurs” dans une base de données ou des joints spatiaux peut préserver toutes les données jointes.
- Les éléments d’une liste peuvent être convertis facilement en attributs en format tabulaire, vous donnant ainsi la possibilité de conserver un ou plusieurs éléments de la liste dans une table.
- Séparer les valeurs des attributs avec un délimiteur peut aider à entreposer les données de façon plus efficace.
- Conserver les données dans une liste indexée vous évite d’avoir à créer un grand nombre d’attributs en format tabulaire, ce qui peut être lourd.
Soyez vigilant! Tout comme avec les attributs, vous pourriez vous retrouver avec une tonne de données inutiles. Il est facile de se perdre dans les données… Nettoyez donc vos listes au fur et à mesure que vous travaillez!
Pour d’autres articles sur FME et le traitement des données
Vous aimerez aussi :
https://consortech.com/fr/https-www-consortech-com-fr-echappez-aux-pieges-qui-minent-la-qualite-de-donnees-lors-de-migration/