Example: Georegister a Drone Photo

In this example, we take a raster image, a drone photograph in Everson, Washington, that was imported from an ordinary .jpg file, and we georegister it using a map that shows a Google Satellite view of the same region, casting the drone photo into Pseudo-Mercator projection.   We use previews to see how well the control points we have added will work, before creating a georegistered image.

 

Georegistration is the process of adjusting a raster image or vector drawing that has an unknown coordinate system to match the coordinate system and conformation of a known-good reference component.  Georegistration also is called georeferencing in some other GIS packages.

 

See a video version of this topic in the 5 Minute Tutorial - Georegister a Drone Photo video.

 

For our known-good reference, we will use a map called Map Target with one layer, a Google Satellite imageserver layer.    We use whatever names we want.  In this example we use a name with "target" for the destination map to help teach the standard nomenclature used in georegistration, where a source image or drawing with unknown coordinate system is cast into a target, known-good coordinate system.  

 

 

When doing georegistration it is convenient to arrange the source and target components we work with in two open, undocked windows, positioned on our Windows desktop so we can see both of them and work with both at the same time.    The illustration above shows our target component open in an undocked window that has been panned and zoomed to show our area of interest, the bridge over the Nooksack River in Everson, Washington.

 

The source component we want to georegister is a drone photograph, called EV_001 that we have imported from a .jpg file.  It is a completely unprojected file, an ordinary photograph with no coordinate system or location at all, exactly as snapped by the drone camera.   

 

 

Our example drone photograph is the subject of an article in ESRI's ArcUser online magazine that shows how to georegister raster images in ArcGIS Pro.   The image was acquired during a drone flight by public safety agencies in the United States and Canada as part of a training exercise.  We use it in this example to provide ESRI users and Manifold users an opportunity to compare georegistration workflow in the two systems.  See the article for a download link to the data, currently at this URL (third party links may change).

 

Our task is to georeference the EV_001 image, so we can use it in a GIS context.  

Add Control Points to the Source Image

We begin by adding control points to the source image.

 

 

With the focus on the open EV_001 image window, we choose Edit Control Points within the cursor mode button on the main Manifold toolbar.

 

As soon as we switch the cursor into Edit Control Points mode, the Register pane pops open (if it was closed), and if open and docked it moves to the top of the pane tab strip.

 

 

The Register pane opens with no control points in the list.  We will add some control points by clicking in the EV_001 image window.

 

 

We will place control points at distinctive locations that are clearly visible in both the source image as well as in the known-good, target map.   To facilitate placing control points accurately, we will right-click and drag to zoom into the region of the bridge where the asphalt road transitions to concrete road surface on the bridge.

 

 

In the zoomed-in view, we click on the upper end of the asphalt-concrete surface joint.

 

 

A control point appears at that location.

 

 

A new entry appears in the Register pane for that control point as well.  

 

 

We click again in the image window, to add a second control point.

 

 

The second control point appears in the Register pane as well, with the name automatically iterated and assigned.

 

 

We continue in this way, panning and zooming as desired to facilitate placement of control points, until we have added six control points.  The control points on the right side of the image are reasonably well distributed, while those on the left, for lack of distinctive features that are visible both in the image and in the map, are grouped close together.   We will see how well this arrangement of control points works.

 

Note that the labels for control points will automatically switch position relative to the control point to enable the label to stay in view when the control point is near the edge of the window.

 

 

The Register pane shows all of the control points we have added to the EV_001 window.

Add Control Points to the Target Map

We now add matching control points to the target map.   

 

 Note that the target map is a map component created in the main part of the project that has a Google satellite imageserver layer.  We can create the map together with the Google layer in one step using File - Create - New Map.   Using a map (instead of popping open a image in its own window from within a Google data source) ensures we are working in a read/write part of the project, which helps beginners avoid errors.

 

 

We click on the Map Target window and in the cursor mode button we choose Edit Control Points to switch the cursor into control point mode.

 

 

In the Register pane, we choose the EV_001 image as the source of control points.  All images or drawings that have had control points assigned in the project will be available as choices in the pull down menu.    The Register pane immediately loads with the control points placed in the EV_001 image, using default choices for Method and Render.  

 

None of the points in the list have a cross symbol to the right of their row, since none as yet have had a matching control point assigned in the map window.

 

 

We right-click-and-drag to zoom box into the region of the bridge that matches where we placed the first two control points in the EV_001 image.

 

 

We click to mark a position corresponding to the first control point in the EV_001 image.

 

 

A control point appears at that location.

 

 

In the Register pane, a cross symbol appears in the row for the first control point, to indicate a matching position has been marked in the target map.   The row cursor has also moved down to the next row, ready for marking the next matching control point position.

 

 

We click to place the next control point.  It appears in the in the map window.

 

 

In the Register pane, a cross symbol appears in the second row to indicate a matching position for that control point has been placed in the map window.  The cursor advances to the next row, ready for us to click the next control point in order.

 

We do not have to click control points in order as seen above, but the automatic movement of the row cursor makes it very quick and easy to click matching locations for control points in order.   If we prefer, we can click any of the unmarked rows in the Register pane and then click the matching position for that control point.

 

 

