Matcher
Détecte les entités qui correspondent l'une à l'autre. Les entités sont déclarées correspondantes lorsqu'elles ont une géométrie correspondante, des valeurs d'attributs correspondantes, ou les deux. Une liste d'attributs qui doivent différer entre les entités peut également être spécifiée.
Cas d'utilisations typiques
- Détection de changements
- Fusion d'entités (jointure de données) selon la géométrie
Comment fonctionne-t-il ?
Le Matcher peut recevoir un nombre quelconque de flux d'entités en entrée. Toutes les entités sont comparées à toutes les autres, et les correspondances sont identifiées en fonction des paramètres définis.
Les options pour la correspondance incluent la géométrie et/ou les attributs, et vous pouvez aussi définir les attributs devant différer.
Toutes les entités qui trouvent une correspondance sont sorties via le port Matched (c'est-à-dire que si deux entités correspondent l'une à l'autre, elles sont toutes deux sorties ici). Chaque ensemble de correspondances se voit attribuer un nouvel attribut numérique Match ID qui peut être utilisé pour les identifier en tant que groupe de correspondance.
Une copie unique de chaque ensemble d'entités appariées est envoyée au port SingleMatched. Les attributs de ces entités sont fusionnés en une seule entité de sortie. En utilisant ce port, Matcher est capable de faire la fusion de plusieurs entités en utilisant la géométrie comme clé. Ceci complète le port FeatureMerger, qui n'accepte que les attributs, et non les géométries, comme clés.
Les entités qui ne trouvent pas de correspondance ressortent par le port NotMatched.
Exemples
Dans cet exemple, nous avons deux copies d'un jeu de données de zonage. L'une d'entre elles a été mise à jour, avec des modifications apportées à certains attributs de zone. Les polygones n'ont pas d'ID unique qui pourrait être utilisé pour effectuer une comparaison afin de trouver les zones mises à jour, nous devons donc utiliser la correspondance géométrique.
Les jeux de données, l'original et celui mis à jour, sont dirigés dans Matcher.
Appariement de la géométrie est définie sur 2D, et la Stratégie d'appariement des attributs est Apparier les attributs sélectionnés. Nous sélectionnons ZoneCategory comme attribut à comparer. Cela permettra de trouver des polygones dont la géométrie correspond et de vérifier si l'attribut a été modifié ou non.
Une copie des polygones qui ont correspondu ressort par le port de sortie SingleMatched. Ce sont les enregistrements qui n'ont pas été modifiés, indiqués ci-dessous en bleu.
Les enregistrements qui ont été modifiés ne rencontreront pas de correspondance - bien que la géométrie soit la même, l'attribut que nous avons spécifié ne l'est pas. Ces entités sont sorties via le port NotMatched, représenté ici en rouge.
Notes
- ChangeDetector fournit une approche alternative (mais moins général) qui peut être plus pratique pour certaines applications.
- Lors de la recherche de correspondances basées uniquement sur les attributs, considérez utiliser FeatureJoiner ouFeatureMerger pour de meilleures performances.
- Les points orientés sont supportés. Toutefois, la perte de précision engendrée par la conversion entre représentations d'orientation causera souvent l'identification, par ChangeDetector et Matcher, de points orientés en tant que Updated/NotMatched à moins que Comparaison indulgente de la géométrie soit activée.
Choisir une méthode de jointure d'entités
De nombreux Transformers peuvent effectuer des jointures de données sur la base d'attributs, d'expressions et/ou de géométries correspondants. Lorsque vous en choisissez un pour une tâche de jointure spécifique, vous devez prendre en compte la complexité de la jointure, le format des données, l'indexation, la gestion des conflits et les résultats souhaités. Certains Transformers utilisent la syntaxe SQL, d'autres accèdent directement aux bases de données externes. Ils peuvent ou non prendre en charge la lecture et la création d'attributs de liste.
En général, le choix de la méthode la plus spécifique à la tâche à accomplir permet d'obtenir des résultats optimaux en termes de performances. S'il existe plus d'une façon de procéder (ce qui est souvent le cas), il peut être utile de consacrer du temps à tester les performances des autres méthodes. Les performances peuvent varier considérablement selon l'existence d'index clés lors de la lecture de tables externes (par opposition aux entités déjà présentes dans le traitement).
Transformer |
Correspondance selon |
Utilisation de requêtes SQL |
Création de liste |
Type en entrée |
A noter |
Description |
---|---|---|---|---|---|---|
FeatureJoiner | Attributs | Non | Non | Entités |
|
Joint les entités en combinant les attributs et/ou géométries d'entités en fonction de valeurs d'un attribut clé. Effectue l'équivalent des jointures SQL Inner, Left et Full. |
FeatureMerger | Attributs | Non | Oui | Entités |
|
Fusionne les attributs et/ou géométries d'un jeu d'entités en un autre jeu d'entités en fonction de la correspondance de valeurs clés d'attributs et d'expressions. |
ListBasedFeatureMerger | Attribut de liste vers attribut seul | Non | Oui | Entités |
|
Fusionne les attributs et/ou géométries d'un jeu d'entités en un autre jeu d'entités en fonction de la correspondance de valeurs d'un attribut de liste avec des valeurs de clés d'attributs et d'expressions. |
InlineQuerier | Requête SQL | Oui | Non | Entités |
|
Crée un ensemble de tables de base de données SQLite pour les entités en entrée, exécute des requêtes SQL sur elles et génère les résultats en tant qu'entités. |
SQLCreator | Requête SQL | Oui | Non | Base de données externe |
|
Génère des entités FME à partir des résultats d'une requête SQL exécutée une fois dans une base de données. Une entité FME est créée pour chaque ligne des résultats de la requête SQL. |
SQLExecutor | Requête SQL | Oui | Non | Base de données externe |
|
Exécute des requêtes SQL contre une base de données. Une requête est envoyée à la base de données pour chaque entité qui entre dans le Transformer. Les entités initiales et les résultats de la requête peuvent être édités en tant qu'entités. |
DatabaseJoiner | Attributs | Non | Oui | Base de données externe et entités |
|
Joint les attributs d'une table externe aux entités déjà présentes dans un traitement, sur la base d'une ou plusieurs clés communes. Des connaissances en SQL ne sont pas requises. Transformer non bloquant. |
Matcher | Géométrie et/ou attributs | Non | Oui | Entités |
|
Détecte les entités qui correspondent l'une à l'autre. Les entités sont déclarées correspondantes lorsqu'elles ont une géométrie correspondante, des valeurs d'attributs correspondantes, ou les deux. Une liste d'attributs qui doivent différer entre les entités peut également être spécifiée. Si la correspondance se fait uniquement sur des attributs (pas de géométries), utiliser FeatureMerger ou une autre méthode donnera de meilleures performances. |
Configuration
Ports d'entrée
Les entités à comparer. Toutes les entités sont comparées à toutes les autres entités.
Ports de sortie
Toutes les entités correspondant à une autre ressortent par le portMatched.
Une copie unique de chaque ensemble d'entités appariées est envoyée au port SingleMatched. Les attributs de ces entités seront fusionnés sur l'entité de sortie unique.
Toute les entités sans correspondance ressortent par le port NotMatched (sans correspondance).
Paramètres
Stratégie d'appariement des attributs |
Ce paramètre contrôle quels attributs de l'entité en entrée doivent avoir les mêmes valeurs pour être considérés comme correspondants.
|
Attributs sélectionnés |
Applicable quand Stratégie d'appariement des attributs vaut Apparier les attributs sélectionnés ou Apparier tout sauf les attributs sélectionnés et spécifie quels sont les attributs à apparier ou à exclure de la correspondance (selon la stratégie d'appariement choisie). |
Attributs devant différer |
Définit les attributs des entités en entrée qui doivent avoir une valeur différente avant que l'appariement ne soit déclarée.Les valeurs de tous les attributs correspondant à l'expression régulière sont concaténées et appariées pour déterminer la correspondance. |
Différencier les attributs vides, manquants et nuls. |
Non : Les attributs vides, manquants ou nulls sont traités comme équivalents. Oui : Les attributs vides, manquants ou nulls sont traités comme des paires différentes. |
Contrôler les types et encodages d'attributs |
Non : les attributs avec différents types et encodages sont considérés comme correspondance si leur valeur et la même. Oui : Les attributs doivent avoir le même type, le même encodage et la même valeur pour être considérés comme correspondance. |
Appariement de la géométrie |
Contrôle si la géométrie 2D ou 3D (ou aucune) doit être la même avant qu'une correspondance ne soit déclarée. FULL s'assure que la 3D, les mesures et les géométries de traits correspondent tous. Lors de la comparaison de géométries raster :
Lors de la comparaison de géométries surfaciques et solides : 2D se comporte de la même manière que 3D, c'est-à-dire que les valeurs Z sont aussi comparées. Lors de la comparaison de géométries nuages de points :
|
Différencier les traits vides, manquants et nuls. |
Non : Les traits (et noms) vides, manquants ou nulls sont traités comme équivalents. Oui : Les traits (et noms) vides, manquants ou nulls sont traités comme des paires différentes. |
Comparaison indulgente de la géométrie |
Si Oui, alors l'ordre des points dans les entités linéaires et ponctuelles sera ignoré. Notez que les zones peuvent avoir des emplacements de sommet de début/fin différents et correspondre quand même si toutes les coordonnées se situent dans la distance de tolérance vecteur (en unités terrain). Pour que les lignes correspondent, cependant, y compris les lignes fermées, elles doivent avoir des sommets de début et de fin correspondants, dans les limites de la tolérance. Les différences de composition entre les chemins, les lignes et les autres courbes seront ignorées. L'ordre des éléments dans les collections, et l'ordre des trous dans les polygones troués seront ignorés. Lors de la comparaison de rasters, seules les étendues sont comparées. |
Vérifier le système de coordonnées |
Non : Les systèmes de coordonnées sont ignorés. Oui : Le nom des systèmes de coordonnées doivent être identiques pour les deux entités. |
Tolérance vectorielle |
La tolérance vectorielle permet à deux géométries de présenter des variations spatiales tout en étant considérées comme concordantes. Elle s'applique uniquement aux géométries vectorielles (points, courbes, surfaces). Fournissez une valeur en unités terrestres. C'est similaire à une distance de Fréchet : Vous avez une laisse de chien de longueur "tolérance vectorielle". Vous allez marcher le long de la limite d'une des géométries, votre chien va marcher le long de la limite de l'autre. Si vous pouvez tous deux terminer votre promenade sans lâcher la laisse, les deux géométries sont dans la tolérance. Ce Transformer a une contrainte supplémentaire pour les courbes : vous et votre chien devez commencer à une extrémité de la courbe et finir à l'autre. |
Note: Pour les surfaces et les solides, la Tolérance vectorielle" est ignorée et est supposée être à 0.0.
Correspondance ID |
Un ID est ajouté à chaque entité ayant une correspondante de sorte qu'il est possible de construire des relations entre elles si besoin. |
Attribut Nombre d'entités sur SingleMatched |
Si fourni, un attribut sera ajouté à chaque entité sortant par le port SingleMatched contenant le nombre d'entités entrantes. |
Quand activé, un attribut de liste est ajouté pour chaque entité SingleMatched, composé d'attributs provnenant de toutes les entités.
Note: Les attributs de liste ne sont pas accessibles à partir du schéma de sortie dans FME Workbench, sauf s'ils sont d'abord traités à l'aide d'un Transformer qui opère sur eux, comme ListExploder ou ListConcatenator. Il est également possible d'utiliser AttributeExposer.
Liste des dédoublonnés |
Entrer un nom de liste. |
Ajouter à la liste |
Tous les attributs : tous les attributs seront ajoutés aux entités en sortie. Attributs sélectionnés : Active le paramètre Attributs sélectionnés, où des attributs spécifiques peuvent être choisis pour inclusion. |
Attributs sélectionnés |
Activé lorsque l'option Ajouter à la liste est définie sur Attributs sélectionnés. Indiquez les attributs que vous souhaitez inclure. |
É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.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au traitement peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
Références
Comportement |
|
Stockage des entités |
Oui |
Dépendances | Aucun |
Alias | |
Historique |
|
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.
Les exemples peuvent contenir des informations sous licence Open Government - Vancouver et/ou Open Government - Canada.