Affiner
Effectue une transformation affine (comme le décalage, la rotation ou l'échelle) sur les coordonnées de l'entité.
Cas d'utilisations typiques
-
Déplacement, mise à l'échelle et rotation de la géométrie 2D.
Comment fonctionne-t-il ?
Affiner reçoit des entités avec n'importe quel type de géométrie et déplace leurs coordonnées x et y selon une transformation affine spécifiée.
Une transformation affine est une méthode mathématique de modification de la géométrie qui :
-
Préserve les lignes/collinéarité : tous les points sur une ligne droite sont toujours sur une ligne droite après la transformation.
-
Préserve le parallélisme : les lignes qui sont initialement parallèles le sont toujours après transformation.
-
Peut ne pas préserver les angles, les longueurs ou les surfaces, selon le type de transformation effectuée.
La mise à l'échelle, la mise en miroir, la rotation, le cisaillement et la translation (relocalisation ou décalage) sont tous des traitements affines. Elles peuvent être effectuées séparément ou en combinaison.
Affiner effectue des transformations 2D en utilisant cette formule :
x' = Ax + By + C
y' = Dx + Ey + F
Où (x,y) sont les coordonnées d'entrée et (x',y') sont les coordonnées de sortie transformées.
|
Description |
Formule/Coefficients |
Exemple* |
---|---|---|---|
Translation |
Déplacer la géométrie d'une distance fixée. |
x' = 1x + 0y + C y' = 0x + 1y + FSimplifié : x' = x + Cy' = y + F C = décalage horizontal (x) |
x' = 1x + 0y + 5
|
Échelle |
Rétrécit ou agrandit la géométrie.
|
x' = Ax + 0y + 0 Simplifié : x' = Ax A = facteur d'échelle horizontal (x) |
x' = 1.5x + 0y + 0
|
Pivotement |
Pivote la géométrie autour de l'origine.
|
x' = cos(ϴ)x + −sin(ϴ)y + 0 Simplifié : x' = cos(ϴ)x − sin(ϴ)y ϴ = Angle en degrés A = cos(ϴ) |
Pivote de 30 degrés : x' = 0.866025x + -0.5y + 0
|
Cisaillement |
Décale la géométrie proportionnellement à ses coordonnées x et y. |
x' = 1x + By + 0 Simplifié : x' = x + By |
x' = 1x + 1.25y + 0 |
* Notez que ces exemples utilisent une géométrie avec une origine de 0,0 dans le coin inférieur gauche du polygone.
Entités géographiques et Transformers affines
L'origine (0,0) des entités géographiques se trouve généralement à une certaine distance de la géométrie elle-même, de sorte que les transformations affines peuvent produire d'importants décalages d'emplacement, en particulier lors de la mise à l'échelle ou de la rotation.
Exemples
Dans cet exemple, nous allons effectuer diverses transformations sur un ensemble d'entités polygonales de voisinage, qui sont dans une projection UTM avec des unités de sol en mètres.
Les entités sont acheminées vers un Affiner.
Traitement des entités Est et Nord
Dans la boîte de dialogue des paramètres, nous entrons des coefficients pour déplacer les entités de 500 mètres vers l'est et de 1000 mètres vers le nord.
x' = 1x + 0y + 500
y' = 0x + 1y + 1000
Les entités de sortie ont été traitées.
Mise à l'échelle d'entités
Dans la boîte de dialogue des paramètres, nous entrons les coefficients pour augmenter l'échelle des entités d'un facteur de 1,006.
x' = 1.006x + 0y + 0
y' = 0x + 1.006y + 0
Notez que même un petit facteur d'échelle comme celui-ci peut produire de grands décalages de position lorsque les entités sont géoréférencées.
Faire pivoter des entités
Dans la boîte de dialogue des paramètres, nous entrons les coefficients pour faire pivoter les entités de 0,9 degrés.
Nous pourrions entrer des valeurs de paramètres explicites, mais nous utiliserons des expressions pour calculer les coefficients.
Notez que les fonctions mathématiques @cos() et @sin() attendent des radians (et non des degrés), et nous ajoutons donc la fonction @degToRad() pour convertir notre angle de rotation en radians.
x' = cos(0.9)x + -sin(0.9)y + 0
y' = sin(0.9)x + cos(0.9)y + 0
Notez que même une petite rotation comme celle-ci peut produire de grands décalages de position lorsque les entités sont géoréférencées, car elles sont tournées autour de leur origine (0,0) qui est à une certaine distance.
Notes
-
Pour effectuer des transformations affines sur place sur des entités géographiques, il faut envisager une reprojection temporaire (Reprojector) dans un système de coordonnées local ou utiliser un CommonLocalReprojector.
-
Scaler effectue des transformations affines d'échelle en 2D et 3D, avec des options supplémentaires pour des types de géométrie spécifiques et la gestion de l'origine.
-
Offsetter effectue des traitements affines de translation en 2D et 3D, avec des options d'espace de coordonnées supplémentaires (coordonnées polaires et sphériques, en plus des coordonnées cartésiennes).
-
Rotator et 3DRotator effectuent des transformations affines de rotation, avec une interface simplifiée pour la valeur de rotation, l'origine (2D) et le choix de l'axe (3D).
Configuration
Ports d'entrée
Ce Transformer accepte toutes les entités. Les arcs et les ellipses sont conservées.
Ports de sortie
Entités transformées selon les paramètres choisis.
Le port dynamique <Rejected> apparaît quand un paramètre est défini à une valeur non littérale rendant le process impossible.
Par exemple, si un paramètre numérique tel que la largeur de ligne, Début du compte, ou Nombre de décimales est défini par une expression, une valeur d'attribut ou un paramètre, il est possible de passer une valeur non numérique ne pouvant être utilisé. Décimales = Chat ne peut pas être traité, l'entité sera donc émise via ce port.
Les entités rejetées auront un attribut fme_rejection_code expliquant la raison du rejet.
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
A |
Fournir les valeurs de tous les coefficients et constantes de la formule affine : x' = Ax + By + C
Où (x,y) sont les coordonnées d'entrée et (x',y') sont les coordonnées de sortie transformées. Si une valeur n'est pas nécessaire pour la transformation requise, la valeur doit être zéro (0). |
É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.