Georeferencing and Digitizing 1920 Sanborn Maps for Charlottesville, VA

John Middendorf    Lynx Geosystems, LLC


To georeference USGS DRG (NAD 1927 Datum) of the region, as well as an unreferenced aerial orthophoto (.SID format) of the area of interest (with NAD 1983 UTM 17N coordinates). In addition, we have jpgs of the Sanborn maps which will need to be georeferenced from scratch.

Because the orthophoto is more spatially accurate, we will use it primarily in the work that follows. The DRG will be useful to locate the region of interest in order to georeference the Sanborn .jpg.

Preliminary work -- ArcMap:

  1. Define projection of orthophoto to NAD 1983 UTM 17N (projection information provided with unreferenced orthophoto).
  2. Open ArcMap, add referenced orthophoto, then add the DRG file. Add feature class “ControlPts” from personal Geodatabase created earlier.

Locate region of interest:

  1. Zoom into approximate area using the DRG (Main street is marked on the DRG).
  2. Identify street intersections using a printout of the Sanborn jpg.
  3. Switch to orthophoto view (turn off DRG layer, turn on orthophoto).

Create Control Points in ControlPts layer (part of the geodatabase)

  1. Start edit session (Create New Feature with ControlPts point layer as the target).
  2. Using magnifier at 200%, locate center of first intersection (Main Street and 1st).
  3. Create control point, and update ControlPts layer’s attribute data.
  4. Repeat for remaining control points.

Above: Creating the second control point.

Above: Four control points created in ControlPts layer.

Georeference Sanborn Map

  1. Add Sanborn map (1920_3A.jpg) to ArcMap session.
  2. Select Sanborn .jpg (1920_3A.jpg) in Georeferencing toolbar.
  4. Set Sanborn .jpg layer to 40% transparent.
  5. Rotate Sanborn .jpg layer to align roughly with orthophoto: GEOREFERENCING>ROTATE.

Above: after rotating jpg layer.

Using the 200% magnifier, link the intersections on the Sanborn .jpg with the previously created points in the ControlPts layer by clicking on the Sanborn layer first, then the ControlPts layer.

Above: creating third control point link using the magnifier and the Georeferencing Add Control Points command.

Above: all four control points linked.

Final Steps

  1. Continue using the Georeferencing Add Control Points command for all linked points.
  2. Update Georeferencing (here, the .jpw file gets created in the same folder as the .jpg) GEOREFERENCING>UPDATE GEOREFERENCING
  3. Also create new georeferenced image by using the rectify command.
  4. Save and exit.

Georeferencing this image required about 4 hours, but would only require 30 minutes to repeat the process. For a new map with all the preliminary work done, one hour would be adequate.


Screenshot: RMS error report from transformation link table of the 1920_3A.jpg to the georeferenced orthophoto.

The RMS error is not of diagnostic value because the control points on the Sanborn jpeg and the corresponding point on the orthophoto are visually estimated from ArcMap views. Neither point corresponds to an actual control point (one with known lat/lon coordinates).


Each feature class has the geometry properly spatial referenced with NAD 1983 Zone 13N projection, with X/Y domain extents as follows:

MINX: 717750 MAXX: 725452          MINY: 4208464 MAXY: 4216166            Precision: 278821.5586

Building features--polygons:

Roads--line features

CityBlockLots—polygon features

Used to outline the city blocks; it only has one additional field, “name”.

ControlPoints—point features

With ID and Name fields.
For use in the georeferencing transformation of the Sanborn .jpgs.


Step 3 involves digitzing building footprints and road centerlines in ArcGIS, using a georeferenced Sanborn map as a reference.Three hours was required for digitizing a single Sanborn map.

Digitizing is performed using the georeferenced Sanborn jpg as a background image. Snapping will need to be adjusted on a feature by feature basis. For example, if two buildings share a common wall, the edge snapping may be useful, or alternatively, the Auto-Complete Polygon tool can be used to close adjacent polygons in order to assure that the adjacent polygons share a single boundary line.

In addition, to make perpendicular lines and square corners in an editing session, after the first vertex, or after the first feature is entered, right-click to gain access to choices which include “Perpendicular” and “Square and Finish”. The “Perpendicular” choice work well with the “Cut Polygon Features” task. Also, and probably more functional, there is a Perpendicular flag under the Snap Options that allows a note to display when a line segment is perpendicular to the previous segment.


Streets were digitized mostly using the Sketch midpoint tool, as seen below:

Road names, prefix and suffix (if applicable) were added during the digitizing process. After each length of road was digitized and attributed, the roads were split at each block for geocoding information. The direction of each street’s digitizing was performed from west to east, or from south to north for consistent FROM and TO direction.


Buildings were digitized using the sketch tool and the magnifier to more precisely find the edges of each building. Attribute information was added immediately after each digitized record was created, as seen below:

When polygons share a boundary the Auto-Complete Polygon is useful to assure that the adjacent polygons share a single boundary line. Snapping settings and tolerances were continually adjusted to align adjacent polygon boundaries.

In order to create square corners, right clicking after the first vertex gets a list that includes “Perpendicular” and “Square and Finish.” I also investigated the “perpendicular flag” under the Snap Options that allows a note to display when a line segment is perpendicular to the previous segment.


Data error while attributing and creating spatial features is inevitable. Good data structure and preparation is vital for minimizing data errors. In addition, checking data after editing is important.

Preventing Data Entry Error
In order to prevent data entry error while digitizing, the layout of the computer screen was important. I found that entering the attribute data immediately after each polygon digitzing was critical. Below is a typical workscreen:

Using the magnifier and the above mentioned digitizing techniques allowed for reliable vertex entry.

Additional error prevention means:

- For attribute fields for which you are not employing a coded domain or a lookup table, you might create a document containing data entry standards, to be certain that each person is doing the same thing where there is a choice. (for example ST vs St vs St.)

Data Integrity Checking and Correction

To correct spatial data, the “Modify Feature” tool is indispensable while in editing mode.

To check the attribute data, sorting the tables by various fields pinpointed some basic data entry errors. Using the select tool alternatively on the map and in the attribute table was also performed to verify results.

Additional data checking procedures:



Using ArcToolbox, the provided Sanborn 3A street and building layers were merged with my feature classes. The street layer needed to be edgematched. This involved deleting records from 3A that were redundant, and using the modify sketch tool to link common roads.


This process was straightforward. I prefer the method of exporting feature classes from the geodatabase to shapefile in the same coordinate system primarily used (UTM), then, as a separate and more controlled process, going into ArcCatalog and performing a PROJECT operation to change the projection to the GCS system, as seen in the screenshots below:

Other methods for changing the projection of a feature class in a geodatabase:

A) ArcToolbox: use the Project tool to change the projection. The Project Tool allows saving as Shapefiles.
B) ArcMap:
1. Change the coordinate system of the data frame (map display area) to the chosen projection.
2. Export data (right-click the feature class name in the table of contents, Data>Export Data). In the ensuing dialog box, choose to save with the coordinate system of the data frame, and save as a Shapefile.