Transformers FME: 2025.0

Categories
Coordonnées
Géométries
Related Transformers
AttributeRounder
GeometryValidator
RasterCellValueRounder

CoordinateRounder

Arrondit la valeur des coordonnées de l'entité au nombre de décimales spécifié.

Aller à la configuration

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

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

Ports de sortie

Paramètres

Éditer les paramètres des Transformers

Les paramètres du Transformer peuvent être définis en saisissant directement des valeurs, en utilisant des expressions ou en faisant référence à d'autres éléments de l'espace de travail tels que des valeurs d'attributs ou des paramètres utilisateur. Divers éditeurs et menus contextuels sont disponibles pour vous aider. Pour voir ce qui est disponible, cliquez sur à côté du paramètre concerné.

Pour plus d'information, consulter la section Options des Transformers.

Références

Comportement

Basé sur des entités

Stockage des entités

Non

Dépendances Aucun
Alias  
Historique  

FME Community

FME Community dispose d'une mine de connaissances sur FME, avec plus de 20 000 membres actifs dans le monde entier. Obtenez de l'aide sur FME, partagez vos connaissances et entrez en contact avec des utilisateurs du monde entier.

Voir tous les résultats à propos de ce Transformer sur FME Community.

 

Examples may contain information licensed under the Open Government Licence – Vancouver, Open Government Licence - British Columbia, and/or Open Government Licence – Canada.