We continue in this way, panning and zooming as we like, to mark matching positions for each of the control points in the Register list.   It is convenient to keep the EV_001 image open in an undocked window so we can use that as a guide to know where to zoom in to place the next control point.  

Preview the Georegistration

Six control points accurately placed are generally plenty top georeference a nadir (shot from a drone to straight below) photograph.  

 

We do not have to see a preview, but previews are quick and they show what will happen using a given arrangement of control points, and a given choice of georeferencing method.   We can use them to see where georegistration is slightly off, and thus where we might want to add more control points, or where a different method in the Method box works better.

 

 

With the Method choice set to the default order 1, affine choice and the Render option set to the default choice of inverse, bilinear, we can now command a preview of what will happen in georegistration.

 

Press the Preview button.  

 

 

Manifold thinks for a moment, and then shows a preview of how the EV_001 image will be georegistered into the coordinate system of the Map Target window.   The preview appears in monotone shades of blue preview color.  A blue preview caption bar appears at the top of the window.

 

The georegistration is so good and the drone image so reasonably close to the satellite photography used by Google that at first glance it may appear that just a semitransparent blue rectangle has been overlaid on the map view.   But that is not a semitransparent rectangle, it is the georegistered EV_001 image appearing rendered in shades of blue.

 

Previews in the Register pane use the same preview technology and user interfaces as used in the Transform pane and the Select pane.    

 

 

For example, we can right-click the preview caption bar at the top of the window and choose Left to redraw the preview in split screen mode, showing the preview only on the left side of the screen.

 

 

We can drag the vertical divider line left and right to see less or more of the preview, and we can pan and zoom to see how the preview lines up with the Google background.

 

 

For example, we can zoom in and drag the vertical divider left and right to see how the preview road features line up with those in the Google background map.   We can see that even with only six control points the alignment is remarkably good.

 

 

If we would like to see what would happen using a different georeferencing method, we can choose it in the Method box and then press the Preview button again, to update the preview.

 

In the illustration above we have chosen forward, average for the Render process and 2, the default, for Pixel divisions.

 

 

That result is also very good.

Georegister the Image

When we decide that we like what we see in the preview, we can georegister the image.

 

 

We choose in the Method box whichever method we felt has the best results, and then we press Register to georegister the EV_001 image.

 

A new image, called EV_001 2 and associated table appear in the project.   Manifold always georegisters an image by writing the georegistered result to a new image using an iterated name, leaving the original image unmodified.   We can rename the resulting image if we prefer a different name.

 

 

We drag and drop the EV_001 2 image into the map, to see it is perfectly georegistered.   

 

 

The image is so well georegistered that it might seem to be a part of the Google Satellite background, so we quickly drop in a Google Streets webserver layer, to show that the EV_001 2 layer is, indeed, the georeferenced EV_001 image, placed correctly into the Pseudo-Mercator coordinate system and ready to use as we like in GIS projects.

Works with Any Raster Image

This example uses a drone photograph as an example raster image, but the workflow we have used works with any raster image.  For example, we can scan paper maps to create raster images, and then we can georegister those raster images for use in GIS projects.  That is a great way to make historical cartographic data available in modern GIS projects.

 

Notes

Back and forth is OK - The workflow in this topic shows all of the control points marked first in the source image and then we switch to the target map and mark all of the matching control points in that window.   We do not have to mark all control points in the source image and then do all of the matching control points.   If we prefer, we can switch back and forth between the two windows, marking one or two control points in the source image and then switching to the map to mark one or two matching positions in the map.  We must have placed at least one control point in the source window to be able to choose it as the source window in the target map, so we should always start by marking at least one control point in the source window.

 

Choose permanent features as control points - The source image and the target map may use imagery that was acquired years apart, so it is a good idea to choose features as control points that are not likely to have moved.   For example, choosing the locations of stripes or other road marks is risky, since the roads may have been repainted with those marks in different positions in different years.

 

Changing default control point names - Control points by default are named in a numeric series, P 1, P 2, P 3, and so forth.  If we prefer a different default name, such as CP or Control Point we can easily change that using Localization.   Edit the ValueRegisterCoord tag in the default.ui.txt file:

 

ValueRegisterCoord=P

 

Change the text after the = sign to whatever default name desired, such as

 

ValueRegisterCoord=CP

 

or

 

ValueRegisterCoord=Control Point

 

Save the file under a name that begins with ui, such as ui.cp.txt.   Place the saved file in the same folder as the manifold.exe and then in Tools - Options - User interface, choose cp in the pull down menu for Localization.  Press OK.  Restart Manifold and the new text given for the ValueRegisterCoord tag will be used for the default name of control points.    Short names are usually a better idea than long names.

 

A rose by any other name - Manifold uses one word, georegistration, to refer to the same process that is used for both raster images and vector drawings.   Manifold uses the same Register pane and the same workflow for both rasters and vectors.    ESRI uses two words, and two significantly different procedures, depending on whether a raster image or a vector drawing is being georegistered.   ESRI uses the word georeferencing when applied to raster images, but spatial adjustment when applied to vector drawings.   Georegistration and georeferencing are synonyms in Manifold.  

 

