GIS-LAB

Географические информационные системы и дистанционное зондирование

Аффинные преобразования - математика

Математические выкладки решения задачи, применяемой при привязке данных

Обсудить в форуме Комментариев — 6

Введение

При операции географической привязки данных, то есть перевода данных из локальной системы координат в географическую или прямоугольную, сам пересчет обычно происходит "за сценой" и его особенности часто понятны пользователю только интуитивно. Эта статья показывает полный алгоритм пересчета и может быть использована для реализации алгоритмов привязки данных в своем ПО и просто для более полного понимания того, что происходит на самом деле. Аффинные преобразования являются подмножеством полиномиальных преобразований. Аффинное преобразование является эквивалентом полиномиального преобразования первого порядка. Для менее насыщенного формулами описания рекомендуем ознакомиться со статьей "Полиномиальные преобразования". Указанная статья, хотя и содержит формулы преобразований, не показывает детальной их реализации, однако представляет важную информацию о применении данных преобразований на практике.

Данная статья иллюстрирует случай, когда количество точек привязки равно минимально необходимому, в данном случае n = 3. В случае если точек больше и необходимо так же вычислить ошибку, математика будет несколько другая. Мы планируем осветить этот вопрос в отдельной статье.

Математика

Решение задачи трансформации сводится к нахождению коэффициентов системы уравнений. Напомним, что в случае аффинного преобразования, система уравнений выглядит следующим образом:

система уравнений

где:

x,y - координаты в исходной системе координат (известны)
x',y' - координаты в конечной системе координат (известны)
a0-2,b0-2 - коэффициенты (неизвестны)

Таким образом, имея 6 неизвестных, нам понадобится 3 пар точек с известными координатами до и после трансформации (x1,y1; x2,y2; x3,y3 и x1',y1'; x2',y2'; x3',y3'), соответственно получим 3 пары уравнений:

система уравнений

Или, перегруппируя этот набор уравнений по x и y:

система уравнений

Каждая группа используется соответственно для получения коэффициентов ai и bi. В матричной форме это выглядит следующим образом, для a и b:

система уравнений

Для получение коэффициентов, каждая часть уравнения должна быть умножена на обратную матрицу с коэффициентами, например для a:

система уравнений

Таким образом в матричной форме, вычисление коэффициентов:

система уравнений

Необходимо иметь в виду, что для обратного преобразования из x,y в x',y' матрица коэффициентов будет другая:

система уравнений

Таким образом, для решения данной системы, наше программное обеспечение должно уметь производить операции получения обратной матрицы и умножения матриц.

Полученный набор коэффициентов подставляется потом в исходные уравнения и задача получения новых координат решается для каждого пиксела исходного растра, получая таким образом новую матрицу в выходной системе координат.

Обсудить в форуме Комментариев — 6

Последнее обновление: March 14 2011

Дата создания: 11.01.2009
Автор(ы): Максим Дубинин


(Геокруг)

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter