Register Pane

The Register pane is used for managing control points and for georegistering images or drawings into desired coordinate systems, a process also known as georeferencing in some other GIS packages.   See the Georegistration topic for an overview.  

 

The Register pane works by matching control points that have been marked in two open windows, a source window that contains layers to be georegistered, and a target window that contains known-good layers that are to be used as a reference standard.  The same process in Manifold can georeference both images and drawings.  

 

See the 5 Minute Tutorial - Georegistration video for a quick start, as well as the step by step Example: Georegister a Vector Drawing and Example: Georegister a Drone Photo topics.

Launch, Docking, and Undocking

Switch to the Register pane by clicking its tab if it is open, by choosing Register in the View - Panes menu to launch the pane, or by using the keyboard shortcut Ctrl+4.    

 

Shift-click the pane's name tab to undock the pane.   Shift-click the title bar to dock it again, or right-click the title bar and choose Dock.  An undocked pane can be resized and moved anywhere on our Windows desktop.   Close a docked pane by choosing its tab and then pressing the X button to close.  Close an undocked pane by right-clicking the title bar and choosing Close.  

 

We can dock the pane to the left and right of our Manifold desktop by right-clicking the name tab and choosing Dock Right or Dock Left.    We can dock the pane in an upper or lower row in our Manifold desktop, above or below other panes, by right-clicking the name tab and choosing Dock Up or Dock Down.   

Control Points

Georegistration works by aligning visible features in the source component with corresponding, visible features in the target window.   Features to be used are marked by placing control points at their position.

 

 

To place control points in a window, with the focus on the window we choose Edit Control Points for the cursor mode button.    We can then click into the window and each click will place a control point.    Control points are marked with a blue cross cursor giving the position and a blue label giving the name of the control point.  

 

Blue color is used because when the cursor is in Edit Control Points mode it is in an editing mode, and blue color indicates objects that are in an editing mode in Manifold.     Control points are only visible when the cursor is in Edit Control Points mode, so they are always in editing mode.

 

Choosing Edit Control Points in the cursor mode button for a window will automatically pop open the Register pane if it is not open or hidden in the tab strip.   When we place a control point in a source or target window, the list of control points in the Register pane automatically will be updated.

 

Shortcut: Press Shift-C to launch Edit Control Points mode.

A Simple Process

Georegistration is a simple, three step process:

 

 

Many users prefer working with undocked windows so the source window and the target window can be positioned in sight next to each other, with an undocked Register pane also conveniently in sight.  Having both windows and the pane in view makes it easy to see how control points in the two windows correspond to each other and to the list of control points in the Register pane.

 

To georegister a drawing to a known-good map:

 

  1. Open the source window (the drawing to be georegistered).
  2. With the focus on the source window, in the main toolbar cursor mode button choose Edit Control Points.   The Register pane will pop open if it is not already open.
  3. Click onto a distinctive feature to place a control point there.  A new control point appears in the source window and in the list in the Register pane.
  4. Click onto other distinctive features to place additional control points. Pan and zoom as desired to place control points with better accuracy.  Each new control point appears in the source window and in the Register pane list with an automatically iterated name.  
  5. To alter the position of a control point, in the Register pane Ctrl-click on that control point and press the Delete button to delete it.  Next,  in the source window click the new location for that control point. It will be added in numerically correct named order.  Additional control points that will be clicked will also be added in numerically correct named order.
  6. Open the known-good, target map and position the window where it is convenient to see both the open source window and the target window.
  7. With the focus on the target map window, in the topmost box of the Register pane, choose the source window.   The drop down list will provide a choice of all open windows that have had control points added to them. The Register pane list will immediately be populated with a list of control points in the source window.
  8. With the focus on the target map window, in the main toolbar cursor mode button choose Edit Control Points.  
  9. In the target map window, click where the first control point should be placed, to correspond to the first control point in the source window   The control point will appear in the map window and a cross symbol will appear in the Register pane for the corresponding control point from the source drawing.  The row cursor in the Register pane will move to the next unmatched control point, ready for our next click in the target map window.
  10. Continue clicking locations for control points to match those in the source drawing.  A cross symbol will appear in the row for each corresponding point in the list from the source drawing, and the row cursor will move to the next unmatched control point in the Register pane.
  11. To alter the position of a control point in the target map, in the Register pane click on that control point to move the row cursor onto that control point.  In the target map window, click the new location for that control point. The control point will move to the clicked position, and the row cursor in the Register pane will move to the next unmatched control point, if there are any unmatched control points.
  12. Add control points until all control points in the list have been matched with control points placed in the target map window.
  13. If the drawing is the only layer in the source window, it will appear in the Register box as the component to be georegistered.  If there is more than one layer in the source window, choose the drawing in the Register box.
  14. Choose a georegistration method in the Method: box.  
  15. Press Preview to see a preview in the map window how the source drawing will be georegistered.  
  16. Press Register to georegister the source drawing.  The result will be saved into a new, iteratively named drawing and table. The original source drawing is not modified.

 

Georegistering an image to a known-good map uses the same procedure as the above.

 

Begin by using a smaller number of control points and seeing what will happen using Preview, panning and zooming into various details of interest to see how well the preview looks.   We can go back and forth between the source and target drawing and the Register pane will adjust to whichever window has the focus, allowing us to add more control points to the source drawing window and then, switching to the target map window we can add matching control points for the new control points added to the source drawing.

 

For step by step examples, see the Example: Georegister a Vector Drawing and Example: Georegister a Drone Photo topics.

Resulting Coordinate System

Georegistering a drawing sets the coordinate system of the resulting drawing to that of the target window.  Local scales are set to 1 and local offsets are set to 0.

 

Georegistering an image sets the coordinate system of the resulting image to that of the target window.  Local scales are adjusted to produce approximately the same number of pixels as in the original image.  Local offsets are set to the left-bottom corner of the image.  Pixels in the new image are forced to be square (same size in both X and Y).

Using Snap

When placing control points, Snap works just the same as when editing drawings.   Pressing the spacebar will toggle snapping on and off, and a right-click will bring up a context menu to set snapping options.   When snapping is on, an outer box cursor appears around the control points mouse cursor.

 

Keep in mind the useful snap option to Snap to Active Layer Only.    If we turn off Snap to Active Layer Only, we can snap the placement of control points to any vector object in any layer in the map.   That is very useful if we are placing control points in a target map that may have a mix of raster and vector layers.   

 

For example, if the target map has a vector drawing layer of building footprints and also a satellite image layer, we might snap exactly to the corner of a building when placing a control point for that building corner that might be visible in the source window but not visible in the target map window due to the building being covered by summer foliage.

Manage Control Points in the Register Pane

The Register pane automatically adjusts to the window that has the focus.  Click a different window to move the focus to that window and the pane adjusts to handle control points in that window, automatically configuring itself for either a source window or a target window, depending on the choice made in the topmost box of the Register pane.  

 

 

 

 

 Work with layers in map windows.  We can use a web served layer such as Bing Streets or Google Satellite as a target layer, but it is best to do so by using that layer within a map that is created in the main body of the project.    Doing that automatically places the context of work in a read/write part of the project, which helps beginners avoid errors.

 

Save control points frequently using the Saved Control Points toolbar button.  When source or target windows are closed, the control points marked in them disappear.  We can get them back instantly if we have taken a moment to save them.

 

 

The illustration above shows the Register pane with a focus on a source window to which nine control points have been added.  The topmost box reads (current window) because the control points listed are for the current window, and are not brought in from an associated source.

 

 

When the focus is a target window, the Register pane automatically provides controls for georegistering a vector drawing or a raster image, adding an additional Render box for an image, and an additional Pixel divisions box when forward, average is picked as the Render option.

 

The illustration at left above shows the Register pane with a focus on a target window, for which a source window, a drawing called Mexico Source, has been picked in the topmost box.  Control points from the source, Mexico Source drawing window have automatically been loaded for matching in the target window.   Seven of the nine points have had a matching control point added in the target window, indicated by a cross symbol for those seven control points in the list.  Matching control points in the target window have yet to be added for the last two control points in the list.

 

The illustration at right above shows the Register pane for a target window when the source window is a raster image called EV_001.  

Controls

The list of control points in the Register pane is managed using the same moves used in lists in other Manifold panes.   For example, we select or deselect a control point in the list by Ctrl-clicking it.   We can select a range of control points in the list by Ctrl-clicking the first and then Shift-Ctrl-clicking the last and those control points and all in between will be selected.

 

(source of control points)

The Register pane treats all windows as source windows when they are first opened.  We can make a window a target window by choosing a source window in the topmost box as a source of control points.

 

The topmost box provides a pull down list of open windows in the project that have had control points added to them, as well as a default choice of (current window).   If no control points have been created within any of the currently open windows, the only choice will be (current window).

 

The choice in the topmost box indicates the source of the control points listed in the Register pane, and configures the pane to work either with a source window or with a target window.

 

  • If (current window) appears, that means the control points in the list come from the context window itself.  They do not come from some other source window.  That is the setup for a source window, which contains layers that will be registered to match some other, known-good, target window.

 

  • If the name of some other window appears in the topmost box, that other window is the source of the listed control points.  That is the setup for a target window, which takes a list of control points defined in a source window and assigns matching control points in the target to guide georegistration.

 

With the focus on a window intended to be used as a target window, choosing a source window in the topmost box will associate that source window with the current window.  The Register pane will load control points from the specified source window and will configure itself for work with a target window, matching control point positions in the target window to the associated control points in the specified source window.

 

If we choose a different source window in the topmost box, any matching control points we have assigned will be cleared, allowing us to assign new matching control points to the new source window that is now assigned.

 

If the chosen source window is closed, the control points list will clear and the window will go back to default status as a source window.

 

Saved Control Points

Save control points to a new drawing or load control points from an existing drawing.   Drawings in the project with saved control points will appear in the list as single-click choices for loading control points.

 

Repeated saves will save to new drawings with an iterated numeric postfix, as in Control Points 2, Control Points 3, and so on.

 

Control points are saved into a new drawing within the same data source as the window from which they are saved.  If that data source is a read-only data source, the control points cannot be saved.   Avoid that problem by always working with source or target windows that are map windows, for maps created in the main part of the project.   More experienced users, of course, should feel free to work with source or target windows from within read/write data sources, such as other .map projects that are linked into the current project.

 

When source or target windows are closed, the control points marked in them disappear.  To avoid losing work, we should save control points frequently.

Delete

Delete selected control points from the window.  Enabled when one or more control point rows are selected.  Ctrl-click a row to select it or to deselect it.

Choose the list style for displaying the list of control points:

 

  • Show Marks - (the default) shows the control point name, a coordinate mark (icon), and an off/on toggle box.

  • Show Coordinates - shows the control point name, X coordinate, Y coordinate, and an off/on toggle box.  X and Y coordinates are shown in whatever is the coordinate system of the window, and can be edited.  Double-click into an X or Y coordinate box to edit that coordinate.

  • Show Errors - shows the control point name, the root mean squared error for that control point, and an off/on toggle box.  Applies when the Register pane is showing control points for a target component.  Any changes to control points (adding or deleting control points, changing their coordinates, toggling them on or off) as well as changes to the registration method automatically update error values. Error values are scaled to the unit of measure used by the target coordinate system.  For example, if the target coordinate system uses feet as the unit of measure, the error values will be in feet.  Choosing Show Errors will also add a Total error (RMS) value at the bottom of the list pane, that provides the total root mean square registration error, together with the unit of measure used.

 

Changing the list style will persist if the focus is switched to a different window.  For example, if the focus is on a target window and we choose Show Coordinates, if we change the focus to a source window the Register pane will continue using Show Coordinates style.

 

Tech tip:   Coordinate values are shown in whatever coordinate system is used by the map window.  To see coordinates as latitude and longitude degrees, use a map window that is in Latitude / Longitude coordinate system.  When using the Register pane, if we want to switch from a map that is not in Latitude / Longitude to Latitude / Longitude, first save the control points in use for that map window.  Next, in the Info pane assign Latitude / Longitude as the coordinate system for the map window.  Reload the saved control points and then they will appear as latitude and longitude values when we choose the Show Coordinates list style.   The ability to easily change how coordinate values are shown is yet another reason to always use a map window as the target window.

 

(list of control points)

The list of control points shown is taken from the source indicated in the topmost box.

 

  • When the focus is on a source window, (current window) will appear in the topmost box, meaning the control points in the list, if any, have been defined in the current window.  Adding or deleting control points in the source window will add or delete control point rows in the Register pane list.

 

  • When the focus is on a target window, the list of control points will automatically be pulled from the source window specified in the topmost box.  Any changes to control points in the specified source window will automatically be updated in the control point list shown in the Register pane for the associated target window.

 

We mark control points in source windows by choosing Edit Control Points as the cursor mode and then clicking at the location of each desired control point. A new control point will appear in the window and be added to the Register pan, automatically named in numeric sequence.  The row cursor in the Register pane will  move to the next open row, ready for us to add the next control point.

 

The control point list for target windows is pulled from the specified source window.  The row cursor starts out at the top of the list, on the first control point in the list, indicating that is the control point to be matched.   Using Edit Control Points as the cursor mode, we click into the target window to place a matching control point at the desired location.  As we do so, a cross symbol appears in that control point row, indicating it has been matched, and the row cursor moves on to the next, unmatched row in the list, ready for us to add the next, matching, control point.

 

  • To delete a control point in a source window, with the focus on the source window, Ctrl-click that control point row in the Register pane to select it, and press Delete.  The entire row will be deleted and the control point will disappear from the source window.

 

  • To delete a matching control point in a target window, with the focus on the target window, in the Register pane Ctrl-click that control point's row to select it, and press Delete.  The control point row will remain (it is defined in the associated source window), but the cross symbol will disappear from the row and the matching control point will disappear from the target window.  

 

  • To change the position of a control point in a source window, delete it and then place a new control point in the desired position.

 

  • To change the position of a matching control point in a target window, with the focus on the target window, in the Register pane click that control point's row to move the row cursor onto that row, and then in the target window click the new position for the matching control point.  The control point will move to that new position.

 

To rename a control point, with the focus on the source window,  in the Register pane double-click that control point name and rename it.  If the newly entered name is not unique, it is forced to be unique by adding a numeric postfix.  When we change the name of a control point in the Register pane for a source window, the names of control points automatically will be updated in the Register pane for any target window that uses that source window.

Click  the on/off box for a control point to toggle the control point off and on. Filled box = point displayed.  Empty box = point hidden.   Hidden points will not participate in a georegistration when the Register or Preview buttons is pressed.

 

A faint gray box appears with target windows for control points that have been defined in the associated source window, but which have not yet had a matching control point marked in the target window.   Those control points will appear in the target window when they are marked.

 

In a target window, when a control point is turned off, if the row cursor in the Register pane is on that row, we can still mark a new position for that control point by clicking in the target window.  The control point will immediately turn on.

Register

Appears for a target window.   Choose a layer within the source window to be georegistered.  The pull down list will contain a list of all layers within the source window specified in the topmost box of the Register pane.

Method

Appears for a target window.  Choose the georegistration method to be used.   Available methods are:

  • order 1, affine - A first order polynomial transformation to shift, scale, and rotate, including asymmetric alterations in X and Y axes.

  • order 1, projective - A generalization of affine, called projective in ESRI products.

  • order 1, shift + uniform scale - As above, but without any rotation.

  • order 1, shift + uniform scale + rotate - An affine registration with no shear and with scale forced to be the same scale in both X and Y.

  • order 1.5 (affine + cross-product) - Similar to order 1 but in addition adding some curvature.  

  • order 2 - A second order polynomial transformation allowing more curvature.

  • order 3 - A third order polynomial transformation allowing greater curvature.

  • thin-plate spline - A spline function that positions source control points exactly on matching target control points with smooth warping of positions between control points.

  • triangulation - An irregular triangulation that tends to align control points exactly between source and target while "rubber sheeting" content between control points.

 

The default registration method, order 1, affine, as well as the order 1.5 method can work with smaller numbers of control points.

 

Avoid using small numbers of control points with order 2 and order 3 methods, which are second (squared) and third order (cubic) polynomial transformations.  Those methods normally require at least 5 or six control points.  

 

Accuracy at control points is exact with the thin-plate spline method.  Accuracy in regions between control points will be improved when more control points are used.

 

The triangulation method requires at least three control points but usually requires many more control points for good results.  Triangulation  works both for images and for drawings even when the control points do not cover (enclose within the convex hull of the set) the entire image or drawing.

 