Videos

5 Minute Tutorial - Georegister a Drone Photo  - See the fast and easy way to georeference drone photos for use in GIS and online web mapping: Learn how to georegister (georeference) a drone photo to line up with Google imagery for full GIS use and for use within Google Maps and other web mapping applications. This video uses exactly the same drone photo used in ESRI's ArcUser example of how to georeference a drone photo in ArcGIS Pro. The difference is that using Manifold is faster and easier.

 

5 Minute Tutorial - Georegistration - In just five minutes we learn how to georegister (georeference) a vector drawing with an unknown coordinate system to a known-good map.  Georegistration is a key capability that allows us to cast raster images and vector drawings into geographic context, so they can be used as GIS layers in maps.  We can georegister aerial photos and drone photos, scan paper maps and georegister those for use in GIS, we can georegister CAD drawings, and we can rescue vector drawings and raster images that once had coordinate systems but were published in formats that failed to preserve coordinate systems.  Super!  Works in the free Viewer, too.

 

5 minute Tutorial - Georeference Many CAD Layers - Georeferencing CAD layers is a common task in any GIS. Manifold makes it a lot easier with fast, simple workflow that avoids extra effort and lets us recycle what we've already done.  This video shows how we can add a few control points just once and then georeference an entire stack of CAD layers imported from a DWG without adding more control points or repeating any work.  

 

Georeference a Scanned Paper Map - In only five minutes of actual work we use Manifold to georeference a 157 MB scanned paper map so it can be used as a layer in GIS.  The scanned map is a historic map showing Davy Crockett National Forest in Texas, downloaded from the Library of Congress website.  

 

Georegistration - Save and Load Control Points - Georegistration (georeferencing) in Manifold uses control points to match features visible in the raster image or vector drawing to be georeferenced with corresponding features visible in a known-good reference.  This video shows how with a single click we can save or load control points.  Because Manifold saves control points as ordinary vector drawings, we can take advantage of that to make mass changes to control points if we like.  In the video we use two versions of a scanned map, one with a gap in the middle and in the other where the gap is closed.  Control points that were placed in the version with a gap can be easily adjusted, dozens at a time, for use in the other version, saving a lot of repeated work.

 

Georeference a Historic Map using a List of Cities - Georeference a scanned paper map downloaded from the Library of Congress that shows slave populations in Southern States in the 1860 census.   The scanned map shows locations of cities, which we will use as control points.  We create a drawing to quickly mark the locations of cities in the scanned image.  Next, we download a modern map of cities in the US and their locations.  We can use the list of cities in the modern map as a source of control points for the target, saving us from having to enter them manually.  Manifold automatically matches names, ignoring those that are not needed, from the modern map during the georegistration process.  

 

Georeference a Whole World Image - See how to georeference an image scraped from the web that shows the geology of continents as they were 200 million years ago.

We mark four control points in the image, then we roughly mark four corresponding control in a Manifold map using Bing as a background layer.  In the Register pane we edit the coordinates of those control points to be even +/- 90 and +/- 180 degrees, and then we press Register.  Done!   The video also shows how we can import and georeference a second image similar to the first, without needing to add any control points, just re-cycling the ones we created before.  

 

See Also

Cursor Mode

 

Maps

 

Images

 

Drawings

 

Panes

 

Project Pane

 

Layers Pane

 

Info Pane

 

Register Pane

 

Select Pane

 

Style Pane

 

Transform Pane

 

Projections

 

Example: Georegister a Vector Drawing - We take a vector drawing with an unknown coordinate system that shows the provinces of Mexico and we georeference it to a map containing a Bing Streets web-served layer, casting the Mexico drawing into Pseudo-Mercator coordinate system.  We begin the process using only two coordinate points and then we do a preview to see where accuracy of the proposed georeferencing result should be improved by adding more control points.  We add more control points and then georeference the Mexico drawing with good accuracy.

 

Example: Georegister a Whole World Image - We make a screenshot of a map we see on the web that covers the whole world, from +/- 90 degrees of latitude and +/- 180 degrees of longitude.  The image shows the position and geology of continents as they were 200 million years ago.  We georeference the image using four control points placed at the  +/- 90 degrees and +/- 180 degrees corners, using a target map with a Bing streets background layer.  We use the Show Coordinates option in the Register pane to quickly set exact target control point locations.  As a bonus, we show how to knock out "background" pixels if our image is a palette image.

 

Example: Import AutoCAD DWG and Georeference - Neither AutoCAD DXF nor AutoCAD DWG format provide coordinate system information.  This example shows a typical case where documentation provided on the web site from which we have downloaded a DWG allows us to quickly and simply georeference the imported drawing.

 

Example: Import AutoCAD DXF and Georeference - Neither AutoCAD DXF nor AutoCAD DWG format provide coordinate system information.  This example shows a typical case where we import a DXF using an unknown coordinate system, but based on a lucky guess we accurately georeference the imported drawing.