Как создать файл привязки растра

Обновлено: 02.07.2024


QGIS - современная, активно развиваемая пользовательская ГИС с открытым исходным кодом. В числе других функций этой программы - возможность географической привязки растровых данных. Эта статья является пошаговой иллюстрацией процесса привязки с помощью QGIS. Этот инструмент не идеален, но представляет вполне работоспособную альтернативу проприетарным пакетам для работы с ГИС.

Инструмент использует ряд преобразований реализованных через GDAL.

Перед началом работы, убедитесь, что:

  • Разделитель целой и дробной части в системе - точка, а не запятая, иначе возможно появление ошибки "Невозможно расчитать трансформацию", если привязка проходит без проблем, то разделитель можно не менять (замечено в Windows 7 64bit).
  • Названия рабочих папок и самих растров не содержат кириллицы и пробелов.

Оба этих совета носят рекомендательный характер и их стоит учесть, если у вас возникают проблемы при привязке. Вполне возможно, у вас не возникнет их не возникнет.

Растр используемый для примера в этой статье можно загрузить вот здесь.

Содержание

QGIS можно загрузить с официального сайта или установить с помощью установщика OSGeo4W (рекомендуется, описание установки). Модуль географической привязки данных называется Привязка растров (GDAL) (Georeferencer GDAL) и запускается через Модули\Привязка растров (Plugins\Georeferencer). Если этого модуля в меню Модули нет, необходимо сначала подключить его через Модули\Управление модулями (Plugins\Plugin manager).

Включение модуля привязки

А потом запустить:

После запуска модуля привязки появится окно привязчика данных разделенное на две части: часть данных и часть таблицы точек привязки. В самом начале, так как никаких данных еще не загружено, окно и таблицы пустые.

Для начала привязки, загрузим в вид данных привязываемый растровый файл, он может находится в любом распространенном графическом формате (gif, jpeg, tif и др.), для этого выберем Файл\Открыть растр. Если ваш файл не может быть загружен, обычно это является свидетельством особенности растра, необычного сжатия или цветовой системы, в этом случае - просто пересохраните его в формат TIF:

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

Точки создаются инструментом добавить точку (Add Point) . При этом исходные координаты привязываемого изображения получаются автоматически, а опорные (те, к которым осуществляется привязка, нужно откуда-то получить).

Источник координат может быть любой набор данных, сервис или что-то иное, где можно получить координаты в явном виде. Например, координаты можно получить:

  • С данных, которые уже загружены в область карты
  • Из третьего источника
  • С самого изображения

Внешним источником может выступать что угодно, коль скоро вы можете получить от него координаты. Например:

Если координаты находятся в формате отличном от dd.dddddd (десятичные градусы), их нужно будет к нему привести, прежде чем использовать для привязки. Этому посвящена отдельная статья.

В определенных случаях координаты явно прописаны на самом изображении. Это часто встречается на топокартах. В нашем примере точками привязки будут углы топокарты. Координаты мы будем получать, увеличивая соответствующие фрагменты и глазомерно считывая широту и долготу.

После увеличения нужного фрагмента и указания точки необходимо ввести соответствующие ей координаты:

В случае привязки растра к другим слоям (векторным или растровым), необходимо сначала загрузить нужные слои в основное окно QGIS. Затем, вместо ввода координат с клавиатуры, для задания координат опорных точек нужно выбрать кнопку С карты (From map canvas) и щелкнуть в нужном месте основной карты. В этом случае координаты опорных точек берутся с карты, которая может содержать любые другие слои, открытые в основном окне программы.

Для сохранения собираемых точек нужно выбрать Файл/Сохранить контрольные точки как . Они будут сохранены в дополнительный файл, имеющий такое же имя как и привязываемый + расширение points. Содержимое файла легко отредактировать в любом текстовом редакторе. Если, по некоторой причине, процесс расстановки точек пришлось прервать, то при следующей загрузке растра расставленные точки загрузятся вместе с ним. Для загрузки другого файла точек, нужно выбрать: Файл/Загрузить контрольные точки.

После расстановки необходимого количества точек, окно сбора точек должно выглядеть примерно так:

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