If a particular georegistration method cannot work with the set of control points that have been define, a preview will fail to appear.  We can therefore check readiness for any method by trying a preview.

Render

Appears when georegistering raster images.  Choose the rendering process used for generating pixels in the georegistered result image:

 

  • forward, average - The image is composed by traversing the source image, converting source pixels to the target, and computing a weighted average of the results. This is a sub-pixel transformation method that provides higher quality but which is  slightly slower.  

  • forward, nearest - As above but with nearest neighbor instead of averaging.  This is a new option developed to allow registering images with values that cannot be averaged.  It allows using any registration method, even if it is not invertible.

  • inverse, bilinear - The image is composed by traversing the target image, finding corresponding source pixels, and then using bilinear interpolation on their values.  This is a fast method that is the default and is good for most purposes.

  • inverse, bicubic - As above but with bicubic interpolation.

  • inverse, nearest - As above but with nearest neighbor, used when the image stores values like classification codes that cannot be averaged.

 

Inverse options are only supported for registration methods that are invertible: order 1, affine,  and other order 1 variations.

 

See the Notes section at the end of this topic for tips on choosing Render methods.

Pixel divisions

Appears when forward, average is picked for Render.  The Pixel divisions parameter controls quality by using more subdivisions of individual pixels: higher values produce results of higher quality, but are more computationally expensive, taking longer for the georegistration.  

 

One division splits each pixel into four quarters for computation.  Two divisions splits each pixel into nine sections.

 

A maximum of 8 pixel divisions are used even if the number specified is greater.

Register

Enabled for a target window.  The Register box pull down list will show all drawing and image layers in the source window: we can georegister any drawing or image layer in the source window.  

 

In the Register box, choose the drawing or image layer to be georegistered and then press the Register button to register that layer and to place the result in a new drawing or image component and associated table.   

 

The original component is not modified.  Manifold always writes the georegistered result to a new component.  The new image or drawing and its table will appear in the Project pane, named using a  numerically iterated version of the name of the source component that was georegistered.  For example, if we georegister a drawing called Mexico the result will be called Mexico 2.

 

If a new georegistered component does not appear in the Project pane, that means a georegistration solution cannot be computed for the current set of control points and method specified, for example, too few control points to allow a triangulation georegistration.   Add more control points or choose a different method, and check if a georegistration solution is possible with the new arrangement by clicking the Preview button.

Preview

Enabled for a target window.  Press the Preview button to show a preview in blue preview color of how the component specified in the Register box will be georegistered.   

 

If a preview does not appear, that means a georegistration solution cannot be computed for the current set of control points and method specified, for example, too few control points to allow a triangulation georegistration.

 

A preview is just a temporary view and does not change anything or create any new components.  A preview will persist until it is hidden.  A preview does not automatically update, so we can make changes guided by the preview and then update the preview when desired changes have been made.

 

A preview will stay in view until we hide it.  We can add or delete control points, add or remove  layers, pan and zoom, Alt-click objects to view attributes, and edit layers without losing the preview.  Press the Preview button  to update a preview after changing any parameters or control points in the pane.

 

Closing a preview:  Right-click the blue preview caption bar at the top of the window and choose Hide Preview.

 

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

 

See the Georegistration topic and the Example: Georegister a Vector Drawing and Example: Georegister a Drone Photo example topics for examples of previews.

Edit Query

Enabled for a target window.   Pops open a Command Window loaded with an SQL query that accomplishes the georegistration using the given source window, Register component, list of control points, and method option.   Running the query will create the same result as pressing the Register button in the Register pane.

Shortcuts and Selection

 

Ctrl-A

With the focus in the list of control points: select all control points.

Shift-Ctrl-A

Deselect all control points.

Ctrl-I

Invert the selection in the list: select all control points not selected, and deselect all those control points that were selected.

Spacebar

Toggles the current control point on/off.   Same as clicking the on/off box.

Click

Click a control point in the control points list to make it the context item in the list.  This moves the list cursor to that row.  This is mainly used with target windows to make a control point the context item, so that the next click to mark a matching control point in the target window will apply to that control point.

Ctrl-click

Ctrl-click onto a control point to select or to de-select that control point.

Shift-Ctrl-click

After Ctrl-clicking a control point to select it, Shift-Ctrl-clicking on another control point in the list will select both control points as well as all those in between.  This is a useful way to select a swath of many control points at once.

 

Showing / Hiding Control Points

Any control points that have been placed in a window will appear when we chose the Edit Control Points cursor as the cursor mode.  Choosing some other cursor mode will hide all control points.

 

We can also turn control points off and on by clicking the display check boxes in the Register pane.

 

 

For example, we can turn off the P 3 control point in the target window by clicking the check box for the P 3 row in the Register pane list.

 

 

The empty box in the list indicates the P 3 control point is hidden.   It does not appear in the Map Target window and will not participate in any georegistration if we press the Preview or Register buttons.   If we click the check box again, the P 3 control point will reappear.

 

 

Toggling off/on status for a selected control point will apply the resulting status of that point to all selected control points.   For example, in the Register pane we click the off/on box for one of the two selected control points (note that the selected control points and their labels are shown in dark blue in the target window).   

 

 

Both of the control points, P 5 and P 6, turn off.

 

 

Suppose, with the focus on the list of control points (click anywhere in the list), we press Ctrl-A to select all control points.   We click the off/on box for the P 6 control point, to turn that control point back on.

 

 

Whatever off/on command we apply to the selected control point will apply to all other selected control points as well.   Since the click on the P 6 off/on box turned on that control point, all other selected control points will also be turned on.   That turns on all of the control points that were off, and does not change the status (on) of those that were already turned on.  

 

A fast way to turn on just a few control points of many - Suppose we have marked 40 or 50 control points in a big georegistration project.  All of the control points are on by default.   We would like to turn on only three of them, and turn off all the rest.  The quickest way to do that is to select the three control points of interest by Ctrl-clicking them, and then to press Ctrl-I to invert the selection.  That will deselect the three we previously selected, and select all the other points.  We can then click the off/on box for any of the selected points to turn them all off at once.  

Selecting Control Points in a Map Window

With the focus on a source or target window, with the cursor in Edit Control Points mode, the usual mouse selection moves work to select control points.

 

 

For example, in the EV_001 source window we can Ctrl-drag a selection box around two of the control points.  

 

 

Both control points will be selected, appearing in the Register pane in red selection color and in the EV_001 window in dark blue color.  A Shift-Ctrl-drag box will deselect any selected points.   Ctrl-drag and Shift-Ctrl-drag boxes ignore labels and only use control point locations.   Control points selected in the map window are selected in the Register pane as well.

 

We can also select individual control points using Ctrl-click.  Shift-Ctrl-click deselects. We can click either the location of a control point or the label for that control point.

Deleting / Moving Control Points

Deleting or moving control points uses a slightly different procedure depending on whether we want to delete or to move a control point in a source window or in a target window.

Source Windows

To delete a control point in a source window, we select the control point by Ctrl-clicking it in the source window or in the Register pane list, and then we press the Delete button in the Register pane toolbar.   To move a control point in a source window, we first delete it and then we create it again in the source window at the desired new position.

 

 

We can select the point by Ctrl-clicking either the cross symbol marking the point or the label for the point.  If we wanted to select more than one control point at a time, we could use Ctrl-drag to draw a selection box enclosing the control points to be selected.  We will select the P 4 control point.

 

 

The selected control point appears in dark blue color in the source window (dark blue is the color used throughout Manifold for objects in editing mode that are selected), and in red selection color in the Register pane.   Press the Delete button in the Register pane toolbar to delete the selected P 4 control point

 

 

The control point is deleted in both the Register pane and the source window.   To place a control point of the same name (when using automatically numbered names) at a different position, in the source window we click at the desired new position.

 

 

A new control point appears at the position clicked.  The new point automatically is named in numeric sequence, filling in the missing P 4 name.

Target Windows - Moving Control Points

Because the list of control points in a target window automatically is pulled from the specified source window, control points in a target window are managed slightly differently than control points in a source window.   Without changing the list of control points (that can only be changed with the focus on the source window), we can change positions of control points in the target window that correspond to each control point in the list.

 

That allows a fast way to move the positions of matching control points in a target window.   Matching control points are assigned to the control point picked out by the row cursor in the Register pane.   With the cursor on a control point row, if we click in the target window, the control point picked out by the cursor immediately moves to the clicked position.

 

 

In the illustration above we have clicked the P 4 row in the Register pane, to move the row cursor onto that row.    In the target window we click on a new position.

 

 

Instantly, the P 4 matching control point in the target window moves to the new position that was clicked.   If we click again in the target window at some other position, the P 4 control point will move to that position as well.    If in the Register pane we click the P 5 row to move the cursor onto that row, then whenever we click in the target window the P 5 control point will move to the clicked position.

 

Picking a row in the Register pane and then clicking in the target window is a fast way of moving control points in a target window.   It does require paying attention to which control point in the Register pane is picked out with the row cursor.

Target Windows - Deleting Control Points

Deleting a control point in a target window is different than deleting a point in a source window, because in a target window the list of control points is taken from the specified source window.  We cannot delete one of the listed control points, but instead, we delete the matching control point in the target window that is assigned to a source control point.

 

To do that, we select the control point in the source window or in the Register pane list, and then we press the Delete button in the Register pane toolbar.   That leaves the control point row in the Register pane list, but it deletes the cross symbol in the row indicating a position has been assigned, and it deletes the control point symbol and label from the target window.

 

 

In the illustrations above, in the target window we Ctrl-drag a selection box around the P 4 and P 5 control points, to select them both.

 

 

The selected control points appear in dark blue color in the source window (dark blue is the color used throughout Manifold for objects in editing mode that are selected), and in red selection color in the Register pane.   Press the Delete button in the Register pane toolbar to delete the selected P 4 and P 5 control points.

 

 

The P 4 and P 5 control points disappear from the target map.  The rows for those control points remain in the list in the Register pane, but with the cross symbols (that indicate a position has been assigned) removed.     

 

 Important:  Note that the row cursor in the Register pane is still on the P 1 row.  If we click in the target window, we will move the P 1 control point to the clicked position.    If we want to assign new matching positions for the P 4 and P 5 control points, we should first click the desired row in the Register pane.

Saving and Loading Control Points

Pressing the Saved Control Points button in the Register pane toolbar will allow us to save the current list of control points to a new drawing.  

 

Control points are saved into a new drawing within the same data source as the window from which they are saved.  If that data source is a read-only data source, the control points cannot be saved.   Avoid that problem by always working with source or target windows that are map windows, for maps created in the main part of the project.   More experienced users, of course, should feel free to work with source or target windows from within read/write data sources, such as other .map projects that are linked into the current project. 

 

For example, suppose we have placed six control points in a source window called EV_001, seen below in a partial view.  

 

 

 With the focus on the EV_001 window, in the Register pane we press the Saved Control Points button and choose the Save Control Points command.  That command will be the only option if there are no drawings in the project that contain saved control points.

 

A new drawing, called Control Points, and its table appear in the Project pane, in the main part of the project.    We can pop open the new drawing and then use the Location button to pan and zoom it to the same location as the EV_001 window, to compare the contents of the new Control Points drawing with the position of control points in the EV_001 window.

 

 

