Curvefitter
Remplace la géométrie par un tracé optimal de segments de ligne et d'arcs, créant ainsi des lignes et des zones lisses et incurvées.
Cas d'utilisation courants
-
Optimiser la taille du fichier ou du traitement en réduisant les sommets
-
Lisser une géométrie irrégulière
-
Restaurer des arcs vectorisés
Comment fonctionne-t-il ?
CurveFitter reçoit des entités de type ligne et surface et remplace leur géométrie par un chemin composé de lignes et d'arcs.
Un chemin optimal est calculé en fonction d'un certain nombre de paramètres :
-
Précision - écart maximal entre la nouvelle géométrie et l'originale.
-
Aplatissement - permet de convertir des courbes peu profondes en segments de ligne droite.
-
Coefficients de pondération - Pondération de la compression, Pondération du lissage et Pondération de l'exactitude peuvent être adaptées pour mettre l'accent sur les résultats souhaités.
Les limites des surfaces adjacentes peuvent être préservées, ce qui permet d'éviter les trous et les superpositions.
Exemples
Dans cet exemple, nous avons un ensemble de polygones de parcelles. Notez que les limites courbes ont été vectorisées à un moment donné et qu'elles sont composées de nombreux petits segments de ligne. Nous voulons les ramener à une géométrie d'arc.
Les entités sont acheminées vers un CurveFitter.
Dans les paramètres, la Précision est fixée à 0,2 mètre et l'Aplatissement à 10 % de cette valeur.
La pondération est légèrement modifiée - La Pondération de l'exactitude est augmentée jusqu'à la valeur maximale de 10, ce qui permet de privilégier la justesse de la position par rapport à la fluidité et à la compression.
L'option Préserver les limites communes est réglée sur Oui, afin d'éviter de créer des trous ou des superpositions aux endroits où les limites des parcelles se touchent.
Les limites des entités de sortie sont des chemins composés de segments de ligne et d'arcs.
La détermination des paramètres permettant d'obtenir le résultat souhaité nécessite souvent des essais et des erreurs. La superposition de l'entité originale avec la sortie du CurveFitter dans Data Inspector peut s'avérer utile pour affiner les valeurs des paramètres.
Dans cet exemple, nous avons une ligne avec 85 segments droits, représentant une entité technique telle qu'une route. L'entité a probablement été définie à l'origine par des arcs et des lignes.
Les routes étant généralement conçues comme une série de segments tangents, notre objectif est de produire une géométrie lisse et précise en termes de position (par opposition à la réduction des points pour la compression).
Dans les paramètres, la Précision est réglée sur une première estimation de 0,5 mètre et l'Aplatissement sur 10 % de la valeur de précision - 0,05.
Les paramètres de pondération (Compression, Lissage et Exactitude) sont laissés avec leurs valeurs par défaut de 1.0.
L'entité en sortie est un chemin composé de trois arcs. Notez que les segments de gauche et du centre ont une transition assez douce, mais que les segments du centre et de droite ne sont visiblement pas tangents.
L'utilisation d'une valeur de Précision plus étroite de 0,2 mètre produit une trajectoire avec quatre segments d'arc. Il correspond mieux à l'entité d'origine et est quelque peu (mais pas parfaitement) lisse.
Pour affiner la géométrie de sortie, nous ajusterons les paramètres de pondération - Compression, Lissage et Exactitude. Par défaut, ils sont équilibrés. Nous les ajusterons en fonction du résultat souhaité (lissage et précision), en mettant moins l'accent sur la réduction du nombre de points (compression).
Pondération de la compression est réduit à 0.1 tandis que le Pondération du lissage est augmenté à sa valeur maximale de 10.
Pondération de l'exactitude reste à 1.0 et la valeur de Précision conserve toujours la géomètrie sous 0.2 mètres de son emplacement original.
Le chemin résultant est presque parfaitement lisse et toujours précis à 0.2 mètres près.
Notes
-
En général, les arcs ne sont pas bien reprojetés. Envisagez d'utiliserArcStroker pour reprojeter des arcs.
-
Dans certains cas, comme le travail avec les contours, le Generalizer et ses nombreux choix d'algorithmes peuvent constituer un meilleur choix de Transformer.
-
Tous les formats ne prennent pas en charge la géométrie des chemins, et les résultats de CurveFitter peuvent donc être altérés lorsqu'ils sont écrits dans ces formats. Le PathSplitter peut être utilisé pour décomposer un chemin en ses lignes et arcs constitutifs. Voir la géométrie Chemin.
Création et modification d'arcs, de cercles et d'ellipses
Ces Transformers fonctionnent avec les arcs de différentes manières.
|
Fonction |
Géométrie en sortie |
Coordonnées Z |
---|---|---|---|
Crée une ou plusieurs nouvelles entités avec une géométrie en arc (lorsque l'objet géométrique est un type d'arc). |
Arc par point central Arc par point central et extrémités Arc par 3 points Arc par bosse Ellipse (Arc par point central) |
Supporté |
|
Remplace la géométrie d'une entité existante par un arc 2D. |
Arc par point central |
Non |
|
Remplace la géométrie d'une entité existante par un arc 3D. |
Arc par point central |
Oui, au point central |
|
Remplace la géométrie d'une entité existante par une ellipse ou un cercle 2D (arc fermé). |
Ellipse (Arc par point central) |
Non |
|
Modifie un arc existant ou convertit un point en arc. |
Arc par point central Arc par point central et extrémités Arc par 3 points |
Supporté, au centre et/ou aux extrémités |
|
Modifie une ellipse existante (arc fermé) ou convertit un point en ellipse. |
Ellipse (Arc par point central) |
Supporté, au point central |
|
Extrait les valeurs des propriétés qui décrivent la géométrie d'un arc et les stocke en tant qu'attributs. |
Arc par point central Arc par point central et extrémités Arc par 3 points Arc par bosse |
Supporté |
|
Extrait les valeurs des propriétés qui décrivent la géométrie d'une ellipse et les stocke sous forme d'attributs. |
Ellipse (Arc par point central) |
Supporté |
|
Convertit les arcs et les ellipses en lignes ou polygones en interpolant des points le long de l'arc. |
Chemin Line Area |
Supporté |
|
Remplace la géométrie par un arc décrit par le premier, le milieu et le dernier vertex de l'entité en entrée. |
Arc par 3 points |
Supporté |
|
Remplace la géométrie par un arc décrit par le premier, le milieu et le dernier vertes de l'entité en entrée. |
Chemin Area Arc par bosse Line |
Supporté |
|
Réduit la densité des points sur les lignes ou les polygones, en ajustant les arcs dans la mesure du possible. (Lors de l'utilisation de l'option Algorithme > Douglas avec ajustement des arcs (Généraliser) ). |
Chemin Area Arc par 3 points Line |
Supporté |
|
Remplace la géométrie d'une entité existante par un cercle contenant tous ses sommets ou extrait les valeurs des propriétés du cercle dans des attributs. |
Ellipse (Arc par point central) |
Non |
Configuration
Ports d'entrée
Entités à géométrie linéaire ou surfacique.
Ports de sortie
Entités dont la géométrie du chemin est optimisée, comme spécifié dans les paramètres.
Les entités dont la géométrie n'est pas celle d'une ligne ou d'une zone valide sont émises via ce port, de même que les entités qui reçoivent des valeurs non numériques pour tout paramètre numérique.
Les entités rejetés auront un attribut fme_rejection_code avec l'une des valeurs suivantes :
INVALID_PARAMETER_PRECISION
INVALID_PARAMETER_FLATTENING
INVALID_PARAMETER_COMPRESSION_WEIGHT
INVALID_PARAMETER_SMOOTHNESS_WEIGHT
INVALID_PARAMETER_ACCURACY_WEIGHT
INVALID_PARAMETER_GENERALIZATION_TOLERANCE
INVALID_GEOMETRY_TYPE
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
Précision |
Spécifier la distance maximale en unités terrain à laquelle la nouvelle géométrie peut s'écarter de l'originale. |
Aplatissement |
Détermine l'aplatissement des courbes peu profondes. Spécifier la distance maximale entre les coordonnées de l'arc au-dessous de laquelle les courbes peuvent être converties en lignes droites. Une valeur typique est de 10 % de la valeur de précision. |
Coefficients de pondération
|
Trois facteurs de pondération sont pris en compte lors du calcul du nouveau chemin. Ils sont équilibrés par défaut mais peuvent être ajustés pour mettre l'accent sur différents résultats.
Spécifier une valeur pour chacun d'entre eux, supérieure à zéro (0) et inférieure ou égale à 10. Par défaut, les trois valeurs sont fixées à 1.0. |
Pondération du lissage |
Voir Pondération de la compression |
Pondération de l'exactitude |
Voir Pondération de la compression |
Préserver les limites communes |
Sélectionner une méthode de traitement des surfaces adjacentes, le cas échéant :
Si seules des entités linéaires ou des zones non adjacentes sont introduites dans le Transformer, Non est le choix le plus efficace. |
Tolérance des limites partagées |
Quand Préserver les limites communes vaut Oui, spécifier la distance entre deux limites (en 2D) sous laquelle elles sont considérées partagées. Si Automatique, une tolérance appropriée est calculée sur la base des entités d'entrée. |
É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 |
Non, sauf si Préserver les limites communes vaut Oui. |
Dépendances | Aucun |
Alias | |
Historique | Auparavant, ce Transformer était une extension payante. |
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.