В QGIS доступно несколько методов трансформации растров, в том числе:

  • Линейное - аффинное преобразование, линейный сдвиг и масштабирование, пересчет (создание нового) растра при этом не происходит (поэтому пункт создания нового растра заблокирован), создается новый файл привязки;
  • Гельмерта - сдвиг и поворот, создается новый файл в формате TIF и файл привязки;
  • Полиномиальное 1,2,3 - полиномиальное преобразование первого, второго или третьего порядка. Требуют соответственно минимум 4, 6, 10 точек. Создается новый файл в формате TIF и файл привязки; Рекомендуем использовать для быстрой привязки Полиномиальное преобразование 1 порядка, для более точной Полиномиальное преобразование 2 порядка (подробнее).
  • Thin plate spline - кусочно-линейное преобразование, аналогичное модели трансформации резинового листа (rubbersheet), используется в случае очень сильных локальных искажений исходного растра.

Для начала, рекомендуется пользоваться полиномиальной моделью соответствующей количеству созданных контрольных точек.

После получения нового растра, рекомендуется проверить точность привязки независимым или тем же набором точек и, если необходимо, вернуться к процессу привязки еще раз, удалив неудачно|неправильно поставленные опорные точки.

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

Как правило, форматы изображений, такие как ERDAS IMAGINE, BSQ, BIL, BIP, GeoTIFF и гриды, хранят пространственную привязку в заголовке файла. Однако, некоторые форматы изображений (включая перечисленные) хранят эту информацию в отдельном файле привязки ASCII. То, где хранится информация о пространственной привязке, часто зависит от возможностей программного обеспечения, используемого для создания файлов или предпочтений пользователя. Файлы привязки можно создать с помощью любого редактора, или вы можете экспортировать файл привязки наборов растровых данных с помощью инструмента Экспорт файла привязки растра.

Соглашения о наименовании файлов привязки

Файл привязки, относящийся к изображению, определить очень легко, он использует то же самое имя, что и файл изображения, с буквой w на конце. Например, файл привязки изображения mytown.tif будет называться mytown.tifw, а файл для изображения redlands.rlc - redlands.rlcw. Иногда соглашение о наименовании файлов может отличаться от указанного, при этом используется первая и третья буквы расширения файла изображения, к которым добавляется буква w. В этом случае, для mytown.tif, файл привязки будет выглядеть так mytown.tfw, а для redlands.jpg - redlands.jgw.

Если файл изображения не имеет расширения, или расширение имеет менее трех знаков, буква w добавляется в конце имени файла. В этом случае, файл привязки для изображения terrain будет выглядеть как terrainw, а для изображения floorpln.rs - floorpln.rsw.

Примеры имен файлов привязки

image.tfw или image.tifw

image.blw или image.bilw

image.jgw или image.jpgw

В ArcGIS 9.2 SP2, если преобразование не может быть записано в файл привязки, команда Обновить пространственную привязку с панели Пространственная привязка записывает данные о преобразовании в .aux.xml файл, а также записывает приблизительную аффинную трансформацию в текстовой файл или в файл привязки с буквой x, добавленной к расширению. Например, изображение формата TIFF с приблизительной аффинной трансформацией будет иметь расширение .tfwx. Имейте в виду, это не точное преобразование, а только приближенное.

Существует один случай, когда такой текстовой файл содержит истинную аффинную трансформацию. При выполнении команды Обновить пространственную привязку для набора растровых данных, который уже содержит координаты карты, записывается текстовый файл с расширением x. Например, если выполняется пространственная привязка изображения в формате TIFF, которое уже имеет координаты карты, команда Обновить пространственную привязку создаст файл с расширением .tfwx, который будет содержать истинную аффинную трансформацию.

Этот текстовый файл можно использовать в качестве файла привязки для ArcGIS 9.1 и стороннего программного обеспечения. Чтобы использовать этот текстовой файл, удалите букву x из расширения файла привязки. Поскольку такой текстовый файл не является частью набора растровых данных, его не следует использовать в качестве файла привязки в тех версиях ArcGIS, которые могут считывать файл .aux.xml, т.е. ArcGIS 9.2 и выше.

Как осуществляется доступ к пространственной привязке

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

  • Файл заголовка (если поддерживается типом изображения)
  • Файл привязки (будет использоваться в первую очередь, если вы включите опцию Использовать файл привязки для определения координат растра, которую можно найти в диалоговом окне Опции.)
  • Из данных строки/столбца изображения (тождественное преобразование)

Содержание файла привязки

Содержание файла привязки выглядит приблизительно так:

Если такой файл существует, ArcGIS выполняет преобразование координат изображения в координаты карты. Это преобразование является аффинной трансформацией с шестью коэффициентами в виде

Примечание:

