Prawdziwy przykład Affine Transform?


9

Z artykułu w Wikipedii :

W geometrii transformacja afiniczna lub mapa afiniczna lub powinowactwo (z łaciny affinis, „połączone z”) między dwiema przestrzeniami wektorowymi (ściśle mówiąc, dwiema przestrzeniami afinicznymi) składa się z transformacji liniowej, po której następuje translacja.

Czy ktoś może podać prawdziwy przykład tego, kiedy i jak jest wykorzystywany w GIS?

Odpowiedzi:


9

Rutynowe zastosowania przekształceń afinicznych 2D i 3D w GIS obejmują

  • Transformacje odwzorowania na wyświetlanie

  • Rejestrowanie obrazów i rastrów

  • Zmiana punktów widzenia 3D

  • Modyfikowanie funkcji przez przeskalowanie, przesunięcie i obrót

  • Zmiany punktu odniesienia (wzory 3-punktowe i 7-punktowe).

Są one opisane bardziej szczegółowo i zilustrowane dla przypadku 2D na tej stronie internetowej , który można znaleźć podczas wyszukiwania „afinicznej transformacji GIS”. Inne trafienia podają wiele innych przykładów.

Transformacje afiniczne zapewniają również pewne uproszczenia pojęciowe . Na przykład każda regularna siatka lokalizacji jest affinely równorzędna do siatki punktów ze zintegrowanymi współrzędnymi, a wszystkie elipsoidalne modele Ziemi są dokładnie równoważne sferze jednostkowej wyśrodkowanej na początku.

Na koniec zauważmy, że ( przynajmniej od końca 1800 roku ) geometria euklidesowa jest badaniem grupy zachodzących na odległość transformacji afinicznych. Ponieważ prawie całe przetwarzanie GIS - indeksy przestrzenne, relacje przestrzenne, zapytania przestrzenne, „geoprzetwarzanie” itp. - wykorzystuje algorytmy oparte na geometrii euklidesowej mapy, transformacje afiniczne są fundamentalne dla GIS.


5

Pokaz

Wszyscy widzowie używają przekształceń afinicznych do przekształcania współrzędnych geograficznych na współrzędne ekranu.

Uogólnienie

Wiele operacji transformacji stosowanych w uogólnieniu to transformacje afiniczne: skala, rozciąganie, translacja, rotacja itp.


4

http://ian01.geog.psu.edu/geoserver/www/cartogram/discontinous.html pokazuje nieciągły kartogram, który konstruuję za pomocą prostej transformacji afinicznej.


1
+1 Zauważ, że jest to zbiór transformacji afinicznych, po jednym na stan, a nie tylko jedna transformacja. Można sobie wyobrazić wszystkie kartogramy jako tworzenie jednej transformacji dla każdej cechy, ale w większości przypadków transformacje te są bardziej skomplikowane niż afiniczne (i często nie są zróżnicowane, a nawet ciągłe).
whuber

3

Z dokumentu PostGIS :
„ST_Affine - Stosuje transformację afiniczną 3d do geometrii, aby wykonywać takie czynności jak translacja, obracanie, skalowanie w jednym kroku.”

Oto dość brudny przykład.

Dwa lata temu użyłem go do zbudowania mapy obrazu HTML z możliwością kliknięcia na obrazie gif dostarczonym z serwera map. Zapytanie wysłane do PostGIS tworzy uproszczony bufor wokół geometrii w prawej skali pikseli i ponownie oblicza, ponieważ mapa obrazu ma swój początek w lewym górnym rogu, a projekcja mapy ma swój początek oczywiście w lewym dolnym rogu. Następnie właśnie utworzyłem mapę obrazu, pisząc zwrócony ciąg za pomocą asp lub jeśli był to php.

Wykopałem brudny pył i znalazłem to:

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

Nie piękny, ale tak naprawdę działał bardzo dobrze i służył przez pewien czas.

/ Nicklas


2

To tylko liniowa transformacja obrazu lub zestawu danych - oznacza to, że wszystkie współrzędne w zestawie danych są traktowane jednakowo. Np. Jeśli punkt na (x1, y1) jest skalowany przez a i przesunięty o b, wówczas wszystkie inne punkty (x2, y2), (x3, y3), (xn, yn) również zostaną przeskalowane przez a i przesunięte o b itp. ... Nie ma zależności od tego, gdzie w zbiorze danych lub obrazie znajdują się piksele.


Przekształcenia afiniczne są uogólnieniami przekształceń liniowych. W przeciwieństwie do transformacji liniowej, transformata afiniczna może również tłumaczyć (przesunąć) punkty.
whuber

1

Kiedy otrzymuję mapę w formie papierowej lub cyfrowej bez dostępu do danych wektorowych i potrzebuję informacji z mapy, aby nałożyć inne dane. Jeśli mapa nie jest drukowana ani eksportowana w tym samym lub podobnym układzie współrzędnych, co moje dane, muszę nie tylko zarejestrować (umieścić, obrócić, skalować). Ale żeby to przekształcić.

Można to zrobić na dwa sposoby.
1. digitalizuj w systemie, w którym obraz został wydrukowany, a następnie przypisz odpowiedni układ współrzędnych, a następnie ponownie rzutuj dane. Lub ...
2. umieść, obróć i skaluj do pozycji zbliżonej do finału i wykonaj transformację.

Wybierając typ transformacji, ograniczana jest liczba możliwych do zidentyfikowania punktów odniesienia w obu zestawach danych.

Zwykle (w zależności od wielu czynników) wybieram umieszczenie obrazu w pobliżu jego końcowego miejsca spoczynku, a następnie dokonanie transformacji arkusza gumowego.

Affine jest jednym z wyborów, które mam, kiedy wykorzystuję większą liczbę punktów odniesienia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.