CoordinateRounder
Arrondit la valeur des coordonnées de l'entité au nombre de décimales spécifié.
Cas d'utilisation courants
-
Généralisation d'entités
-
Altération de coordonnées pour correspondre à un schéma ou jeu de données
-
Arrondi de coordonnées dont la précision dépasse l'exactitude
Comment fonctionne-t-il ?
Le CoordinateRounder reçoit des éléments et arrondit leurs coordonnées x, y, et/ou z à une précision spécifiée.
Les paramètres de précision X , Y et Z sont spécifiés sous forme d'entiers et peuvent être saisis directement ou associés à une expression, un paramètre publié, un attribut ou une valeur conditionnelle. Les nombres positifs représentent le nombre de décimales à arrondir, et les nombres négatifs produisent un arrondi aux multiples de dix (10). Une précision de zéro (0) produit des nombres entiers - des coordonnées sans décimales.
Si l'un des paramètres de précision est laissé vide, ces coordonnées seront transmises sans être modifiées.
Pour les arcs, seuls les points de départ et d'arrivée sont arrondis, car ce sont les seules coordonnées qui se trouvent sur la trajectoire de l'arc. Le point central n'est pas arrondi, pas plus que les autres paramètres de l'arc.
Les rasters passent sans être modifiés.
Erreurs d'arrondi et traitement en virgule flottante
CoordinateRounder peut ne pas toujours se comporter comme prévu, en raison des limitations connues du calcul en virgule flottante.
La représentation des nombres décimaux (base 10) en binaire (base 2) peut donner des valeurs qui se répètent à l'infini - tout comme 1 divisé par 3 (c'est-à-dire ⅓) donne 0,3333 (qui se répète à l'infini) dans le système numérique décimal.
Par exemple, 1 divisé par 5 (c'est-à-dire ⅕), qui donne 0,2 dans le système décimal, se répète à l'infini lorsqu'il est représenté sous forme de valeur binaire :
0.0111 1111 1001 0011 0011 0011 0011 0011... (0011 répété)
Lorsque cette valeur est reconvertie en décimale, elle donne 0,200000000000000011102230246252.
Par conséquent, l'arrondi peut parfois être imprévisible, s'arrondissant dans une direction inattendue.
Certains nombres, comme 1,1, ne peuvent pas être stockés précisément en binaire et se terminent donc par 1,1000000000000001, quel que soit l'arrondi. L'arrondi à 3 décimales donne également 1,1000000000000001. De même, une valeur de 3,3333 est stockée sous la forme 3,333299999999999999, et lorsqu'elle est arrondie à deux décimales, on obtient 3,3300000000000002.
Notez que le même comportement peut ne pas être observé lorsque les valeurs sont traitées comme des chaînes de caractères, comme dans le AttributeRounder, mais ils seront affectés lorsque la valeur est utilisée comme une virgule flottante.
Les coordonnées dans FME sont généralement enregistrées avec une précision en virgule flottante complète, y compris toute erreur de précision de traitement en virgule flottante. Notez que de nombreux formats ont un moyen de contrôler la précision décimale en fonction des types de données ou de la précision définie sur le Writer.
Exemples
Dans cet exemple, nous avons un jeu de données de polygones de parc. Notez que le système de coordonnées est UTM83-10, et que les unités de mesure sont donc des mètres.
En examinant les coordonnées des nœuds individuels dans une entité de la zone, nous voyons des nombres avec neuf décimales ou plus. Si l'on considère que nous mesurons en mètres, cette précision dépasse de loin la précision possible. Nous allons donc arrondir les coordonnées.
Les entités sont acheminées dans un CoordinateRounder.
Dans la boîte de dialogue des paramètres, la précision X et Y est fixée à 2, ce qui permet d'arrondir à deux décimales, représentant les centimètres dans ce système de coordonnées.
La précision Z est laissée vierge. Le jeu de données est en 2D, et n'a pas de coordonnées Z.
Les entités de sortie ont des coordonnées arrondies à deux décimales.
Notes
-
L'arrondi peut produire des nœuds en double. GeometryValidator peut être utilisé pour les supprimer.
-
Pour effectuer des arrondis sur des cellules raster, utilisez RasterCellValueRounder.
-
Pour effectuer des arrondis sur des coordonnées stockées en tant qu'attributs, utilisez AttributeRounder.
Configuration
Ports d'entrée
Entités vectorielles ou nuages de points dont les coordonnées doivent être arrondies.
Ports de sortie
Les entités dont les coordonnées sont arrondies comme indiqué dans les paramètres. Les entités dont la géométrie n'est pas prise en charge (raster, pas de géométrie) sont transmises sans être modifiées.
Paramètres
Précision X |
Entrer une précision pour la coordonnée x. |
Précision Y |
Entrer une précision pour la coordonnée y. |
Précision Z |
Entrer une précision pour la coordonnée z. |
É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 |
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.