Georeferențierea Foilor Topografice și a Hărților Scanate (QGIS3)

Multe proiecte GIS necesită georeferențierea unor date raster. Georeferențierea reprezintă procesul de atribuire a coordonatelor lumii reale pentru fiecare pixel al rasterului. De multe ori, aceste coordonate sunt obținute prin efectuarea de observații în teren - mai precis, prin folosirea unui dispozitiv GPS la colectarea coordonatelor unor entități ușor identificabile în imagine sau în hartă. În unele cazuri, atunci când urmăriți să digitizați hărți scanate, puteți obține coordonatele chiar din marcajele de pe hartă. Folosind aceste coordonate sau GCP-urile (Ground Control Points), imaginea va fi adaptată, pentru a se potrivi sistemului de coordonate ales. În acest tutorial, vom discuta conceptele, strategiile și instrumentele din QGIS necesare efectuării unei georeferențieri de mare precizie.

This tutorial is to geo-reference an image which has coordinates information available on the map image itself (i.e. grids with labels). If your source image does not have such information, you can use the method outlined in Georeferențierea Imaginilor Aeriene (QGIS3)

Privire de ansamblu asupra activității

Vom folosi o hartă scanată, din 1870, a sudului Indiei, pe care o vom georeferenția folosind QGIS.

Alte competențe pe care le veți dobândi

  • Cum stabilim datumul și sistemul de coordonate pentru hărțile vechi.

Obținerea datelor

Site-ul Hipkiss’s Scanned Old Maps are o colecție excelentă de hărți scanate, din domeniul public, pe care o puteți folosi în cercetare.

Descărcați Harta din 1870 a sudului Indiei și salvați-o ca imagine JPG pe hard disk.

Pentru comoditate, puteți descărca o copie a acestor date, făcând clic pe link-ul următor:

1870_southern_india.jpg

Procedura

1.Georeferencing in QGIS is done via the Georeferencer GDAL plugin. This is a core plugin - meaning it is already part of your QGIS installation. You just need to enable it. Go to Plugins ‣ Manage and Install Plugins and enable the Georeferencer GDAL plugin in the Installed tab. See Utilizarea Plugin-urilor for more details on how to work with plugins.

../../_images/130.png
  1. Plugin-ul este instalat în meniul Raster. Faceți clic pe Raster ‣ Georeferențiator pentru a-l deschide.

../../_images/227.png
  1. Fereastra plugin-ului este împărțită în 2 secțiuni. În secțiunea de sus se afișează imaginea, iar în cea de jos este prezentat tabelul GCP-urilor.

../../_images/319.png
  1. Acum vom deschide imaginea noastră JPG. Mergeți la File ‣ Open Raster. Navigați la imaginea, anterior descărcată, a hărții scanate și faceți clic pe Open.

../../_images/48.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/59.png
  1. You will see the image will be loaded on the top section. You can use the zoom/pan controls in the toolbar to learn more about the map.
../../_images/69.png
  1. Now we need to assign coordinates to some points on this map. If you look closely, you will see coordinate grid with markings. These are Latitude and Longitude grid lines.
../../_images/79.png
  1. Before we start adding Ground Control Points (GCP), we need to define the Transformation Settings. Go to Settings ‣ Transformation settings.
../../_images/89.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. Click Select CRS button next to Target SRS.
../../_images/99.png
  1. If you are geo-referencing a scanned map like this, you can obtain the CRS information from the map itself. Looking at our map image, the coordinates are in Latitude/Longitude. There is no datum information given, so we have to assume an appropriate one. Since it is India and the map is quite old, we can bet the Everest 1830 datum would give us good results. Search for everest and select the CRS with oldest definition of the Everest datum (EPSG:4042). Click OK.
../../_images/109.png

Note

Survey of India Topo Sheets created between the year 1960 and 2000 use the Everest 1956 spheroid and India_nepal datum. If you are georeferencing SOI Topo Sheets, , you can define a Custom CRS in QGIS with the following paramters and use it in this step. This definition includes a delta_x, delta_y and delta_z parameters for transforming this datum to WGS84. See this page for more information on the Indian Grid System.

+proj=longlat +a=6377301.243 +b=6356100.2284 +towgs84=295,736,257,0,0,0,0 +no_defs

Note

Most maps are created using a Projected CRS. If the map you are trying to georeference uses a projected CRS that you know of, but the graticules labels are in a Geographic CRS (latitude/longitude), you may use an alternate workflow to minimize distortion. Instead of using a Geographic CRS like we are using here, you can create a vector grid in QGIS and transform it to the projected CRS to be used as a reference for accurate coordinate capture. See this page for more details.

  1. Name your output raster as 1870_southern_india_modified.tif. Choose LZW as the Compression. Make sure the Load in QGIS when done option is checked. CLick OK.
../../_images/1113.png

Note

Uncompressed GeoTIFF files can be very large in size. So compressing them is always a good idea. You can learn more about different TIFF compression options (LZW, PACKBITS or DEFLATE) in this article.

  1. Now we can start adding the Ground Control Points (GCP). The intersections of the grid lines will serve as the ground-truth in our case. As the grid lines are labeled, we can determine the X and Y coordinates of the points using them. Click Add Point.
../../_images/1210.png

13 . In the pop-up window, enter the coordinates. Remember that X=longitude and Y=latitude. Click OK.

../../_images/139.png
  1. You will notice the GCP table now has a row with details of your first GCP.
../../_images/147.png
  1. Similarly, add at least more GCPs covering the entire image. The more points you have, the more accurate your image is registered to the target coordinates. The Polynomial 2 transform requires at least 6 GCPs.
../../_images/157.png
  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. You can also edit the coordinate values in the GCP Table by clicking the cell in either Dest. X or Dest. Y columns. 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/166.png
  1. Once the process finishes, you will see the georeferenced layer loaded in QGIS. The georeferencing is now complete.
../../_images/177.png

Note

The GCPs will also be displayed in the main QGIS Canvas. If you wish to remove them, you can switch to the Georeferencer window, and choose File ‣ Reset Georeferencer.

  1. It is a good practice to verify your work. How do we check if our georeferencing is accurate? In this case, you can load the boundary shapefile from a trusted source like the Natural Earth dataset and compare them. You will notice they match up pretty nicely. There is some error and it can be further improved by taking more control points, changing transformation parameters and trying a different datum.
../../_images/187.png
comments powered by Disqus

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