How to GeoReference Vector Data...

Steps for using Spatial Adjustment Tools to Align Vector Data
to Real-World GIS Coordinates in ArcMap


Back to the   GIS Tutorials & Help Page...                         Back to the   SAL Home Page...


NOTE: EGEO-450 students, see additional notes PRIOR to attempting to use the Spatial Adjustment tools detailed below...


See also Chapter 8 (Spatial Adjustment) of Editing in ArcMap.pdf



1. Set Up the Map Project

2. Use the Spatial Adjustment Toolbar to Add Links

3. Review the Links Table

4. Finalize Your Spatial Adjustment

Note: See optional methodology suggestion at the end of this document…


1. Set-Up the Map Project

  • Prepare an ArcMap project with relevant basemap data. These basemap GIS data layers will be the source of your ground control data – that which you will ‘snap’ the unadjusted vector data files to. (Throughout this document the unadjusted vector data files that you wish to assign coordinates to is referred to the ‘unadjusted data.’ The data your are using for your ground control, which already have real-world coordinates, is referred to as ‘real-world data.’) You want real-world data basemap layers that contain similar corresponding features as are found in your unadjusted data (for example, Buildings, Parcels, Roads, Cities, States, etc.). You could also use a point layer of GPS locations you have collected that match the features found in your unadjusted data. These ground control data layers can be either raster or vector, as long as they are in the appropriate coordinate system (of your choosing).
  • Verify that the ArcMap data frame is in the appropriate coordinate system (data frame Properties / Coordinate System tab)
  • Add the unadjusted data to your ArcMap project (make sure you are working on a COPY of your data, once adjusted (and saved), there is no way of going back if you are unhappy with the results…). You may get a warning message about these layers missing a spatial reference system. Click OK (we knew this already, that’s what we want to fix…).
  • Zoom to the extent of the unadjusted data (right-click / Zoom to layer).  Note that the lower-left corner of this data probably has coordinate values of 0-0 (the intersection of the equator and the prime meridian, or 0˚ latitude by 0˚ longitude if you are in lat-long, or the 0-0 point of whatever projected coordinate system your .mxd is using…).  This is because there is no coordinate system associated with this data.  It is stored in ‘raw’ or ‘board’ coordinates only.  It certainly does not ‘line up’ with any of your GIS data layers. The numbers associated with the unadjusted data are not coordinates at all, but simply numerical units (applied to the default unit of whatever coordinate system you are using).


2. Use the Spatial Adjustment Toolbar to Add Links

  • Add the Editor toolbar to your project.  (View / Toolbars / Editor)
  • Start Editing, choosing the data folder containing your unadjusted data as the workspace to be edited. (You may get a warning message about some data layers not being in the same coordinate system as the data frame, click OK and proceed.)
  • Now add the ‘Spatial Adjustment' toolbar to your project.  (View / Toolbars / Spatial Adjustment)
  • Under the Spatial Adjustment main drop down menu choose Set Adjust Data… and select the layer (or layers) that you wish to adjust. For multiple layers, check the box next to All features in these layers: and select the layers you wish to transform. Click OK. Make sure you have ONLY the layers you wish to adjust checked, otherwise you risk inadvertently ‘adjusting’ your real-world data into unknown (bad) coordinates.

·        Add ‘links’ to align the unadjusted data to the real-world GIS data

o     You’ll be making ample use of the zoom and pan tools to work your way back and forth between these two datasets, zooming in and out each time… (see optional methodology notes below)

o     Select the New Displacement Link tool (the icon with red and green crosses joined by an arrow) which is used to link your unadjusted data to the real-world GIS data (make sure you select the New Displacement Link icon and not the Attribute Transfer Tool icon, which are very similar looking…)

o     Click once on a recognizable feature on the unadjusted data (the starting point of an arrow-line will mark this location on the map), then click once on the corresponding location on the real-world basemap data (this will complete the arrow). Note that the line connecting the corresponding locatoins has an arrow on the to end of it (where you want to move your unadjusted data to...)

o     Repeat this process of choosing a location on your unadjusted data and then the corresponding location on the real-world GIS data again and again and again for a total of 5 to 15 points.  Select points distributed throughout the data set(s) – edges and middle if you can

o     You can (and should) be zooming in as close as you can for each and every link you create to get the best accuracy possible

o     Make sure you are correctly choosing the same feature/locaton in both data sets each time.

o     Make sure you always click on your unadjusted data location first before you click on your real-world data location (you always link from the unadjusted data to the real-world data). Clicking in the wrong order will greatly mess things up…

o     If you make a mistake (e.g., establishing a link in the wrong order of to-from) you can open the Links Table (see below), and identify, select and delete an offending link.


