The Voronoi diagram is closely related to gravity models:
every cell in the raster map gravitates towards the closest center
point in the input point pattern.
If you change the gravitational attraction of individual points,
you get a weighted Voronoi diagram. If you change the measure
of gravity by switching from straight-line distance to e.g. cost-based
then you get something more complex and realistic than any Voronoi
algorithm can provide.

In Archaeology, a simple formula (called Xtent) has been used
to calculate such gravity models for a long time:

I = C^a - k*d

With "I" being the "influence" of an input point. "I" gets calculated
for every input point at every cell in the map. The input point with
highest "I" wins and the cell gets assigned to that point's ID.
(C^a) is the weight of a point. (k*d) is your (weighted) distance
measure.

Set (C^a) constant and use a straight-line distance measure and you
get your basic Voronoi diagram. Assign different weights to C and
you get a weighted diagram. Replace (k*d) with a more realistic,
cost-based measure and you get something ... really cool.

I am sure, there is a myriad of similar models/formulas in other
disciplines.

I have actually written a GRASS module called r.xtent based on
this. It still has some known bugs, however, and I simply don't have
the time to fix it right now. It's also pretty bloated and inefficient,
so a clean, more minimalistic start might not be a bad idea.

Ben


Jan Hartmann wrote:

Wouldn't this work with cost surfaces too? Starting from several points (the Thiessen centers) with a grid cell cost information raster containing only the value "one", you get a raster representation of a classic Thiessen structure. Manipulating the cost information raster , you should get something like a weighted Thiessen structure. The last step would be to extract the boundaries between the polygons in vector format, with the methods above. Starting from each center point, the cost surface will rise, until it meets the rising surface from an adjacent point. At this location, slope becomes zero. These zero slope areas are effectively the Thiessen polygons, and can be vectorized. For normal Thiessen polygons, this should be no problem, but I am not sure what happens with really complex weighted cases. Does anyone have any experience with this?

Jan
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user




--
Benjamin Ducke
Senior Applications Support and Development Officer

Oxford Archaeology Ltd
Janus House
Osney Mead
OX2 0ES
Oxford, U.K.

Tel: +44 (0)1865 263 800 (switchboard)
Tel: +44 (0)1865 980 758 (direct)
Fax :+44 (0)1865 793 496
benjamin.du...@oxfordarch.co.uk




------
Files attached to this email may be in ISO 26300 format (OASIS Open Document 
Format). If you have difficulty opening them, please visit http://iso26300.info 
for more information.

_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to