SchemaMapper

Convertit le schéma existant (modèle de données) des entités vers une nouvelle structure, basée sur des mappages (correspondances) définis dans une table de correspondance externe.

Cette technique est très utile quand les mappages sont potentiellement complexes ou quand ils doivent être gérés par une personne pour laquelle le fonctionnement de FME n'est pas familier. L'utilisation d'une table de consultation externe pour définir ces mappages simplifie l'exécution de ces tâches.

La table de correspondance du schéma, utilisée par le Transormer SchemaMapper, définit des séries de conditions qui doivent être rencontrées (filtres), et des séries d'actions qui doivent être exécutées quand les conditions sont remplies.

La table de correspondance peut être de différents formats comme : un fichier texte simple ou à séparateur décimal ; une feuille de calcul (Excel) ; ou une base de données comme Oracle, PostGRES, Informix, SQL Server, etc.

Si une entité entrante correspond à l'une des règles de la table, les actions possibles du Transformer sur cette entité sont listées ci-dessous :

Correspondances des types d'entités :

Les types d'entités - tels que définis par fme_feature_type - sont convertis de leur valeur existante en une valeur qui définit le nouveau type d'entité. Par exemple :

Routes → Lignes

Mappage des attributs :

Un ou plusieurs attributs de l'entité sont mis en correspondance en renommant leur(s) nom(s) d'attribut existant(s) en un nouveau nom. Par exemple :

Name_of_Road → RoadName

Définir de nouveaux attributs

Un nouvel attribut, dont le nom et la valeur sont définis dans la table de correspondance, est créé.

Ports de sortie

Les entités sur lesquelles une action est exécutée sont émises via le port Mapped. Dans le cas contraire, elles sont émises via le port Unmapped.

En plus du type d'entités, la géométrie de chaque entité n'est pas modifiée.

Les entités produites par le port Mapped recevront un nouvel attribut qui spécifie les lignes de la table de mappage de schéma qui ont été appliquées à l'entité. Les lignes sont spécifiées sous forme de chaîne séparée par des virgules (par exemple, "3,4,5"). Cet attribut est spécifié par le paramètre Attribut de ligne sélectionné et ne peut être modifié qu'à partir du volet Navigateur. Si vous définissez ce paramètre sur une valeur vide, l'attribut ne pourra pas être ajouté aux entités.

Utilisations de SchemaMapper

Vous pouvez utiliser SchemaMapper pour :

Mappage de domaine : où les valeurs des attributs peuvent être remappées en fonction d'un domaine bien défini ou d'une table de consultation. Par exemple :

  • Primary Route → Autoroute
  • Route secondaire -> Nationales
  • Primary Route → Départementales

Les conversions dynamiques : les traitements sont créés pour supporter n'importe quel modèle de données.

Le mappage automatique de schéma : les connexions manuelles entre les schémas source et destination sont établies automatiquement à l'aide d'une table de correspondance externe.

Note  Note : une table de mappage de schéma (ex. : domaineSchema.csv) est souvent issue d'un document de base de données de métadonnées comme un "XML database schema description" d'Esri, qui peut être exporté d'ArcCatalog pour toute géodatabase sélectionnée (Exporter > Document XML > Schéma seulement).

Exemple d'utilisation du Transformer SchemaMapper

L'exemple suivant décrit un scénario typique

Correspondance (mappage) de types d'entités

En utilisant une table de correspondance externe (fichier .csv), vous pouvez mapper des types d'entités pour simplifier un schéma en appariant l'ancien type d'entités vers un nouveau type d'entités :

Ancien type d'entités Nouveau type d'entités
River Water
Lake Water
Canal Water
Road Transportation
Railway Transportation
Airport Transportation

Mappage des attributs

En utilisant une table de correspondance externe, vous pouvez mapper des attributs avec de nouveaux noms :

Ancien Attribut Nouvel attribut
River_Name WaterName
River_Alt_Name AltWaterName
River_Country WaterCountry
River_Length WaterSize
River_Owner WaterOwner

Filtres

Vous pouvez utiliser des filtres pour définir vos règles de mappage. Par exemple, si vous voulez faire correspondre un "ancien type de tuyau" à un "nouveau type de tuyau", vous pouvez définir la règle (filtre) en fonction de la taille des tuyaux :

