AreaOnAreaOverlayer
Effectue une superposition polygone/polygone (intersection de polygones) afin que toutes les entités surfaciques en entrée soient croisées les unes avec les autres pour produire en sortie des polygones. Les polygones résultants peuvent accumuler les attributs des polygones ayant servi à leur construction.
Cas d'utilisation courants
- Déconstruire les polygones se superposant pour produire des intersections et différences.
- Comparer plusieurs jeux de données pour les superpositions de surfaces.
- Effectue des calculs de superficie basés sur les données de surfaces superposées.
Comment fonctionne-t-il ?
AreaOnAreaOverlayer prend en compte les entités surfaciques. Tous les polygones sont considérés les uns par rapport aux autres, et lorsqu'ils se chevauchent, de nouveaux polygones sont créés qui représentent à la fois la zone de chevauchement et les zones originales avec le chevauchement supprimé.
Les nouveaux polygones peuvent conserver les attributs de toutes les entités pertinentes d'origine (en effectuant une jointure spatiale), ainsi qu'un compte du nombre de chevauchements rencontrés pendant la superposition. Ce compte commence à 1 pour toutes les entités, car elles sont considérées comme se chevauchant elles-mêmes.
Les agrégats peuvent être soit désagrégés avant le traitement ou rejetés.
Exemples
Dans cet exemple, les polygones de la zone côtière sont superposés à un jeu de données parcellaires, peut-être pour identifier les endroits où les parcelles peuvent être soumises à des restrictions en raison de la proximité de la côte. Les données originales ressemblent à ceci :
Dans ce segment de traitement, les entités entrantes - trois polygones représentant différents aléas reculs de la côte et la parcelle - sont orientés vers le port d'entrée Area.
Dans la fenêtre des paramètres,les sélections suivantes ont été opérées :
- Gestion des agrégats : désagréger pour s'assurer que toutes les surfaces seront traitées.
- Traitement des attributs : le mode Traitement des attributs est réglé sur Fusionner les attributs entrants.
Au fur et à mesure que la superposition est traitée, de nouvelles entités de zone sont créées, avec les attributs fusionnés de leurs entités sources. Certaines parcelles sont divisées si elles coupent partiellement un polygone de zone, et des zones représentant l'espace entre les parcelles qui se trouve à l'intérieur d'un polygone de zone sont également créées (dans cet exemple, elles représentent généralement les routes et les allées).
Puisque nous nous intéressons aux parcelles elles-mêmes, nous avons ajouté un TestFilter pour filtrer les polygones de parcelles par zone et supprimer les entités non parcellaires.
En créant les conditions de test qui vérifient l'existence de l'attribut ParcelA_ID, les surfaces non parcellaires ressortent via le port <Unfiltered> et supprimées.
Les résultats, vus avec FME Data Inspector, avec un code couleur par Zone.
Notes
Choisir un Transformer spatial
De nombreux Transformers peuvent évaluer les relations spatiales et effectuer des jointures spatiales - en analysant la topologie, en fusionnant les attributs et parfois en modifiant la géométrie. En général, le choix de celui qui est le plus spécifique à la tâche que vous devez accomplir fournira les résultats de performance optimaux. 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.
Pour analyser correctement les relations spatiales, toutes les entités doivent être dans le même système de coordonnées. Reprojector peut être utile pour reprojeter des entités dans le traitement.
Transformer |
Peut fusionner des attributs |
Altère la géométrie |
Compte le nombre d'entités liées |
Créé des listes |
Types supportés* |
Recommandé pour |
---|---|---|---|---|---|---|
SpatialFilter | Oui | Non | Non | Non |
|
|
SpatialRelator | Oui | Non | Oui | Oui |
|
|
AreaOnAreaOverlayer | Oui | Oui | Oui | Oui |
|
|
LineOnAreaOverlayer | Oui | Oui | Oui | Oui |
|
|
LineOnLineOverlayer | Oui | Oui | Oui | Oui |
|
|
PointOnAreaOverlayer | Oui | Non | Oui | Oui |
|
|
PointOnLineOverlayer | Oui | Oui | Oui | Oui |
|
|
PointOnPointOverlayer | Oui | Non | Oui | Oui |
|
|
Intersector | Oui | Oui | Oui | Oui |
|
|
Clipper | Oui | Oui | Non | Non |
|
|
NeighborFinder | Oui | Dans certains cas | Non | Oui |
|
|
TopologyBuilder | Oui | Oui | Non | Oui |
|
|
* Notez que les courbes (Curve) comprennent les lignes, les arcs et les chemins. Les surfaces (Area) comprennent les polygones, les polygones troués et les ellipses.
L'analyse spatiale peut nécessiter un traitement intensif, en particulier lorsqu'un grand nombre d'entités sont concernées. Si vous souhaitez améliorer les performances de votre traitement, voici un bon point de départ.
Quand il y a plusieurs façons de configurer un traitement pour atteindre le même but, il est souvent mieux de choisir le Transformer le plus adapté à votre tâche.
Si les performances sont un problème dans votre traitement, recherchez des méthodes alternatives, guidées par la géométrie.
Configuration
Ports d'entrée
Ce Transformer accepte en entrée des entités de surface. Les entités de surface ne doivent pas être auto-intersectées.
Astuce : Si les entités en entrée s'auto-intersectent, utiliser les règles d'auto-intersection 2D de GeometryValidator pour les supprimer.
Ports de sortie
Les entités surfaciques issues d'intersections ressortent par ce port.
Géométries et attributs qui ne font pas partie de la sortie superposée. Si l'entité restante a une géométrie, cette géométrie n'a pas été utilisée dans une zone de sortie. Si l'entité restante n'a pas de géométrie, cette entité contient des attributs qui n'ont été utilisés dans aucune zone de sortie.
Les entités avec des géométries invalides sont rejetées et ressortent par ce port.
Les entités rejetées ont un attribut fme_rejection_code avec l'une des valeurs suivantes :
INVALID_POLYGON_GEOMETRY_TYPE
INVALID_POLYGON_GEOMETRY_VERTICES
INVALID_POLYGON_GEOMETRY_DEGENERATE
Gestion des entités rejetées : ce paramètre permet d'interrompre la traduction ou de la poursuivre lorsqu'elle rencontre une entité rejetée. Ce paramètre est disponible à la fois comme option par défaut de FME et comme paramètre de traitement.
Paramètres
Regrouper par |
Le comportement par défaut consiste à utiliser l'ensemble des entités comme groupe. Cette option vous permet de sélectionner les attributs qui définissent les groupes à former. |
||||
Traitement des regroupements |
Sélectionnez le moment du traitement où les groupes sont traités :
Considérations sur l'utilisation de Regrouper par
Il y a deux raisons typiques d'utiliser Quand le groupe change (avancé). La première concerne les données entrantes qui sont destinées à être traitées en groupes (et qui sont déjà classées ainsi). Dans ce cas, c'est la structure qui dicte l'utilisation de Regrouper par - et non des considérations de performance. La seconde raison possible est le potentiel gain de performances. Les gains de performance sont plus visibles quand les données sont déjà triées (ou lues en utilisant une déclaration SQL ORDER BY) puisque moins de travail est requis de la part de FME. Si les données doivent être ordonnées, elles peuvent être triées dans le traitement (bien que la surcharge de traitement supplémentaire puisse annuler tout gain). Le tri devient plus difficile en fonction du nombre de flux de données. Il peut être quasiment impossible de trier des flux de données multiples dans l'ordre correct, car toutes les entités correspondant à une valeur Regrouper par doivent arriver avant toute entité (de tout type d'entité ou jeu de données) appartenant au groupe suivant. Dans ce cas, l'utilisation de Regrouper par avec Lorsque toutes les entités sont reçues peut être une approche équivalente et plus simple. Note: De multiples types d'entités et entités de multiples jeux de données ne vont généralement pas arriver dans l'ordre correct. Comme pour beaucoup de scénarios, tester différentes approches dans votre traitement avec vos données est le seul moyen sûr d'identifier le gain de performance. |
Tolérance |
La distance minimale entre les géométries en 2D avant qu'elles ne soient considérées comme égales, en unités terrestres. Si la tolérance est Automatique, une tolérance sera automatiquement calculée en fonction de l'emplacement des géométries d'entrée. En outre, une tolérance personnalisée peut être utilisée. | ||||||||||||||||||
Méthode de connexion du Z |
Si applicable, sélectionner une méthode pour la gestion des valeurs z. Méthode de connexion du Z
En le visualisant en 2D (en ignorant le Z), un chemin (qui peut définir le bord d'un polygone) peut apparaître fermé tel que montré ci-dessous. Ce même chemin, vu en 3D, peut apparaître ouvert comme le montre la figure de droite ci-dessous.
Pour spécifier la façon (et si) dont le chemin doit être fermé en 3D, sélectionner une des méthodes suivantes.
|
||||||||||||||||||
Gestion des agrégats |
Choisir comment les agrégats de géométries doivent être gérés. Désagréger : Décompose les agrégats en leurs composants individuels. Avec ce paramètre, le Transformer peut produire plus d'entités que celles qui ont été données en entrée. Rejeter : ne pas traiter les agrégats et les sortir via le port <Rejected>. |
Traitement des attributs |
Spécifie comment les attributs source doivent être traités. Supprimer les attributs en entrée : tous les attributs en entrée sont supprimés des entités Regrouper les attributs en entrée : fusionne tous les attributs de surfaces se superposant Utiliser les attributs d'une entité : prend tous les attributs d'une entité représentative |
||||||
Génération de liste |
Lorsqu'il est activé, ajoute un attribut de liste aux entités de sortie, en conservant les valeurs d'attribut pour les correspondances de superposition multiples. Cela permet une inspection ultérieure des attributs de zone de recouvrement.
|
Nombre de superpositions |
Nommer l'attribut qui contiendra le nombre d'entités que l'entité résultante recouvre, qui sera d'au moins un. |
É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 | |
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.