The EV_001 window may not have a coordinate system assigned, besides the placeholder always used when coordinate systems are not yet assigned, but the new Control Points drawing uses exactly the same placeholder coordinate system, so it can be panned and zoomed to the same view.   Comparing the Control Points drawing to the EV_001 window, we see that the Control Points drawing has point objects at the same locations as the control points marked in the EV_001 window.

 

 

Opening the drawing's table, we see it contains a Geom geometry field for each point, and a Name field giving the name of each control point.  The table also contains an mfd_id identity field, and the table's schema includes indices for both the mfd_id field and the Geom field.

 

 

In the Project pane we right-click on the Control Points drawing and choose Properties, to see the drawing's Properties dialog.   

 

What marks this drawing as a drawing that saves control points is the presence of a FieldNameRegister property that gives the name of the field in the drawing's table, by default Name, that records the names of each control point.  Any drawing that contains points, which has a text field that gives the name to be used for each point, and which has a FieldNameRegister property giving the name of the text field can be used as a saved control points drawing.

 

It is a good idea to rename the Control Points drawing and table to a less generic name.  We use the Rename Related command in the Project pane to rename the drawing to EV_100 Control Points with an analogous name for the drawing's table.  

 

We now have a drawing in the project with saved control points.   It will appear as a choice in the top menu of the Saved Control Points button.

 

 

 If now, with the focus on the EV_001 window, we again press the Saved Control Points button we will see the EV_001 Control Points drawing appear as a choice in the top part of the pull down menu for the button.   We can load control points from that drawing by clicking that choice.

 

Any drawing in our project that has a FieldNameRegister property will appear in the list in the top part of the Saved Control Points button's menu.  We can load control points from any such drawing.    

 

If we have a drawing of points the positions of which we would like to use as control points, all we need do is add a text field that provides names for each of the points (if there is not one already) and then add a FieldNameRegister property that gives the name of that text field.   The drawing will then appear in the top part of the Saved Control Points button's menu, ready to be used as a source of control points.

Summary

 

For a video example of saving and loading control points, see the Georegistration - Save and Load Control Points video.

Changing the List Style

  Pressing the list style button allows us to change how control points are listed in the Register pane.

 

 

The default list style is Show Marks, which shows the control point name, a coordinate mark (icon), and an off/on toggle box.   Most illustrations in this user manual will use the default Show Marks style.

 

 

Choosing Show Coordinates will show the X,Y coordinates for each control point, listing the control point name, X coordinate, Y coordinate, and an off/on toggle box.  X and Y coordinates are shown in whatever is the coordinate system of the window, and can be edited.  Double-click into an X or Y coordinate box to edit that coordinate.

 

 

Choosing Show Errors will show the root mean square error for each control point given the current constellations of control points marked in the source and target windows and the other parameters used.   The Show Errors style lists the control point name, the root mean squared error for that control point, and an off/on toggle box.   Error values are in units of the coordinate system used by the target window.   The lower the error value, the better.

Error Values

The Show Errors option applies only when the Register pane is showing control points for a target window, since the root mean square error for each control point only makes sense for (and can only be computed for) the specific registration method that has been chosen.  If we change the registration method, the error values shown for each control point will be recomputed and updated automatically.   Any changes to control points, such as adding or deleting control points, changing their coordinates, or toggling them on or off also will recompute and update error values automatically.

 

Error values are scaled to the unit of measure used by the target coordinate system.  For example, if the target coordinate system uses meters as the unit of measure, the error values will be in meters.  Choosing Show Errors will also add a Total error (RMS) value at the bottom of the list pane, that provides the total root mean square registration error, together with the unit of measure used.

 

 

For example, if we use order 1, affine as the registration method, in the illustration at left above we see that root mean square errors are significant fractions of a meter and the total root mean square registration error is about a third of a meter.   That is because when using a first order polynomial affine georegistration the source window control points usually will not be moved precisely onto target window control point locations.

 

In contrast, if we change the registration method to thin-plate spline, as seen in the illustration at right above, we see that the root mean square errors have become so small that scientific notation is required to indicate how many zeros they are to the right of the decimal point.   That is because the thin-plate spline transformation moves source window control points directly on top (for all practical purposes) of target window control point locations.   A value like 6.78e-09 is about seven billionths of a meter, about one-tenth the size of a small virus, like a cold virus.   That is such an exact alignment that the thin-plate spline method is usually described as precisely matching source window control points to target window control point locations.

 

 

Choosing the triangulation registration method shows error values of zero, that is no error.  That is because the triangulation method begins by aligning source window control points exactly onto target window control point locations, not even allowing them to be a billionth of a meter off.  

 

A good way to use the Show Errors option is to check for positioning errors using a simple registration method, such as order 1, affine.   If some control points have dramatically different error values than other control points, that often indicates they were positioned in error.    Consider the following two sets of illustrations:

 

 

In the illustration above the control points marked in the target window have been marked with reasonable diligence onto the same features that are visible in both the source and the target window.  Control point P 4 has been selected with a Ctrl-click to call our attention to it with red selection highlighting.   In both the source window image and in the target window the P 4 control point is positioned on a junction between concrete and asphalt where a sidewalk ends.    The error value for P 4 is slightly higher than for the other control points, but not unreasonably so.  

 

 

In the illustrations above we have repositioned the P 4 control point in the target window very far from where it should be.   Note that the error value for P 4 in the Register pane list has jumped to 180 meters, dramatically larger than the error values for the other control points.   Error values have also become higher for nearby control points, since a first order polynomial affine algorithm cannot match those very well given the radically wrong position for the P 4 control point.    The total error is now over 84 meters.

 

