Beispiel aus der Praxis der affinen Transformation?

9

Aus dem Wikipedia-Artikel :

In der Geometrie besteht eine affine Transformation oder affine Karte oder eine Affinität (aus dem Lateinischen affinis, "verbunden mit") zwischen zwei Vektorräumen (genau genommen zwei affine Räume) aus einer linearen Transformation, gefolgt von einer Übersetzung.

Kann jemand ein reales Beispiel dafür geben, wann und wie dies in GIS verwendet wird?

geographika
quelle

Antworten:

9

Routinemäßige Anwendungen von affinen 2D- und 3D-Transformationen in GIS umfassen

  • Map-to-Display-Transformationen

  • Registrieren von Bildern und Rastern

  • Ändern von 3D-Ansichtspunkten

  • Ändern von Funktionen durch Neuskalieren, Verschieben und Drehen

  • Datumsänderungen (3-Punkt- und 7-Punkt-Formeln).

Diese werden ausführlicher beschrieben und für den 2D-Fall auf dieser Webseite veranschaulicht , die bei der Suche nach "affines Transformations-GIS" gefunden wird. Andere Treffer liefern viele weitere Beispiele.

Affine Transformationen bieten auch einige konzeptionelle Vereinfachungen . Beispielsweise entspricht jedes reguläre Ortsgitter affin dem Punktgitter mit Integralkoordinaten, und alle Ellipsoidmodelle der Erde entsprechen affinisch der am Ursprung zentrierten Einheitskugel.

Schließlich ist zu beachten, dass die euklidische Geometrie ( zumindest seit dem späten 19. Jahrhundert ) die Untersuchung der Gruppe entfernungserhaltender affiner Transformationen ist. Da fast alle GIS-Verarbeitungen - räumliche Indizes, räumliche Beziehungen, räumliche Abfragen, "Geoverarbeitung" usw. - Algorithmen verwenden, die auf der euklidischen Geometrie der Karte basieren, sind affine Transformationen für GIS von grundlegender Bedeutung .

whuber
quelle
5

Anzeige

Alle Betrachter verwenden affine Transformationen, um geografische Koordinaten in Bildschirmkoordinaten umzuwandeln.

Verallgemeinerung

Viele Transformationsoperationen, die bei der Generalisierung verwendet werden, sind affine Transformationen: Skalieren, Strecken, Verschieben, Drehen usw.

julien
quelle
4

http://ian01.geog.psu.edu/geoserver/www/cartogram/discontinous.html zeigt ein diskontinuierliches Kartogramm, das ich mithilfe einer einfachen affinen Transformation konstruiere.

Ian Turton
quelle
1
+1 Beachten Sie, dass dies eine Sammlung affiner Transformationen ist, eine pro Zustand, nicht nur eine einzelne Transformation. Man kann sich alle Kartogramme als eine Transformation für jedes Merkmal vorstellen , aber in den meisten Fällen sind diese Transformationen komplizierter als affine (und oft nicht differenzierbar oder sogar kontinuierlich).
whuber
3

Aus dem PostGIS-Dokument :
"ST_Affine - Wendet eine affine 3D-Transformation auf die Geometrie an, um Dinge wie Übersetzen, Drehen und Skalieren in einem Schritt auszuführen."

Hier kommt ein ziemlich schmutziges Beispiel.

Vor zwei Jahren habe ich damit eine klickbare HTML-Image-Map auf einem vom Mapserver gelieferten GIF-Image erstellt. Die an PostGIS gesendete Abfrage erstellt einen vereinfachten Puffer um die Geometrie in der rechten Pixelskala und berechnet neu, da die Imagemap ihren Ursprung in der oberen linken Ecke hat und die Projektion der Karte ihren Ursprung natürlich in der unteren linken Ecke hat. Dann habe ich einfach die Image-Map erstellt, indem ich den zurückgegebenen String mit asp geschrieben habe oder ob es PHP war.

Ich grub mich in den schmutzigen Staub und fand Folgendes:

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);

Nicht schön, aber es hat wirklich sehr gut funktioniert und einige Zeit gedient.

/ Nicklas

Nicklas Avén
quelle
2

Es ist nur eine lineare Transformation eines Bildes oder Datensatzes - dies bedeutet, dass alle Koordinaten im Datensatz gleich behandelt werden. Wenn beispielsweise der Punkt bei (x1, y1) um a skaliert und um b verschoben wird, werden alle anderen Punkte (x2, y2), (x3, y3), (xn, yn) ebenfalls um a skaliert und um b usw. Verschoben ... Es besteht keine Abhängigkeit davon, wo sich die Pixel im Datensatz oder Bild befinden.

dmsnell
quelle
Affine Transformationen sind Verallgemeinerungen linearer Transformationen. Im Gegensatz zu einem linearen Transformation, Transformation ein affines kann auch übersetzen (Verschiebung) Punkte.
whuber
1

Wenn ich eine Karte erhalte, die entweder aus Papier oder einem digitalen Bild ohne Zugriff auf die Vektordaten besteht, und Informationen aus der Karte benötige, um sie mit anderen Daten zu überlagern. Wenn die Karte nicht im gleichen oder einem ähnlichen Koordinatensystem wie meine Daten gedruckt oder exportiert wird, muss ich mich nicht nur registrieren (platzieren, drehen, skalieren). Aber um es zu verwandeln.

Dies kann auf zwei Arten geschehen.
1. Digitalisieren Sie in dem System, in dem das Bild gedruckt wurde, und weisen Sie dann das entsprechende Koordinatensystem zu und projizieren Sie die Daten erneut. Oder ...
2. platzieren, drehen und skalieren Sie bis zu einer Position nahe dem Finale und führen Sie die Transformation durch.

Bei der Auswahl des Transformationstyps werden Sie durch die Anzahl der identifizierbaren Referenzpunkte in beiden Datensätzen eingeschränkt.

Normalerweise (hängt von vielen Faktoren ab) entscheide ich mich, das Bild in der Nähe seiner endgültigen Ruhestätte zu platzieren und dann eine Gummiblatttransformation durchzuführen.

Affin ist eine der Möglichkeiten, die ich habe, wenn ich eine größere Anzahl von Referenzpunkten verwende.

Brad Nesom
quelle