Digitizing and Geocoding Old Maps?
alobar72 writes "I have quite a few old maps (several hundreds; 100+ years old, some are already damaged – so time is not on my side). What I want to do is to digitize them and to apply geo-coordinates to them so I can use them as overlays for openstreetmap data or such. Obviously I cannot put those maps onto my €80 scanner and go. Some of them are really large (1.5m x 1.5m roughly, I believe) and they need to be treated with great care because the paper is partly damaged. So firstly I need a method or service provider that can do the digitizing without damaging them. Secondly I need a hint what the best method is to apply geo coordinates to those maps then. The maps are old and landscape and places have changed, it maybe difficult to identify exact spots. So: are there any experiences or tips I could use?"
Been there, fought lighting and camera distortion for hours, only to get bad quality (relative to a scanner)
Lay the maps out on a uniform surface, take the lid off a nice scanner and turn it upside down and move it place to place. Use rather big (1-2inch) overlaps, because the edges of the scanner sometimes are incorrect. You can make a batch process to crop the edges off in photoshop / gimp.
Most important is to lock down scanner settings so nothing is auto, or you will have colorcontrastluminosity differences between sections of your map.
Stitching these together requires 0 effort in any modern photographic editing software.
This is cheap, gives the best results and is the only way to get good quality without spending a fortune or damaging the documents.
First, ask on the OpenStreetMap mailing lists. There's lots of us who've done this kind of stuff before, and we'd be really pleased to help. I collected, scanned and rectified the Ordnance Survey's New Popular Edition - a complete set of England and Wales maps from the '50s, now out of copyright. It's all available in OpenStreetMap as a background layer and loads of people use it for adding rural roads, rivers, placenamese etc. Others are scanning other old Ordnance Survey series right now. Seriously, we love this kind of stuff. (#osm on OFTC can help too.)
Secondly, GDAL is definitely your friend. It's the most amazing set of command-line tools for rectifying and reprojecting data. gdalwarp and gdal_translate are probably the two you'll use most.
Others seem to be describing some good solutions to getting the map scanned, so here's how to geocode and rectify the image using the open source Grass GIS software:
Step 0:
- You need to have a location already created in grass, with some contemporary data in it (physical features, roads etc where there's some concurrence with the map you're trying to geocode). The projection you've used doesn't matter much - a later step is going to be rectifying (ie distorting) the scanned map to match the projection of the digital map. The created location does need be at least as large as the scanned map (ie if the map is everything in a 5 km radius of some town, the grass location also needs to encompass at least a 5 km radius of the same town).
Step 1:
- Come up with a list of features/points which exist on both maps. Depending on the scale of the map, this could be intersections of specific roads, locations of towns, peaks of mountains etc. You're going to need an absolute minimum of five points for the rectification process to have any chance of working; more than fifteen is much better. Try and select points which are unlikely to have moved over time (coastline or river features for example). In grass, mouse over each point and record the coordinates.
Step 2: import the scan
In grass, do: r.in.gdal input=[path to scanned file] out=[Mapname] location=templocation
Quit grass
Step 3: target, point, rectify
Open grass, but this time in the 'templocation' you created in step 2
i.target group=groupMapname location=[modern map location name] mapset=PERMANENT
i.group group=groupMapname in=Mapname
d.mon start=x0
i.points groupMapname
d.mon will open a window; i.points will display the scan in it. Select the mapname in the dialog that appears, then one by one select each of the points you've identified as having concurrence with the modern map. In the terminal window, enter the coordinates for the point taken from the list you created in step 1. When done marking points, click 'quit'.
i.rectify -a group=groupMapname extension=_1 order=1
Depending on the size of your map and your processor speed, this bit may take a while. When done, quit grass.
Step 4: admire output
Open grass in the modern location. The scanned map will be available as a raster layer for display. The scan will have been rectified so the map matches the projection of the modern map layers - ie you'll be able to see what's moved and changed, and what exists now that didn't then etc. There's other grass commands which will help you convert features of interest (rivers, roads, contour lines, whatever) into vectors if you really want.
If all this seems too hard, have a look at qgis - also open source mapping software; it's more gui-oriented and I know it has a georectifying plugin. I've just never used it.
Good luck.
I do this for a living, We Use a wide format scanner and Global Mapper to georectify them.
Contact mikes@wavefront.pro if you would like a quote.
We do everything from old torn maps to vellums to Tifs, We can Georectify them to load quickly as a geotiff. or we can digitize the data on the maps into Arc compatible Shapefiles.
piqued, not peaked
/grammar nazi
weinersmith
Contact a local Licensed Land Surveyor. We are in the business of coordinating maps and making sure they are properly referenced. We also know the difference between NAD83 and NGVD29. This and the other coordinate system conversions and the proper use of scale factor in SPCS (State Plane Coordinate Systems) is something we do every day. Plus, most of us are really into local history and could possibly show you some other really neat uses for that data. Historic societies are always looking for ways to map past events. When speaking with a Surveyor, we can usually know what the practice for a given time period was. There are three different lengths for a foot that I have come across working. International Foot (not used in surveying, but sometimes engineers use the wrong foot), US Survey Foot (standard) and the Philly Foot. Philadelphia has a different set of standards for how a long a foot is, depending on what part of the city you are in and what you are trying to do. This is not something most historians would accurately pick up. Surveyors will. We also know who was the good and not so studious Surveyors in the area and what tricks each used to mark corners, turning points and reference markers. A local Surveyor in the area the map is of would be very interested in helping you with your work. He/she may have already done the heavy lifting for you. We have to trace maps back as far as possible, so sometimes (I am in New Jersey) we have to go all the way back to the Proprietors to get maps so that we can run lines that control our current work.
Long story short, if it deals with cartography or local surveying, seek a professional Surveyor.
One Token Ring to Rule them All, One Search Engine to Find Them, One WAN to bring them in, and TCP/IP Bind them...
Or contact local university geography department. Might be able to work up some program with them to have students do the digitizing.
I drank what? -- Socrates
Seconded. Get some quality gear. As in, contact your local university or museum, they are bound to have (connections to some place with) the proper equipment.
What's this for? If you would be willing to donate digital copies, or even the originals (if you feel they would be better able to take proper care of them), I bet they would gladly provide the time and resources.
Good luck!
"Good news, everyone!"