10.21. Настройки трансформации растров¶
Поскольку растровые данные представляют собой набор значений, размещённых в ячейках регулярной сетки, эта сетка может пересчитываться при отрисовке растра в разных масштабах, изменении системы координат и других операций с растровым слоем.
Два основных параметра трансформации это Тип трансформации и Метод передискретизации.
10.21.1. Тип трансформации¶
Он отвечает за выбор метода перепроецирования растрового изображения. Важно четко понимать, насколько сильно отличаются проекции привязываемой карты и системы координат, к которой вы карту привязываете. Например, большинство мелкомасштабных карт Евразии печатается в конических проекциях, а стандартной СК в ГИС является WGS 84 (EPSG:4326) в прямоугольной проекции. В таком случае без существенных преобразований проекции (из конической в прямоугольную) не обойтись, поэтому надо использовать те варианты трансформаций, которые могут сильно деформировать исходное изображение (полиномиальные или сплайновые алгоритмы).
В QGIS можно использовать следующие типы трансформации:
Без деформации (2 точки)
Линейная - подходит для привязки карт в их исходную проекцию
Гельмерта - для привязки планов и картосхем в равнопромежуточной проекции, повернутых относительно севера
С линейной деформацией (4 точки)
Полиноминальная трансформация 1 степени - привязка крупномасштабных карт и планов на карту Google или Яндекс
Проективная трансформация - для перехода между проекциями (коническая ‣ цилиндрическая), например, подходит для привязки отфотографированных карт
С нелинейной деформацией
Полиноминальная трансформация 2 степени (6 точек + контрольная) - наиболее универсальный вариант для привязок карт в разных проекциях
Полиноминальная трансформация 3 степени (9 точек + контрольная) - подходит для привязки мелкомасштабных карт в поликонических проекциях на карту в прямоугольной проекции
Тонкостенный сплайн - на крайний случай, для привязки мелкомасштабных карт в сложных проекциях, сильно деформированных карт, снимков
Подробнее об этих трансформациях:
Линейная - самый простой вариант трансформации, при котором исходное изображение просто смещается на нужное место. Помимо этого оно может быть увеличено или уменьшено. Углы и пропорции при этом сохраняются, линии сохраняют своё направление.
Гельмерта - алгоритм аналогичный линейному, однако помимо смещения и масштабирования он может поворачивать карту на определенный угол.
Полиномиальная трансформация 1 степени - масштабирует, подворачивает растр, а также может неравномерно сдвигать изображение по одной из осей, при этом искажаются углы, но сохраняется параллельность линий. Наиболее оптимальна для привязки крупномасштабных карт и планов на карту Google или Яндекс через опорные точки.
Проективная трансформация - похожа на полиномиальную (1 степени), однако параллельность линий не сохраняется. Подходит для перехода из одной простой проекции в другую, например, из простой конической в простую цилиндрическую. Применяется для привязки отфотографированных (не сканированных!) карт, или снимков ДЗ, полученных при перспективной съемке (например снимки программы CORONA).
Полиномиальная трансформация 2 степени - нелинейно деформирует исходное изображение по одной из осей. Является самым оптимальным вариантом трансформации любых карт с т.з. минимизации искажений при максимальной точности привязки.
Полиномиальная трансформация 3 степени - нелинейные деформации применяются к обеим осям карты. Рекомендуется использовать в том случае, когда полином 2 степени не дает требуемой точности (например при привязке трехверстовых топографических карт Российской Империи).
Тонкостенный сплайн - метод, основанный на локальном смещении пространства карты вокруг точки привязки. Обладает следующими особенностями:
степень искажений нелинейно увеличивается при удалении от точки привязки,
характер искажений сильно зависит от плотности и распределения точек привязки,
математическая оценка точности для этого алгоритма не проводится.
Данный тип трансформации рекомендуется использовать только в том случае, если другие методы не дают приемлемого результата из-за сильных искажений (мятая карта), или источник изначально не имеет географической привязки (снимок на фотокамеру с самолета).
10.21.2. Алгоритмы передискретизации¶
Масштабирование и трансформация растра требуют уплотнения или разряжения пикселей.
При этом создаётся новая матрица пикселей (растр), в которую записываются значения исходной матрицы по одному из следующих алгоритмов:
Ближайший сосед - самый быстрый алгоритм. Значение берется из ближайшего пикселя с известным значением.
Использует только те значения, которые встречаются в исходном растре.
Изображение не сглаживается, возможно появление артефактов в виде ступенек или ореолов.
Линейная передискретизация - использует 4 (2х2) ближайших пикселя исходного растра и рассчитывает значение итоговой ячейки с помощью линейной функции интерполяции.
Итоговые значения могут отличаться от исходного набора.
Изображение слегка сглаживается.
Кубическая и кубическая с b-сплайном - использует 16 (4х4) ближайших пикселей исходного растра и рассчитывает значение итоговой ячейки с помощью кубической/сплайновой функции.
Итоговые значения могут отличаться от исходного набора.
Изображение сильно сглаживается.
Ланцоша - использует 36 (6х6) ближайших пикселей исходного растра и рассчитывает значение итоговой ячейки с помощью фильтра Ланцоша.
Итоговые значения могут отличаться от исходного набора.
Изображение слегка сглаживается при сохранении четкости на контрастных участках, возможно появление артефактов в виде ступенек или ореолов.
Как выбрать алогритм передискретизации?¶
Метод передискретизации имеет смысл выбирать в зависимости от типа растра:
Индексированный растр
- подойдёт только ближайший сосед, иначе при трансформации получатся значения, не совпадающие ни с одним из индексов.Цветная карта/снимок
(в каждом пикселе - значение цвета, например, в RGB) - можно использовать все алгоритмы, но лучше всего подходит линейныйОдноканальный растр
(например, цифровая модель рельефа) - можно использовать любой алгоритм кроме ближайшего соседа, если нужно сохранить плавность переходов. Ближайший сосед можно выбрать, если критично важно сохранить исходные значения, и появляющаяся ступенчатость не принципиальна.Многоканальный растр
(пиксели содержат числовые значения определённого спектра, например, инфракрасного) - лучше всего подходит линейная передескритизация, но можно использовать и другие способы.