Ancien type de tuyau Attribut taille de tuyau Taille du tuyau Nouveau type de tuyau
Gas PipeSize 6 GasSmall
Gas PipeSize 12 GasMedium
Gas PipeSize 24 GasLarge
Water Diameter 6 WaterSmall
Water Diameter 12 EauMedium
Water Diameter 24 WaterLarge
Sewage PipeDiam 6 SewageSmall
Sewage PipeDiam 12 SewageMedium
Sewage PipeDiam 24 SewageLarge

Gestion de valeur d'attribut vide ou null

Lors de la création d'un filtre, le paramètre Valeur d'attribut vide détermine comment les valeurs d'attributs vides ou nulls sont gérées.

Ignorer

Les valeurs d'attributs vides ou nulls sont ignorées et ne se voient pas assignées de nouvelles valeurs par le filtre.

Ne pas ignorer.

Les valeurs d'attribut vides ou nulles seront traitées comme toute autre valeur d'attribut. Elles peuvent être référencées dans les valeurs source ou destination comme une chaîne vide ("").

Expressions

Les expressions sont prises en charge dans les actions Filtrer les entités (FilterValue) et Définir de nouveaux attributs (TargetValue).

Ceux-ci sont définis dans la table de recherche externe et sont identifiés par le préfixe de mot-clé fmeexpression=.

Filtre

Cet exemple de table de recherche filtrera les entités en fonction de la valeur de l'attribut attr. Si :

  • inférieur ou égal à 15, ou

  • supérieur ou égal à 450

l'entité est considérée comme mappée et est transmise à l'action suivante (ou sort par le port Mapped, s'il n'y a pas d'autres actions).

Ajouter des attributs

En utilisant le même exemple de table de recherche, si l'action est Définir de nouveaux attributs, les entités recevront deux nouveaux attributs - attr_scaled10 et attr_scaled100 , tous deux avec des valeurs calculées par des expressions.

Note  Le AttributeManager et divers Transformers de filtrage remplissent des fonctions similaires, sans table de recherche externe.

Exemple d'utilisation du mappage du type d'entités et du filtrage

Vous pouvez utiliser l'assistant SchemaMapper pour définir les filtres et le type de mappage dont vous avez besoin. Vous accomplissez cette tâche en créant des actions à exécuter sur le schéma source.

Pour ouvrir l'assistant SchemaMapper, cliquez sur le bouton Propriétés du Transformer. La boîte de dialogue SchemaMapper Parameters s'ouvre.

  1. Spécifiez le format et l'emplacement de la table de correspondance des schémas (table de recherche) à utiliser. Vous souhaiterez peut-être modifier les paramètres de format, mais vous pouvez utiliser les valeurs par défaut fournies par FME Workbench. Cliquez sur Suivant.
  2. Si un jeu de données comporte plus d'une table, indiquez la table à utiliser. Cliquez sur Suivant.
  3. Dans le volet Créer des actions, cliquez sur Ajouter et sélectionnez le type d'action. Pour cet exemple, nous allons sélectionner le type d'entité Carte.
  1. Sélectionnez les champs de type d'entité source et destination. Vous pouvez afficher/masquer les colonnes du tableau et actualiser le contenu.
  1. Cliquer sur OK pour revenir à la page "Création des actions", qui devrait maintenant montrer l'action "Mappage du type d'entité" que vous venez juste de définir.
Note  Pour transformer votre schéma source en un nouveau schéma, vous pouvez créer plus d'une action en fonction des règles de correspondance que vous souhaitez appliquer au schéma existant.
  1. Pour ajouter une autre action, sélectionnez dans le menu déroulant Ajouter. Dans cet exemple, nous allons sélectionner Filtre pour afficher la boîte de dialogue Créer un filtre :
  1. Sélectionnez les colonnes de la table dans les champs Nom et Valeur de l'attribut. Par défaut, les valeurs d'attribut vides sont ignorées mais vous pouvez choisir de les inclure.
  2. Cliquez sur OK pour revenir à la boîte de dialogue Créer des actions. La colonne Action affiche maintenant deux actions : Types d'entités cartographiques et entités de filtrage
  1. Cliquer sur "Finir" pour définir les paramètres de SchemaMapper.

Plus d'informations

Éditer les paramètres des Transformers

À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments de traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.

Définir les valeurs

Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres de traitement. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.

Options - Tables

Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.

FME Community

FME Community est l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.

Voir tous les résultats à propos de ce Transformer sur FME Community.