Пространственная привязка космических снимков (QGIS3)

В уроке Georeferencing Topo Sheets and Scanned Maps (QGIS3) рассмотрен основной процесс пространственной привязки изображений в QGIS3. Этот способ предполагает считывание координат с отсканированной карты и их ручной ввод в качестве контрольных точек. Часто бывает необходимо привязать некартографическое изображение, или же карту, не имеющую напечатанных на ней координат. В этих случаях необходимо использовать для ввода координат иной источник, имеющий привязку. В этом уроке вы узнаете, как использовать открытые источники данных в процессе координатной привязки.

Обзор задачи

Мы привяжем аэроснимок высокого разрешения с использованием координат из OpenStreetMap.

Также вы научитесь

  • Загружать общедоступные снимки сверхвысокого разрешения.

  • Использовать тайловые слои в качестве картографической подложки.

  • Использовать модуль OSM Place Search в QGIS.

  • Устанавливать пользовательское значение no-data для слоя.

Получение данных

В этом уроке мы будем использовать снимки, полученные с воздушных змеев и шаров, собранные The Public Laboratory. На портале доступны привязанные версии изображений, но мы загрузим непривязанные изображения в формате JPG и привяжем их в QGIS. Если вам нравятся предоставленные снимки, вы можете посмотреть больше снимков в Google Планета Земля.

Загрузите JPG изображение Вашингтон-Сквер-парка в Нью-Йорке. Вы можете щелкнуть правой кнопкой мыши на кнопке JPG и выбрать Сохранить ссылку как....

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

newyorkcity-washingtonsquarepark.jpg

Порядок действий

  1. Мы будем снимать координаты для привязки, используя картографическую подложку OpenStreetMap. QGIS3 имеет встроенную поддержку тайловых слоев, которые также называют “XYZ-слоями”, поскольку состоят из отдельных фрагментов (тайлов), каждый из которых описывается тремя числами - координатами его местоположения (X, Y) и масштабом (Z). Слой OpenStreetMap может быть загружен из Панели Браузера, группа XYZ Tiles, для чего его необходимо перетащить в область карты. После загрузки слоя обратите внимание на систему координат и проекцию, которые указаны в правом нижнем углу окна приложения. Для слоя OpenStreetMap установлена проекция EPSG 3857 Pseudo Mercator. Важно помнить о данном параметре, поскольку координаты, которые мы снимем с карты в процессе привязки, будут именно в этой проекции.

../../_images/1.png

Примечание

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

  1. На изображении, которое мы будем привязывать, показан Washington Square Park в Нью-Йорке. Можно найти этот парк перемещаясь по карте и меняя ее масштаб. Однако такой подход непрактичен. Гораздо проще воспользоваться для поиска определенного объекта модулем “OpenStreetMap (OSM) Place Search”. Установите модуль “OSM Place Search”, воспользовавшись Менеджером Модулей Модули ‣ Управление и установка модулей... ‣ Все. Если вы не видите данный модуль среди результатов поиска, убедитесь, что у вас активирована настройка Разрешить установку экспериментальных модулей на вкладке Параметры. В разделе Использование модулей расширения приведена более подробная информация об использовании модулей в QGIS.

../../_images/2.png
  1. Once the plugin is installed, you will see a new panel called OSM Place Search.... Search for Washington Square Park in the Name contains.. box and click ->. You will see the matching place names appear in the results panel. Select the correct result and click the Zoom button.
../../_images/3.png
  1. You will see the map that is familiar and contains the landmarks that we can identify from the image. You may close the OSM Place Search panel now. If you need it again, you can open it from View ‣ Panels ‣ OSM Place Search.
../../_images/4.png
  1. Now it is time to start georeferencing. Launch the Georeferencer from Raster ‣ Georeferencer ‣ Georeferencer. If you do not see that menu item, you will need to enable the Georeferencer GDAL plugin from Plugins ‣ Manage and install Plugins ‣ Installed.
../../_images/5.png
  1. In the Georeferencer window, go to File ‣ Open Raster. Navigate to the downloaded JPG file and click Open.
../../_images/6.png
  1. In the next screen, you will asked to choose the raster’s coordinate reference system (CRS). Our source image is a plain JPEG file and doesn’t have any coordinate reference system atached to it, so you can click Cancel.
../../_images/7.png
  1. Before we start adding Ground Control Points (GCP), we need to define the Transformation Settings. Go to Settings ‣ Transformation settings.
../../_images/8.png
  1. In the Transformation settings dialog, choose the Transformation type as Polynomial 2. See QGIS Documentation to learn about different transofrmation types and their uses. As noted earlier, our basemap is in EPSG 3857 Pseudo Mercator CRS, so set that as the Target CRS. You can leave the Output raster name to the default and choose LZW as the Compression. Check the Use 0 for transparency when needed. Make sure the Load in QGIS when done option is checked. CLick OK.
../../_images/9.png
  1. Now click on the Add Point button on the toolbar and select an easily identifiable location on the image. Corners, intersections, poles etc. make good control points.
../../_images/10.png
  1. Once you click on the image at a control point location, you will see a pop-up asking you to enter map coordinates. Click the button From map canvas.
../../_images/11.png
  1. Find the same location in the reference layer and click at the precise point. The coordinates are auto-populated from your click on the map canvas. Click Ok. Similarly, choose at least 6 points on the image and add their coordinates from the reference layer.
../../_images/12.png

Примечание

Tip: When selecting a GCP on a building, always choose the bottom of the building. Many aerial and satellite imagery have leaning buildings, so choosing a point on the rooftop will introduce errors.

  1. Once you have added the minimum number of points required for the transform, you will notice that the GCPs now have a non-zero dX, dY and Residual error values. If a particular GCP has unusually high error values, that usually means a human-error in entering the coordinate values. So you can delete that GCP and capture it again.
../../_images/13.png
  1. Once you are satisfied with the GCPs, go to File ‣ Start georeferencing. This will start the process of warping the image using the GCPs and creating the target raster.
../../_images/14.png
  1. Once the process finishes, you will see the georeferenced layer loaded in QGIS. If all went well, you will see it nicely overlay the basemap.
../../_images/15.png
  1. To make the output look nicer, let’s remove the white border. Right-click on the image layer and choose Properties.
../../_images/16.png
  1. Switch to the Transparency tab. Add 255 as the Additional no data value and click OK.
../../_images/17.png

Примечание

8-bit images have pixel values in the range 0-255. 0 is black and 255 is white.

  1. Now you will see your georeferenced image nicely overlaid on the base layer.
../../_images/18.png
If you liked tutorials on this site and do check out spatialthoughts.com for more free resources.
comments powered by Disqus

This work is licensed under a Creative Commons Attribution 4.0 International License