Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Географическая привязка данных в QGIS
QGIS - современная, активно развиваемая пользовательская ГИС с открытым исходным кодом. В числе других функций этой программы - возможность географической привязки растровых данных. Эта статья является пошаговой иллюстрацией процесса привязки с помощью QGIS. Этот инструмент не идеален, но представляет вполне работоспособную альтернативу проприетарным пакетам для работы с ГИС.
Инструмент использует ряд преобразований реализованных через GDAL.
Перед началом работы, убедитесь, что:
Разделитель целой и дробной части в системе - точка, а не запятая, иначе возможно появление ошибки "Невозможно расчитать трансформацию", если привязка проходит без проблем, то разделитель можно не менять (замечено в Windows 7 64bit).
Названия рабочих папок и самих растров не содержат кириллицы и пробелов.
Оба этих совета носят рекомендательный характер и их стоит учесть, если у вас возникают проблемы при привязке. Вполне возможно, у вас не возникнет их не возникнет.
Растр используемый для примера в этой статье можно загрузить вот здесь.
Содержание 1 Запуск QGIS и модуля привязки 2 Загрузка исходных данных 3 Расстановка точек привязки 3.1 Источники координат 3.1.1 Координаты с уже загруженных привязанных данных 3.1.2 Координаты из внешнего источника 3.1.3 Координаты с самого изображения 3.2 Создание точек 4 Трансформация |
[править]Запуск QGIS и модуля привязки
QGIS можно загрузить с официального сайта или установить с помощью установщика OSGeo4W (рекомендуется, описание установки). Модуль географической привязки данных называется Привязка растров (GDAL) (Georeferencer GDAL) и запускается через Модули\Привязка растров (Plugins\Georeferencer). Если этого модуля в меню Модули нет, необходимо сначала подключить его через Модули\Управление модулями (Plugins\Plugin manager).

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

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

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

[править]Расстановка точек привязки
Дальнейшая работа по сбору точек привязки происходит в области с загруженным растром, поэтому вы можете захотеть его максимально увеличить. Процесс привязки заключается в создании нескольких опорных точек, для которых известны их реальные координаты.
Точки создаются инструментом добавить точку (Add Point)
. При этом исходные координаты привязываемого изображения получаются автоматически, а опорные (те, к которым осуществляется привязка, нужно откуда-то получить).
[править]Источники координат
Источник координат может быть любой набор данных, сервис или что-то иное, где можно получить координаты в явном виде. Например, координаты можно получить:
С данных, которые уже загружены в область карты
Из третьего источника
С самого изображения
[править]Координаты с уже загруженных привязанных данных
Дописать
[править]Координаты из внешнего источника
Внешним источником может выступать что угодно, коль скоро вы можете получить от него координаты. Например:
Координаты собранные в поле с помощью GPS
Координаты из интернет-карт: osm. org, maps. и т. д.
Координаты из документов
Если координаты находятся в формате отличном от dd. dddddd (десятичные градусы), их нужно будет к нему привести, прежде чем использовать для привязки. Этому посвящена отдельная статья.
[править]Координаты с самого изображения
В определенных случаях координаты явно прописаны на самом изображении. Это часто встречается на топокартах. В нашем примере точками привязки будут углы топокарты. Координаты мы будем получать, увеличивая соответствующие фрагменты и глазомерно считывая широту и долготу.
[править]Создание точек
После увеличения нужного фрагмента и указания точки необходимо ввести соответствующие ей координаты:

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

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

После получения нового растра, рекомендуется проверить точность привязки независимым или тем же набором точек и, если необходимо, вернуться к процессу привязки еще раз, удалив неудачно|неправильно поставленные опорные точки.
Эта статья на простом примере иллюстрирует как зарегистрировать географически растровый слой - картинку. В этой статье мы используем термин "зарегистрировать", а не "привязать", чтобы учесть некоторое тонкое отличие. Обычно под географической привязкой понимают процесс сбора контрольных точек на изображении и опорных данных. В нашем случае, ничего собирать мы не будем, а просто изучим размеры изображения и зарегистрируем растр с помощью так называемого world-файла. Его устройство подробно рассматривается в отдельной статье. На самом деле, это не общепринятое терминологическое различие.
Суть работы заключается в создании специального файла регистрации примерно такого вида. Это обычный текстовый файл, который имеет такое же название как картинка и расширение wld.
20.0000000000000 | A |
Для примера возьмем одну из картинок из набора данных по хлорофиллу (источник). Эти данные в явном виде не имеют географической привязки. Это означает, что если мы загрузим их в ГИС, то ГИС ничего не будет знать о том, где они находятся на самом деле.
Попробуем (для примера будем использовать свободную ГИС QGIS, но действия дальше могут выполняться и где угодно еще).

Абстрактные координаты 1763,-699 в строке статуса говорят нам, что QGIS не знает где географически находятся наши данные, чтоб обычно означает, что у них отсутствует правильный файл привязки (подробнее).
Но мы можем легко узнать на изображении очертания континентов. Как же сделать так, чтобы ГИС показывала правильные координаты и чтобы мы смогли наложить на нее свои, уже привязанные, данные?
Создадим файл привязки.
Для начала поймем каковы размеры растра в пикселях по ширине и высоте или другими словами, сколько у него рядов и колонок.
Чтобы это узнать можно использовать любой графический редактор или мы можем сделать это в самой ГИС. В QGIS для этого достаточно открыть свойства растра.

Информация о свойствах растра говорит, что наш растр шириной 4320 пикселей и высотой 2160. Зная это легко расчитать географический размер пикселя по широте и долготе. Мы предполагаем, что растр на самом деле находится в географической системе координат.
Расчитаем для начала размер пикселя, для этого разделим расстояние по долготе на количество пикселей:
360/4320 = 0.08333333
обычно пиксель квадратный, т. е. по широте он должен иметь тоже значение, но пиксель бывает и прямоугольным, поэтому убедимся какого он все-таки размера в нашем случае:
180/2160 = 0.08333333
Таким образом, пиксель все-таки квадратный и размер его 0.08333333 на 0.08333333 градуса, что, кстати примерно соответствует разрешению в 1 км.
Итак, первые четыре параметра у нас определились, они выглядят так:
0.08333333
0.00000000000000
0.00000000000000
-0.08333333
?
?
Определимся с последними двумя, показывающими привязку верхнего правого пикселя. Судя по тому, что у нас изображение показывающее весь земной шар, то резонно будет предположить, что верхний правый пиксель будет иметь координаты -180 по долготе и 90 по широте. Попробуем их подставить в наш world-файл:
0.08333333
0.00000000000000
0.00000000000000
-0.08333333
-180
90
Удалим и перезагрузим растр в QGIS:

Как видим, координаты приобрели осмысленные значения похожие на широту-долготу. Чтобы окончательно убедиться, что растр зарегистрирован правильно, добавим еще один слой, например береговые линии (bnd-coast-l) из VMap0.
Вот как выглядит северная оконечность о-ва Мадагаскар.

Вполне прилично и растр уже можно считать географически зарегистрированным. Но есть еще одно улучшение, которое можно сделать.
Обратим внимание на верхний левый пиксель, для этого наложим какой-нибудь слой, охватывающий весь земной шар, например разграфку данных SRTM (северные широты в ней также присутствуют).
Вот как это будет выглядеть:

Как можно видеть, растр смещен. Это произошло потому, что привязка world-файлов на самом деле осуществляется к центру пиксела, а не к его вернему левому углу (-180, 90), соответственно, для последних двух значений файла регистрации нужно взять их же, но уменьшенные на половину пикселя:
180-0.08333333/2 = 179.9583
90-0.08333333/2 = 89.95833
Таким образом результирующий файл регистрации будет таким:
0.08333333
0.00000000000000
0.00000000000000
-0.08333333
-179.9583
89.95833
Это окончательно зарегистрирует данные там, где нужно. Вот наш верхний левый угол:

А вот наш Мадагаскар:



