Create concave hull

From GRASS-Wiki
Revision as of 13:54, 10 August 2008 by ⚠️Mlennert (talk | contribs) (New page: Q: I have a set of points and would like to compute the concave hull of it. A: You can approximate a concave hull through the following steps: * create map of lines connecting all points...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Q: I have a set of points and would like to compute the concave hull of it.

A: You can approximate a concave hull through the following steps:

  • create map of lines connecting all points (I find it easier to do this with v.net.visibility, but v.distance works also)
  • add a table with a column 'cat' and a column 'length double precision' and categories to these lines (v.db.addtable, v.category)
  • upload the length of each line to the table (v.to.db)
  • visually identify a length threshold above which the lines should not be used
  • extract only those lines below that threshold (v.extract where="length<MAXLENGTH)
  • convert the lines to boundaries (v.type)
  • break overlapping lines (v.clean tool=break, there shouldn't be any duplicate lines, but just in case you can also use rmdupl)
  • add centroids with the same category value to the boundaries (v.centroids step=0)
  • dissolve the areas into one (v.dissolve)

The image to shows the results: