Приклад реального світу Affine Transform?


9

Зі статті Вікіпедії :

В геометрії афінне перетворення або афінна карта або спорідненість (від лат. Affinis, «пов’язаний з») між двома векторними просторами (строго кажучи, два афінні проміжки) складається з лінійної трансформації з наступним перекладом.

Чи може хтось навести реальний приклад того, коли і як це використовується в ГІС?

Відповіді:


9

Повсякденне використання 2D і 3D афінних перетворень в ГІС включає

  • Перетворення карт на дисплей

  • Реєстрація зображень та растр

  • Зміна 3D-точок зору

  • Модифікація функцій шляхом масштабування, переміщення та обертання

  • Зміна дати (3-бальна та 7-бальна формули).

Вони описані більш докладно та проілюстровані для двовимірного випадку на цій веб-сторінці , який можна знайти під час пошуку "ГІФ" афінної трансформації ". Інші хіти надають ще багато прикладів.

Аффінні трансформації також забезпечують деякі концептуальні спрощення . Наприклад, кожна регулярна сітка місць розташування афективно еквівалентна сітці точок з інтегральними координатами, а всі еліпсоїдальні моделі землі адекватно еквівалентні одиничній сфері, зосередженій біля початку.

Нарешті, зауважимо, що ( принаймні з кінця 1800-х рр. ) Евклідова геометрія - це вивчення групи афінних перетворень, що зберігають відстань. Оскільки майже вся обробка ГІС - просторові індекси, просторові відносини, просторові запити, "геопроцедура" тощо - використовує алгоритми, засновані на евклідовій геометрії карти, афінні перетворення є основними для ГІС.


5

Дисплей

Усі глядачі використовують афінні перетворення для перетворення географічних координат у координатні екрани.

Узагальнення

Багато операцій перетворення, що використовуються при узагальненні, є афінними перетвореннями: масштаб, розтягнення, переклад, обертання тощо.


4

http://ian01.geog.psu.edu/geoserver/www/cartogram/discontinous.html показує розривну картографічну структуру, яку я будую, використовуючи просте афінне перетворення.


1
+1 Зауважте, що це сукупність афінних перетворень, по одному на стан, а не лише про одну трансформацію. Усі картограми можна уявити як створення однієї трансформації для кожної особливості, але в більшості випадків ці перетворення є складнішими за афінні (і часто не є диференційованими або навіть безперервними).
whuber

3

З документа PostGIS :
"ST_Affine - застосовує 3d-афінну трансформацію до геометрії, щоб робити такі речі, як переклад, обертання, масштабування в один крок."

Тут наводиться досить брудний приклад.

Два роки тому я використовував його для створення карти з можливістю натискання HTML на графічному зображенні gif, доставленому з mapserver. Запит, надісланий PostGIS, робить спрощений буфер навколо геометрії в правому піксельному масштабі та перераховує, оскільки карта зображення має своє походження в лівому верхньому куті, а проекція карти має своє походження, звичайно, у лівому нижньому куті. Тоді я просто створив зображення-карту, записавши повернутий рядок з допомогою asp, або якщо це був php.

Я копав брудний пил і виявив таке:

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

Не красиво, але насправді це спрацювало дуже добре і служило якийсь час.

/ Ніклас


2

Це просто лінійне перетворення зображення або набору даних - це означає, що всі координати в наборі даних обробляються однаково. Наприклад, якщо точка в (x1, y1) масштабується на a і зміщена на b, тоді всі інші точки (x2, y2), (x3, y3), (xn, yn) також будуть масштабуватися на a і зміщені на b і т.д. ... Немає залежності від того, де в наборі даних чи зображенні знаходяться пікселі.


Аффінні перетворення - це узагальнення лінійних перетворень. На відміну від лінійного перетворення, афінне перетворення також може переводити (зміщувати) точки.
whuber

1

Коли я отримую карту, яка є або паперовим, або цифровим зображенням без доступу до векторних даних, і мені потрібна інформація з карти, щоб перекрити іншими даними. Якщо карта не надрукована або експортована в тій самій чи подібній системі координат, що і мої дані, мені потрібно не лише зареєструватися (розмістити, повернути, масштабувати). Але перетворити це.

Два способи це можна зробити.
1. Оцифруйте в системі зображення, яке було надруковано, а потім призначте відповідну систему координат, а потім повторно проектуйте дані. Або ...
2. Розташуйте, обертайте та масштабуйте до позиції, близької до кінцевої, і виконайте перетворення.

Вибираючи тип перетворення, ви обмежуєтесь кількістю ідентифікованих опорних точок в обох наборах даних.

Я, як правило, (залежить від безлічі факторів), вирішую розмістити зображення поблизу його останнього місця відпочинку, а потім виконати перетворення гумового листа.

Affine - це один із варіантів, які я маю, коли використовую більшу кількість опорних точок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.