AreaAmalgamator
Généralise un polygone en prenant en compte les géométries voisines.
Comment fonctionne-t-il ?
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".
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.
Configuration
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.
Input | Output |
---|---|
Triangles (rouge) |
|
Amalgamated (vert) |
|
Holes (noir) |
Paramètres
Regrouper par |
En spécifiant un ou plusieurs attributs de regroupement, les entités polygonales d'entrée seront divisées en groupes et le processus de fusion sera exécuté séparément sur chaque groupe. Au sein de chaque groupe, toutes les entités auront les mêmes valeurs pour les attributs de groupe sélectionnés. Si aucun attribut de regroupement est sélectionné, un seul groupe est formé contenant toutes les entités. Par défaut, aucun groupe n'est spécifié. |
||||
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. |
Mode d'amalgamation |
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 :
|
||||||||||||||||||
Dissoudre les entités en entrée |
Ce paramètre contrôle si les entités polygonales d'entrée sont dissoutes à l'avant. La valeur par défaut est Oui.
|
||||||||||||||||||
Largeur maximum des triangles |
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.
|
||||||||||||||||||
Hauteur maximum des triangles |
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.
|
||||||||||||||||||
Superficie minimum des trous |
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. |
||||||||||||||||||
Attribut ID (option) |
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. |
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.
Liste |
Entrer un nom de liste. 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. |
Ajouter à la liste |
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. |
Attributs sélectionnés |
Les attributs à ajouter à la liste lorsque le paramètre Ajouter à la liste vaut Attributs sélectionné. |
É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.
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.