Значение цены деления по y (E) отрицательно, т.к. точки отсчета изображения и географических координат различаются. Точка отсчета изображения расположена в верхнем левом углу, тогда как точка отсчета координат карты находится в левом нижнем углу. Номер строки изображения возрастает при движении от начальной точки вниз, в то время как значения y-координаты карты возрастают при движении от начальной точки вверх.

Параметры преобразования хранятся в файле привязки в следующем порядке:

Каждый из этих коэффициентов может быть определён как

Настройка ArcGIS для считывания файла привязки в первую очередь

ArcGIS автоматически считывает пространственную привязку, если она находится в заголовке таких файлов, как GeoTIFF, и, таким образом, игнорирует пространственную привязку, находящуюся в файле привязки. Вы можете изменить это поведение, включив опцию Использовать файл привязки для определения координат растра в диалоговом окне Опции.

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

Как правило, форматы изображений, такие как ERDAS IMAGINE, BSQ, BIL, BIP, GeoTIFF и гриды, хранят пространственную привязку в заголовке файла. Однако, некоторые форматы изображений (включая перечисленные) хранят эту информацию в отдельном файле привязки ASCII. То, где хранится информация о пространственной привязке, часто зависит от возможностей программного обеспечения, используемого для создания файлов или предпочтений пользователя. Файлы привязки можно создать с помощью любого редактора, или вы можете экспортировать файл привязки наборов растровых данных с помощью инструмента Экспорт файла привязки растра.

Соглашения о наименовании файлов привязки

Файл привязки, относящийся к изображению, определить очень легко, он использует то же самое имя, что и файл изображения, с буквой w на конце. Например, файл привязки изображения mytown.tif будет называться mytown.tifw, а файл для изображения redlands.rlc - redlands.rlcw. Иногда соглашение о наименовании файлов может отличаться от указанного, при этом используется первая и третья буквы расширения файла изображения, к которым добавляется буква w. В этом случае, для mytown.tif, файл привязки будет выглядеть так mytown.tfw, а для redlands.jpg - redlands.jgw.

Если файл изображения не имеет расширения, или расширение имеет менее трех знаков, буква w добавляется в конце имени файла. В этом случае, файл привязки для изображения terrain будет выглядеть как terrainw, а для изображения floorpln.rs - floorpln.rsw.

Примеры имен файлов привязки

image.tfw или image.tifw

image.blw или image.bilw

image.jgw или image.jpgw

В ArcGIS 9.2 SP2, если преобразование не может быть записано в файл привязки, команда Обновить пространственную привязку с панели Пространственная привязка записывает данные о преобразовании в .aux.xml файл, а также записывает приблизительную аффинную трансформацию в текстовой файл или в файл привязки с буквой x, добавленной к расширению. Например, изображение формата TIFF с приблизительной аффинной трансформацией будет иметь расширение .tfwx. Имейте в виду, это не точное преобразование, а только приближенное.

Существует один случай, когда такой текстовой файл содержит истинную аффинную трансформацию. При выполнении команды Обновить пространственную привязку для набора растровых данных, который уже содержит координаты карты, записывается текстовый файл с расширением x. Например, если выполняется пространственная привязка изображения в формате TIFF, которое уже имеет координаты карты, команда Обновить пространственную привязку создаст файл с расширением .tfwx, который будет содержать истинную аффинную трансформацию.

Этот текстовый файл можно использовать в качестве файла привязки для ArcGIS 9.1 и стороннего программного обеспечения. Чтобы использовать этот текстовой файл, удалите букву x из расширения файла привязки. Поскольку такой текстовый файл не является частью набора растровых данных, его не следует использовать в качестве файла привязки в тех версиях ArcGIS, которые могут считывать файл .aux.xml, т.е. ArcGIS 9.2 и выше.

Как осуществляется доступ к пространственной привязке

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

  • Файл заголовка (если поддерживается типом изображения)
  • Файл привязки (будет использоваться в первую очередь, если вы включите опцию Использовать файл привязки для определения координат растра, которую можно найти в диалоговом окне Опции.)
  • Из данных строки/столбца изображения (тождественное преобразование)

Содержание файла привязки

Содержание файла привязки выглядит приблизительно так:

Если такой файл существует, ArcGIS выполняет преобразование координат изображения в координаты карты. Это преобразование является аффинной трансформацией с шестью коэффициентами в виде

Примечание:

Значение цены деления по y (E) отрицательно, т.к. точки отсчета изображения и географических координат различаются. Точка отсчета изображения расположена в верхнем левом углу, тогда как точка отсчета координат карты находится в левом нижнем углу. Номер строки изображения возрастает при движении от начальной точки вниз, в то время как значения y-координаты карты возрастают при движении от начальной точки вверх.

Параметры преобразования хранятся в файле привязки в следующем порядке:

Каждый из этих коэффициентов может быть определён как

Настройка ArcGIS для считывания файла привязки в первую очередь

ArcGIS автоматически считывает пространственную привязку, если она находится в заголовке таких файлов, как GeoTIFF, и, таким образом, игнорирует пространственную привязку, находящуюся в файле привязки. Вы можете изменить это поведение, включив опцию Использовать файл привязки для определения координат растра в диалоговом окне Опции.

Описание специального файла для географической регистрации изображения.


Для того, чтобы установить систему отношений между внутренними пиксельными координатами изображения и реальными географическими или прямоугольными координатами в ПО ГИС может использоваться специальный файл называемый далее файлом географической регистрации. Файл регистрации может создаваться вручную или в процессе процесса географической привязки изображения, которая часто сопровождается его трансформацией из одной системы координат в другую.

Наличие подобного файла обуславливает способность программы совмещать растровый файл с материалами уже находящимся в определенной системе координат. Создание отдельного файла является альтернативой внедренной в растровый файл (embedded) привязки (например специальные тэги в формате GeoTIFF), главным отличием этих двух способов является выделение описания привязки в отдельный файл или "прописывание" описания в сам растр.

Внешний файл привязки имеет больший приоритет, таким образом, если вам растр имеет и внедренную привязку и внешний файл, в Arcview GIS ориентироваться в географическом пространстве он будет в соответствие с координатами из внешнего файла, внутренняя привязка будет игнорироваться.

Содержание

Для полного описания отношений пиксельных координат географическим достаточно 6 параметров:

A - масштаб растра по оси X; размер пиксела по оси X (например в 1 единице растра - 20 метров)
B - масштаб растра по оси Y; отрицательный размер пиксела по оси Y
C, D - параметры поворота (обычно равны нулю)
E, F - параметры сдвига; X,Y координаты центра верхнего левого пиксела

Отрицательное значение размера пиксела по оси Y объясняется разницей между началом координат изображения и географической системы координат. В изображении начало находится в левом верхнем углу, в географической системе координат - в левом нижнем.

Пример содержания типичного файла привязки:

20.0000000000000
0.00000000000000
0.00000000000000
-20.000000000000
424178.117
4313415.907

A
C
D
B
E
F

При отображении растрового файла в географическом пространстве Arcview производит 6-ти параметрическое, аффинное преобразование координат, при ненулевых параметрах C,D собственно пересчета значений растра не происходит:

x1 = Ax + Сy + E
y1 = Dx + By + F

x,y - исходные файловые координаты растра (x - колонка, y - ряд).

Если вы уверены, что отсканированный материал не имеет искажений и точно знаете в какой системе координат он находится, точно знаете координаты левого верхнего угла изображения, масштаб и разрешение с которым было отсканировано изображение, то достаточно быстро можно вычислить чему соответствует один пиксел на местности (пространственное разрешение) и создать необходимый файл привязки. В этом случае можно обойтись без вычисления или подбора коэффициентов C и D.

Если ваш растр в добавок ко всему вышеперечисленному - наклонен на определенный угол или имеет некоторые другие линейные искажения, то также придется вычислить или подобрать коэффициенты C и D. Следует иметь в виду, что при этом изменение самого растра не происходит, используя world-файл с параметрами поворота, растр поворачивается только визуально.

Имя файла привязки должно быть равно имени растрового файла, для которого создается файл привязки.

Существует три способа задавать расширение файла привязки. Распознавание того или иного названия расширения зависит от ПО, QGIS, например, распознает все три типа названий, а Arcview GIS не распознает wld.

1. Расширение составляется из трех букв: первая соответствует первой букве расширения соответствующего растрового файла, вторая - третьей букве расширения, третья - буква w (world) (ESRI Knowledge Base).

файлу test.jpg будет соответствовать файл привязки test.jgw
файлу test.tif будет соответствовать файл привязки test.tfw

2. Расширение = wld

файлу test.jpg будет соответствовать файл привязки test.wld

Недостаток *.wld в том, что нельзя хранить файлы с разной привязкой и разном графическом формате, но с одним именем в одной папке, файл *.wld будет только один.

Читайте также: