Exemple concret d'Affine Transform?

9

De l'article Wikipedia :

En géométrie, une transformation affine ou carte affine ou une affinité (du latin, affinis, "connecté avec") entre deux espaces vectoriels (à proprement parler, deux espaces affines) consiste en une transformation linéaire suivie d'une traduction.

Quelqu'un peut-il donner un exemple concret de quand et comment cela est utilisé dans le SIG?

geographika
la source

Réponses:

9

Les utilisations courantes des transformations affines 2D et 3D dans les SIG incluent

  • Transformations carte à affichage

  • Enregistrement d'images et de rasters

  • Changer les points de vue 3D

  • Modification des fonctions par mise à l'échelle, décalage et rotation

  • Modifications du référentiel (formules à 3 et 7 points).

Ceux-ci sont décrits plus en détail et illustrés pour le cas 2D sur cette page Web , qui se trouve lorsque vous recherchez "SIG de transformation affine". D'autres hits fournissent de nombreux autres exemples.

Les transformations affines fournissent également quelques simplifications conceptuelles . Par exemple, chaque grille régulière d'emplacements est affinement équivalente à la grille de points à coordonnées intégrales et tous les modèles ellipsoïdaux de la terre sont affinement équivalents à la sphère unitaire centrée à l'origine.

Enfin, notons que ( au moins depuis la fin des années 1800 ) la géométrie euclidienne est l'étude du groupe de transformations affines préservant la distance. Étant donné que presque tous les traitements SIG - index spatiaux, relations spatiales, requêtes spatiales, «géotraitement», etc. - utilisent des algorithmes basés sur la géométrie euclidienne de la carte, les transformations affines sont fondamentales pour le SIG.

whuber
la source
5

Afficher

Tous les téléspectateurs utilisent des transformations affines pour convertir les coordonnées géographiques en coordonnées d'écran.

Généralisation

De nombreuses opérations de transformation utilisées en généralisation sont des transformations affines: échelle, étirement, translation, rotation, etc.

julien
la source
4

http://ian01.geog.psu.edu/geoserver/www/cartogram/discontinous.html montre un cartogramme discontinu que je construis en utilisant une simple transformation affine.

Ian Turton
la source
1
+1 Notez qu'il s'agit d'une collection de transformations affines, une par état, et pas seulement une seule transformation. On peut concevoir tous les cartogrammes comme créant une transformation pour chaque caractéristique, mais dans la plupart des cas, ces transformations sont plus compliquées que les affines (et souvent ne sont pas différenciables ni même continues).
whuber
3

D'après le document PostGIS :
"ST_Affine - Applique une transformation affine 3D à la géométrie pour effectuer des tâches telles que traduire, faire pivoter, mettre à l'échelle en une seule étape."

Voici un exemple assez sale.

Il y a deux ans, je l'ai utilisé pour créer une carte d'image HTML cliquable sur une image gif fournie par mapserver. La requête envoyée à PostGIS crée un tampon simplifié autour de la géométrie dans l'échelle de pixels de droite et recalcule puisque l'image de la carte a son origine dans le coin supérieur gauche et la projection de la carte a son origine bien sûr dans le coin inférieur gauche. Ensuite, je viens de créer l'image-map en écrivant la chaîne retournée avec asp, ou si c'était php.

J'ai creusé dans la poussière sale et j'ai trouvé ceci:

SELECT gid, 
    replace(
        astext(
            st_affine(
                ST_SnapToGrid(
                    st_buffer(
                        st_transscale(
                            st_simplify(
                                (st_dump(the_geom)).geom
                            , (st_length(the_geom)/50)::integer)
                        ,(-" & minx & "),(-" & miny & "),(500::double precision/" & deltax & "),(500::double precision/" & deltax & "))
                    ,5)
                ,1,1)
            ,1,0,0,-1,0,300)
        )
    ,' ',',')   
as thetext 
from
 mytable where gid in (" & theList & ") order by st_length(the_geom);

Pas beau, mais ça a très bien fonctionné et servi pendant un certain temps.

/ Nicklas

Nicklas Avén
la source
2

Il s'agit simplement d'une transformation linéaire d'une image ou d'un ensemble de données - cela signifie que toutes les coordonnées de l'ensemble de données sont traitées de manière égale. Par exemple, si le point en (x1, y1) est mis à l'échelle par a et décalé de b, alors tous les autres points (x2, y2), (x3, y3), (xn, yn) seront également mis à l'échelle par a et décalés de b, etc. ... Il n'y a aucune dépendance à l'endroit où dans le jeu de données ou l'image résident les pixels.

dmsnell
la source
Les transformations affines sont des généralisations de transformations linéaires. Contrairement à une transformation linéaire, une transformation affine peut également translater (déplacer) des points.
whuber
1

Lorsque je reçois une carte en format papier ou numérique sans accès aux données vectorielles, j'ai besoin d'informations de la carte pour superposer d'autres données. Si la carte n'est pas imprimée ou exportée dans le même système de coordonnées que mes données, je dois non seulement m'inscrire (placer, faire pivoter, mettre à l'échelle). Mais pour le transformer.

Les deux façons de procéder.
1. numériser dans le système dans lequel l'image a été imprimée, puis attribuer le système de coordonnées approprié et retravailler les données. Ou ...
2. placez, faites pivoter et redimensionnez à une position proche de la finale et effectuez la transformation.

Lorsque vous choisissez le type de transformation, vous êtes limité par le nombre de points de référence identifiables dans les deux jeux de données.

Habituellement (en fonction de nombreux facteurs), je choisis de placer l'image près de son lieu de repos final, puis d'effectuer une transformation de feuille de caoutchouc.

Affine est l'un des choix que j'ai lorsque j'utilise un plus grand nombre de points de référence.

Brad Nesom
la source