AreaAmalgamator
Généralise un polygone en prenant en compte les géométries voisines.
AreaAmalgamator accepte en entrée des géométries polygonales - y compris des polygones troués - et produit des triangles qui relient les entités d'entrée en pièces connectées, ou amalgames. Les petits trous sont supprimés à la fin de ce processus.
Le processus de généralisation s'articule selon les étapes suivantes :
- Redirection des entités d'entrée de type non-polygonal par le port de sortie Invalid.
- Dissolution des polygones pour supprimer les frontières communes et les superpositions.
- Densification des polygones dissous.
- Détermination de l'enveloppe convexe du polygone densifié.
- Superposition de l'enveloppe convexe par rapport au polygone densifié pour calculer les superficies vides entre les polygones.
- Triangulation de régions vides. Ne conserve que les triangles dont la longueur est suffisamment courte - ceux qui satisfont au paramètre Longueur maximale des triangles.
- Dissolution des triangles pour former des connexions.
- Pour chaque connecteur, vérifie s'il est valide. Il est valide s'il partage une bordure avec une géométrie polygonale dissoute.
- Routage de toutes les entités qui ne touchent aucun connecteur vers le port Untouched.
- Dissolution des connecteurs valides avec les polygones dissous pour former un amalgame.
- Pour chaque amalgame, supprimez les petits trous qui ne satisfont pas au paramètre Surface trouée minimale. Les (grands) trous restants sont sortis sur le port Holes.
- Pour chaque amalgame, trouvez tous les triangles qui font partie de ses connecteurs. Sortir ces triangles sur le port Triangles.
- Orientation de tous les amalgames vers le port Amalgamated.
- Pour le comportement des attributs, reportez-vous à la partie sur les paramètres "Nom de la liste" et "Attribut ID".
Ports d'entrée
Géométries polygonales, y compris les polygones troués. Les géométries polygonales peuvent se superposer et partager des bordures. Toutefois, chaque géométrie doit être valide (c'est-à-dire qu'elle ne doit pas s'auto-intersecter ou être non plane).
Ports de sortie
Amalgames calculés à partir des polygones d'entrée.
Polygones en entrée qui ne touchent pas des triangles valides.
Trous dans les amalgames dont la superficie est supérieure au paramètre "Surface trouée minimale".
Triangles qui forment un connecteur valide.
Entrée non polygonale. Occasionnellement, si une condition inattendue est rencontrée, certains résultats intermédiaires invalides seront affichés sur ce port.
Entrée | Output |
---|---|
Triangles (rouge) |
|
Amalgamated (vert) |
|
Holes (noir) |
Paramètres
Traitement par groupe
En spécifiant un ou plusieurs attributs Regrouper par, les entités polygonales d'entrée seront divisées en groupes et le processus d'amalgamation sera exécuté séparément sur chaque groupe. Dans chaque groupe, toutes les entités auront les mêmes valeurs pour les attributs Regrouper par sélectionnés.
Si aucun attribut Regrouper par n'est sélectionné, un seul groupe sera formé contenant toutes les entités polygonales d'entrée. Par défaut, aucun attribut de groupe par n'est sélectionné.
Lorsque toutes les entités sont reçues : comportement par défaut. Le traitement n'aura lieu qu'une fois que toutes les entités en entrée seront présente.
Quand le groupe change (avancé) : ce Transformer traitera les groupes en entrée dans l'ordre. Les changements de la valeur du paramètre Regrouper par sur le flux d'entrée déclencheront le traitement du groupe en cours de regroupement. Cela peut améliorer la vitesse globale (en particulier avec plusieurs groupes de taille égale), mais peut provoquer un comportement indésirable si les groupes en entrée ne sont pas ordonnés.
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 projet avec vos données est le seul moyen sûr d'identifier le gain de performance.
Général
Ce paramètre contrôle le mode d'amalgame. AreaAmalgamator est conceptuellement un opérateur binaire qui fait en sorte que deux détails géométriques proches soient connectés ensemble. Cependant, deux détails géométriques peuvent se trouver sur la même géométrie. Imaginez deux péninsules qui dépassent de la même ligne de côte, ou deux géométries différentes, comme deux îles voisines. Par conséquent, un certain nombre d'options sont fournies ici pour s'adapter aux deux modèles conceptuels :
- Auto-amalgamation : Ce mode amalgame une géométrie polygonale contre elle-même. Il gère le cas des deux péninsules, mais pas celui des deux îles voisines.
- Amalgame binaire (par défaut) : Ce mode amalgame différentes géométries polygonales. Il permet de traiter le cas de deux îles voisines, mais pas celui de deux péninsules.
- Auto-amalgamation et amalgamation binaire: Ce mode combine l'auto-amalgamation et l'amalgamation binaire. Il permet de traiter à la fois le cas des deux péninsules et celui des deux îles voisines.
Entrée | Output: Amalgamated |
---|---|
Auto-amalgamation |
|
Amalgamation binaire |
|
Auto-amalgamation et amalgamation binaire |
Ce paramètre contrôle si les entités polygonales d'entrée sont dissoutes à l'avant. La valeur par défaut est Oui.
- Oui : Cette valeur dissout les entités polygonales d'entrée. AreaAmalgamator a été conçu en partant du principe que les entités d'entrée ne se chevauchent pas. Cette valeur renforce cette hypothèse. Le fait de dissoudre l'entrée en amont permet également de remédier aux entités polygonales d'entrée qui peuvent ne pas se chevaucher, mais dont les limites partagées se chevauchent après l'étape de densification en raison d'une précision limitée. La superposition due à la précision limitée pourrait réduire les performances de l'AreaAmalgamator.
- Non : Cette valeur est destinée aux utilisateurs avancés qui souhaitent un contrôle plus fin de l'AreaAmalgamator. Certains utilisateurs préfèrent ne pas dissoudre l'entrée pour améliorer les performances, car dans certains cas, la non-dissolution de l'entrée n'entraîne pas d'effets secondaires indésirables.
Dissolution des inclusions |
Dissoudre les données en entrée : Oui Mode Amalgamation : binaire |
Dissoudre les données en entrée : Non Mode Amalgamation : binaire |
---|---|---|
Explication |
Les entités en entrée sont dissoutes dans un polygone, le mode binaire provoque le non-amalgame d'un polygone. |
Les entrées ne sont pas dissoutes, le mode binaire fait que les deux entités en entrée sont amalgamées mais à cause de la superposition des entités non dissoutes, un trou résulte au milieu de l'amalgame. |
Dissolution des inclusions |
Dissoudre les données en entrée : Oui Mode d'amalgamation : Auto-amalgamation |
Dissoudre les données en entrée : Non Mode d'amalgamation : Auto-amalgamation |
---|---|---|
Explication |
Les entités en entrée sont dissoutes dans un polygone, le mode auto-amalgamation provoque l'amalgame d'un polygone. |
L'entrée n'est pas dissoute, le mode auto-amalgamation n'amalgame pas les deux entités. |
Ce paramètre contrôle la largeur des triangles qui forment les connecteurs. La largeur du triangle est la largeur de sa base, qui est incidente sur la limite d'une géométrie polygonale d'entrée (voir figure ci-dessous). Plus sa valeur est grande, plus les triangles seront larges.
En termes de nombre de triangles, la diminution de cette valeur augmente généralement (et ne diminue pas) le nombre de triangles générés. En termes de performances, une valeur trop faible peut entraîner des ralentissements importants. Pour ce qui est de l'apparence des connecteurs triangulaires, une valeur trop élevée peut donner lieu à des connecteurs grossiers dont la forme semble déformée.
Astuce : définissez une valeur pour ce paramètre la plus haute possible tant que l'amalgame généré reste agréable à l'œil.
Plus rigoureusement, après la dissolution des géométries polygonales en entrée, des sommets supplémentaires sont ajoutés par un processus de densification. L'intervalle de densification contrôle la largeur des triangles créés. Ce paramètre spécifie la longueur de l'intervalle de densification.
Ce paramètre contrôle la longueur des triangles qui forment les connecteurs. La longueur du triangle est définie par la longueur de son côté le plus long (voir la figure ci-dessous). Cette valeur ne doit pas être inférieure à la largeur maximale du triangle. Plus sa valeur est grande, plus deux polygones d'entrée peuvent être éloignés l'un de l'autre tout en étant reliés par des triangles dans la formation d'amalgames.
En termes de nombre de triangles, la diminution de cette valeur diminue généralement (et n'augmente pas) le nombre de triangles générés. Les modifications de cette valeur ne devraient pas avoir d'impact significatif sur les performances. En ce qui concerne l'apparence des connecteurs de triangles, si cette valeur est trop élevée, les polygones d'entrée peuvent être produits comme un seul amalgame.
Ce paramètre contrôle les trous qui doivent être éliminés des amalgames. Plus sa valeur est grande, plus les trous restants seront grands. En termes de nombre de trous, la diminution de cette valeur augmente généralement (et ne diminue pas) le nombre de trous restant dans les amalgames.
Ce paramètre spécifie le nom d'un identifiant unique pour les amalgames. S'il est spécifié, chaque amalgame recevra une valeur d'identification qui sera unique dans tous les groupes. Tous les triangles et les trous contenus dans un amalgame recevront le même ID que cet amalgame.
Génération de liste
Lorsqu'il est activé, ajoute un attribut de liste aux amalgames de sortie. Pour chaque amalgame, cette liste contiendra une entrée pour chaque entité d'entrée dont la géométrie polygonale partage une frontière avec l'amalgame.
Entrer un nom de liste.
Note: Les attributs de liste ne sont pas accessibles à partir du schéma de sortie dans 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.
Tous les attributs : tous les attributs des entités entrantes ayant généré des entités en sortie seront ajoutés à la liste spécifiée dans le paramètre Liste.
Attributs sélectionnés : seuls les attributs spécifiés dans le paramètre Attributs sélectionnés seront ajoutés à la liste spécifiée dans le paramètre Liste.
Les attributs à ajouter à la liste lorsque le paramètre Ajouter à la liste vaut Attributs sélectionné.
Notes
La dissolution de l'entrée est nécessaire pour supprimer les frontières partagées et les régions qui se chevauchent, avec lesquelles AreaAmalgamator ne peut pas fonctionner correctement. Cependant, la dissolution de l'entrée a quelques effets secondaires :
- Si plusieurs entités en entrée sont dissoutes en une seule entité, alors seulement la liste d'attributs d'une entité sera conservée après dissolution.
- Si deux géométries d'entrée partagent une bordure - par exemple, deux péninsules collées l'une à l'autre - l'utilisateur pourrait s'attendre à ce que des connecteurs triangulaires se forment entre les deux géométries lorsque le mode Amalgamation binaire est sélectionné. Cependant, ces géométries seront d'abord dissoutes, ce qui fait qu'il est beaucoup plus probable que l'amalgamation binaire n'entraîne pas la formation de connecteurs triangulaires entre les péninsules. Pour surmonter cette anomalie, veuillez sélectionner le mode Auto-amalgamation et amalgamation binaire.
Si la longueur maximum des triangles est plus petite que la largeur maximum des triangles, les résultats pourront être imprévisibles.
É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 du 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 d'espace de travail. 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 projet 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.
FME Community
FME Community iest 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.
Rechercher des exemples et informations à propos de ce Transformer dans FME Community.
Mots clefs : Amalgamator