Vector topology cleaning

From GRASS-Wiki
Revision as of 15:27, 19 April 2013 by Neteler (talk | contribs) (cleaning of vector networks (based on grass-user mailing list hints by Markus Metz))

Jump to: navigation, search

Q: How can I speed up topologial cleaning (v.clean) for large network datasets (for example OpenStreetMap data)?

A: The improved v.clean version in GRASS 7 is way faster. Here some hints:

GRASS 6: When breaking lines it is recommended to

  • split the lines first in smaller segments with v.split using the vertices option. Then,
  • run v.clean with 'tool=break'. After that,
  • use v.build.polylines to merge lines again.

GRASS 7: Here this has become much easier. Use v.clean with the -c flag and 'tool=break' and 'type=line'. The 'rmdupl' tool is then automatically added, and the splitting and merging is done internally.


Q: How can I patch to fitting area maps with have been digitized separately and correct the topology? I observe that the shared polygon boundaries do not perfectly match... I need to clean topology.

Polygon vector map with topology problems

A: You can use v.clean for this.

Tools to consider:

  • snap,bpol,rmdupl,break,rmdupl,rms
  • the threshold (in map units) should be very small

Example (Lat-Long):

 v.in.ogr natural_earth/ne_110m_admin_0_countries.shp out=country_boundaries snap=0.0001 TODO: FIX THIS

Q: How about self-intersecting lines and boundaries?

A: In the GRASS topological model self-intersecting lines are allowed, self-intersecting boundaries are not. Self-intersecting lines are ok e.g. for v.net modules, e.g. to represent a bridge of a secondary road over a highway.

Note: There are some modules that do not like self-intersecting lines, e.g with v.buffer problems are expected.


Polygon import from SHAPE file:

Overlayed polygons after import from SHAPE file (Simple Features

v.clean applied:

Overlayed polygons topologically cleaned. Note the double categories.

See also