Trace vector contours from a scanned map

From GRASS-Wiki
Revision as of 07:32, 12 December 2006 by ⚠️HamishBowman (talk | contribs) (init)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
  1. import scanned map image. to save processing later you might want to mask out
  2. obvious text etc. in a paint program first.
r.in.gdal
  1. georectify map using GUI georectifier or i.points + i.rectify
  1. switch to in target location
  1. we now have a registered raster map containing a 300 dpi scan of our A0 sized map
  1. check how many categories
r.info chart
  1. 8 colors (categories)
  1. zoom to the map's bounds
g.region rast=chart
  1. display map
d.mon x0
d.rast chart
  1. query map values
d.what.rast
  1. black is category 1
  1. make a reclass map, with just the black lines
r.reclass in=chart out=chart_black << EOF
1 = 1 black
EOF
  1. thin the lines to be 1 pixel wide
r.thin in=chart_black out=chart_black.thinned
  1. convert raster lines to vector lines
r.to.vect -s in=chart_black.thinned out=chart_lines
  1. remove any dangles smaller than 1km
v.clean in=chart_lines out=chart_lines_cleaned tool=rmdangle thresh=1000
  1. connect broken lines
v.build.polylines -q in=chart_lines_cleaned out=chart_polyline
  1. add category numbers to lines
v.category in=chart_polyline out=chart_polyline_cat type=line
  1. create a DB table to hold line length values
v.db.addtable chart_polyline_cat columns="length_km DOUBLE PRECISION"
  1. upload line lengths to DB table
v.to.db chart_polyline_cat type=line option=length units=k column=length_km
  1. extract line features longer than 5km (cleans out the noise)
v.extract in=chart_polyline_cat out=chart_lines_5km type=line where="length_km > 5"
  1. display result over raster chart
d.vect chart_lines_5km color=red width=2
  1. export as a shapefile
v.out.ogr in=chart_lines_5km dsn=chart_lines_gt5km
  1. view shape file in QuantumGIS
qgis chart_lines_gt5km/chart_lines_5km_crop.shp