3. The Links Table

  • Behind the scenes, ArcMap has been building a table of links between the unadjusted data and real-world data.  This table holds X and Y coordinates of the unadjusted data link locations (in unknown unit counts) and real-world data link locations (in real-world coordinates).  Open this table by clicking on the View Link Table icon.
  • The table also presents the ‘residual’ error associated with each link.  This represents the distance in map units between the location of the unadjusted data point as calculated by the polynomial fit equation, and the location of the point as you specified when you clicked on the real-world data.  Any links with high residual errors should be re-evaluated and/or removed.  To remove a link, simply highlight it (click on it) in the Links Table and then click the Delete Link button.  The equations will immediately be recalculated.
  • At the bottom left of the Links Table is the overall ‘root mean square’ error (labeled RMS Error:) associated with your combined control points. This is the mean (average) of the deviations of all your control points from their calculated locations. 
  • Remove and add links as necessary until you have achieved an adequately low error for both the individual points and the overall RMS.
  • Using your links, ArcMap creates and revises two least-squares-fit equations (one for X values, the other for Y) to translate the unadjusted data into real-world coordinates.  There are three options for the method used to transform (spatially adjust) your data: Affine, Similarity and Projective. There is also an option to perform a Rubber Sheet type of adjustment:

o     An Affine transformation, can shift (translate up-down-left-right), scale (make bigger or smaller), rotate, and if necessary, skew (where the top is pushed one way and the bottom is pushed another), the entire data set using a single equation. An affine transformation requires a minimum of 3 links.

o     A Similarity transformation only scale, rotates or shifts the data (no skew or independent scaling of the axes). A similarity transformation requires a minimum of 2 links.

o     A Projective transformation is based on a more complex formula and requires a minimum of four displacement links.

o     Rubber Sheet adjustments apply a variable transformation to different portions of the unadjusted data. This is useful for cases where your unadjusted data is of very poor quality or from a completely different coordinate system than your real-world data. Rubber sheeting allows points to be shifted in a non-uniform manner (i.e., points on one location of the data set may be moved relatively greater or lesser distances than other locations)

  • You can switch from an Affine to a Similarity or a Projective transformation or a Rubber Sheet adjustment in Spatial Adjustment main drop-down menu by choosing Adjustment Method.
  • You can experiment with affine, similarity and projective transformations and/or rubber sheeting to see the differences and to choose which one does the best job of fitting the unadjusted data to your real-world data (probably this will be the default affine transformation). To test different methods, choose one, click on Adjust, view the results, then choose Undo Adjust from the Edit menu to undo your work. Choose a different method and repeat the process.
  • The same links file is used for all methods of adjustment.


4. Finalize Your Spatial Adjustment

  • Choose Links / Save Links file from the Spatial Adjustment main drop-down menu to write the X-Y coordinate pairs to a text file.  This file contains the results of your efforts, and allows you to re-adjust the data at a later time if need be.  Make sure you store it in your project folder as a backup.
  • Use the Spatial Adjustment menu’s Adjust option on to finalize your work. This will apply the equation (built from your links file) to each feature in the selected data set(s), re-writing the coordinate information for each feature. 
  • Evaluate the results (your unadjusted data should now be adjusted to real-world coordinates. If you like what you see, great. If you don’t like the results, choose Undo Adjust from the Edit menu and try a different adjustment method and/or reevaluate your links. You can use the Modify Link tool to re-position a link.
  • Once you are happy with the adjustment choose Save Edits from the Editor toolbar and then choose Stop Editing.



Optional Strategy to possibly speed the process:

One method of avoiding some of the back and forth agony of panning and zooming so much is to:

  • Do a very quick set of links (only 2 points, ballpark accuracy)
  • Save the links file (just in case)
  • Choose Similarity as the Adjustment Method (you do not want to introduce any distortion at this point)
  • Apply the adjustment (this should get your unadjusted data pretty close)
  • Save your edits
  • Begin again, for real this time, being much more careful about your selection of links (zooming in for maximum accuracy)
  • Save this new links file
  • Choose (if you wish) an affine, projective transformation, or a rubber sheet adjustment as appropriate
  • Apply the adjustment (this should get your twice-adjusted data quite well located)
  • Save your edits


This method allows you to quickly get the data ‘pretty close,’ allowing a much more rapid selection of high quality links for the final adjustment, without quite so much zooming back and forth. Good choice of contrasting symbology (colors and/or distinctive shapes) will help to minimize the confusion between what will now be quite closely located corresponding features in the unadjusted and real-world data sets. The downside is the requirement of performing two adjustments, and possibly even introducing errors (though if you use the Similarity method for the first adjustment you should have no more error than you would have with any other method, since a similarity transformation only shifts and scales the data...).



Back to the   GIS Tutorials & Help Page...                         Back to the   SAL Home Page...