When we see some error values in the Register pane that are dramatically higher than other error values, we should start with the largest one, selecting it, and then checking if that control point location in the target window has indeed been marked on the same feature used for the corresponding control point in the source window.    If it is in the wrong location, we should fix that and then, when the Register pane updates, move on to checking any other large error values that remain.

Editing Control Point Coordinates

Besides reporting the exact X and Y coordinates used for each control point, the Show Coordinates list option allows us to edit those values, to place control points exactly where we want them.   This capability is often when marking control point locations at locations that have been precisely measured, such as the intersection of latitude and longitude graticule lines, or at control point markers that appear in drone photos and which have been precisely surveyed.

 

Coordinates will be reported as X, Y values in whatever coordinate system is used by the context window.   If we want to manually edit coordinates, we usually will have coordinates in longitude and latitude pairs  (longitude is the X coordinate and latitude is the Y coordinate), and not in projected coordinates, such as long numbers for X and Y locations in meters in a Euclidean grid as used in Pseudo-Mercator or some other coordinate system.     So usually we will work with a target window that uses Latitude / Longitude projection.

 

 

 

The Show Coordinates option is illustrated above for a Map Target window that uses Pseudo-Mercator projection, the same projection as used by the Google satellite layer it shows.   The coordinates listed are the coordinates of each control point location in the native units (meters) of the Pseudo-Mercator coordinate system.    If we want to adjust the location of the P 4 control point to exactly some value we have measured with a survey grade GPS unit, we might prefer to enter the exact location using decimal degrees in a Latitude / Longitude coordinate system.   That is easy to do, and goes much faster than reading the following procedure.

 

Changing to Latitude / Longitude coordinates:

 

  1. Save the current set of control points used in the target window.
  2. In the Project pane, Copy the Map Target window and Paste, to make a copy.
  3. Rename the copy to something memorable, such as Map Target Lat / Lon.
  4. Open the Map Target Lat / Lon window.
  5. In the Info pane, assign Latitude / Longitude as the coordinate system for the Map Target Lat / Lon window.
  6. Use the Location button to zoom the Map Target Lat / Lon window to approximately the same location as the Map Target window.
  7. Load the control points previously saved.  They will now appear as longitude and latitude numbers.

 

 

Following the procedure above, we create a Latitude / Longitude version of the target map window that we call Map Target Lat / Lon.   Note that the Google satellite layer has been reprojected on the fly into the Latitude / Longitude coordinate system used by the map window, appearing in a vertically compressed, distorted view typical of Latitude / Longitude displays of satellite photography at the latitude of the illustrated scene (a town near the Northern border of Washington state, in the US).

 

With the focus on that map window we load the control points we saved and they appear in the Register pane with longitude and latitude values in decimal degrees when we choose the Show Coordinates option.    If we would like to see the full value of a coordinate, we can hover the mouse cursor over that coordinate and a tool tip will appear, giving the full value.

 

Suppose we would like to change the longitude value for the P 4 control point location to a more even -122.348 degrees?   That is easy to do.

 

 

Double-click the longitude value for the P 4 control point to open it for editing, just as we would with any cell in almost any Manifold row and column display, such as in tables.   We can then edit the value to what we want and press Enter to accept the edit.

 

 

The control point immediately moves to the new, specified location.  Note that it has moved slightly to the West, compared to the prior position.

 

See the Example: Georegister a Whole World Image topic and the Georeference a Whole World Image video for examples of editing control point coordinates to enable fast and accurate workflow.

 

Multiple Source and Target Layers

Windows are used as the context for placing control points because windows in Manifold can have multiple layers.  In the case of a source window we might have many different layers in that window that were imported from a CAD format, all of which must be georegistered the same way.   When we mark control points in the source window, we can georegister any layer in that source window using those control points.    That is extremely useful when we need to georegister several components in the same way, or when we have a stack of source layers where no single layer shows all of the features we would like to use to place control points.  In such cases we can mark control points within the overall map window, using any feature that is visible in any of the layers as a guide.

 

For example, we may have imported a CAD project showing a residential real estate development where many different CAD layers were used to show the locations of utilities, roads, sidewalks, parcel boundaries and similar.  All of them can appear together in the same map window, and all will need to be georegistered in the same way.   We may have a target window with a variety of layers, some of which show features in roads, while others may show utility markers or other features.   We can use a combination of layers in the source map window and in the target map window to mark a collection of matching control points of features that are visible in both windows.

 

In the case of a target window, we frequently will use several different layers to place control points, choosing and picking features that are visible in some layers but not in others to guide our placement of control points in the target window.   When layers appear together in a target map window, we know that even though each individual layer may use a completely different coordinate system from other layers, because they are all known-good and correctly georegistered, they all appear together correctly in the map window.   

 

We can georegister any drawing or image layer in the source window.  With the focus on the target window, in the Register pane the Register box pull down list will show all drawing and image layers in the source window.    We choose the layer to be georegistered in the Register box, and then we press the Preview or Register button as desired to either see a preview or to georegister the specified layer and to put the result into a new drawing or image component.

 

The control points marked in the source window do not disappear when we georegister one of the layers in that source window.  If we like, we can choose another layer from the source window in the Register box, and then press Preview or Register again.  That makes it easy to apply the same set of control points in an assembly line way to many layers in the source window.

 

See the 5 minute Tutorial - Georeference Many CAD Layers video for an example of the above.

Typical Uses for Georegistration

We often would like to use spatial data that has never been properly assigned a coordinate system, or has had an incorrect coordinate system assigned, or has been stored in a format that has erased the coordinate system once assigned.    To use that spatial data within GIS we must georegister it to assign the correct coordinate system.    

 

Classic examples of spatial data that must be georegistered:

 

 

 

 

 

Notes

Source windows used in a target window must be in the same data source or lower - Target windows can use as a designated source window any open window that has had control points added to it, so long as that open window is a component within the same data source as the target window or lower than it in the hierarchy.   One way to simplify that rule is to use is to use a map created in the project as a target window when working with external data sources, like layers in an image server data source.  Drag and drop into the map any layer from an external data source, like a Bing or Google image server, that we would like to participate in the target window.

 

One source window, multiple target windows -  A source window can be chosen as the source window in more than one target window, although that may be confusing for beginners.   We might do that if we have many different layers we would like to guide georegistration, and we find it convenient to arrange those many different layers in two or three different target map windows instead of having very many layers in just one target map window.  We could mark matching control points in one target window, save those control points and then load them into a second target window, and then continue marking a few more control points using features visible in layers in that second target window.  We can then save those control points and load them back into any other target window to be used to georegister layers in the same source window.

 

How many control points?  - The affine method requires only two control points in cases where a drawing or image simply needs to be repositioned, rotated, and scaled to be georegistered. The thin-plate spline method works better with more control points, usually ten control points, give or take a few, but can provide surprisingly good results with only a few control points.  Triangulation requires at least three control points.    Control points ideally should be placed so that the bounding box of the control points covers the region to be georegistered.  However, Triangulation works both for images and for drawings even when the control points do not cover (enclose within the convex hull of the set) the entire image or drawing.

 

1.5 is more than 1, less than 2 - The order 1.5 (affine + cross-product) registration method is a polynomial numeric method using the equation where a new X coordinate is X = aX + bY + cXY + d, with an analogous equation for the new Y coordinate.  Without the term for XY, the equation becomes that used for order 1, affine.  Adding terms for XX and YY, the equation becomes that used for order 2.

 

Render methods -   Inverse methods are faster than forward methods,  but forward methods are more accurate. Map windows use inverse methods for automatic reprojection, because the accuracy is more than good enough for dynamic screen display. For permanent reprojection it is better to use forward methods.

 

Pixel divisions - This parameter controls accuracy in the forward, average method.  The current default of 2 is a great sweet spot which gets most of the quality without giving up a lot of  processing time. Increasing pixel divisions to 3 or more will improve quality slightly, but there will be heavy diminishing returns in processing time. The jump from 2 to 3 has a much greater effect than the next jump from 3 to 4, and so on.  Processing times increase a lot as well.  If greater accuracy than 2 is desired, try 3 or 4 as an experiment.   The forward, nearest method also uses pixel divisions, but no Pixel divisions parameter box appears for the forward, nearest method since the parameter is internally set by the system.  The current value used internally is 2 divisions.  Future builds may vary that dynamically for different parts of the image.

 

Interpolation variations - The inverse, bilinear, inverse, bicubic, and inverse, nearest methods utilize bilinear, bicubic and nearest neighbor interpolations within the method. The forward, average and forward, nearest methods utilize averaging and nearest neighbor interpolation, respectively.

 

Nearest neighbor interpolation should be used whenever pixel values cannot be averaged, for example, if pixel values in an image represent classification codes, such as 5 = forest, 10 = water, 15 = unknown, and similar.  In such cases, averaging pixels for forest and unknown can produce water, which does not make sense, and averaging pixels for water and unknown can produce a value like 13.75 which does not match any classification code.  

 

If values in pixels can be averaged, it is usually better to use an interpolation option other than nearest.   For forward methods, there is only one alternative to nearest neighbor, and that is the forward, average method.  The forward, average method produces very accurate weighted averages. For inverse methods, the alternative to inverse, nearest is a choice between inverse, bilinear and inverse, bicubic methods.  The inverse, bilinear method is faster while the inverse, bicubic method is slightly more accurate.   However, the inverse, bicubic method tends to be used less frequently because usually when we want greater accuracy we go with forward, average.   If we use an inverse method that is usually because we want speed and care less about accuracy.  In that case, we tend to choose the inverse, bilinear method.  That is what map windows do when reprojecting on the fly, since they value speed and fine differences in accuracy are not visible given the resolution of dynamic screen displays.

 

Back and forth is OK - The workflow in steps in this topic describes first marking all of the control points in the source window and then switching to the target map to mark all of the matching control points in that window.   We do not have to mark all control points in the source window first and then second mark 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 window 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.

 

Georegistering labels - Labels components in Manifold are always based on a drawing, and labels layers always take their coordinate systems from the drawing upon which they are based.  To georegister a labels layer, we simply georegister the drawing layer on which the labels layer is based and the labels layer will automatically be georegistered the same way as well.

 

Timing - Georegistering a component in the Register pane shows the time it took to perform the operation at the bottom of the pane.  This helps confirm that pressing the Register button did have an effect in cases when the operation goes so fast that a progress dialog never appears.  Registering a component also logs the time elapsed for the operation in the Log window.

 

Staying on screen - When rendering the names of control points in the source window and the target window, the system will automatically move the name labels around the control points to try to keep them visible on screen.  For example, if we mark a control point very near the right edge of the window the name label will be painted to the left of the control point cross, but if we mark a control point very near the left edge of the window the name label will be painted to the right of the control point cross.

 

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.  Manifold reserves the term spatial adjustment for what starts happening at parties after the third or fourth shot of mezcal.

 

Videos

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 - 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 - 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

 

Select Pane

 

Style Pane

 

Transform Pane

 

Projections

 

Example: Georegister a Drone Photo - 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.

 

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.