On Thu, Nov 20, 2014 at 12:29 AM, Markus Neteler <[email protected]> wrote:
> Hi,
>
> I have added v.mkhexgrid as new G7 addon to the Addons repo. The
> original author is Trevor Wiens who already implemented it as a Python
> script. I made some minor changes to get it running in GRASS GIS 7.
> Screenshot:
> https://svn.osgeo.org/grass/grass-addons/grass7/vector/v.mkhexgrid/v_mkhexgrid.png
>
> Originally I had hoped that v.voronoi would do the job but it does not
> create proper hexagons. I was running:
>
> # desired result:
> http://blogs.esri.com/esri/arcgis/files/2013/05/fig3.png (3rd figure
> within)
> # create first set of points
> g.region rast=elevation -p
> v.mkgrid -p map=pointpattern1 grid=13,15 position=region breaks=1
> # shift grid by half point distance
> g.region n=n+500 w=w+500 e=e+500 s=s+500 -p
> # create second set of points
> v.mkgrid -p map=pointpattern2 grid=13,15 position=region breaks=1
> # merge into final point pattern
> v.patch input=pointpattern1,pointpattern2 output=pointpattern3
> # generate Thiessen, hoping for hexagons
> v.voronoi input=pointpattern3 out=hexagon_attempt
> # show result
> d.mon wx0
> sleep 5
> d.vect hexagon_attempt type=boundary

The points are not "cleverly spaced". Attached is a python script that
generates center points of hexagons. The output of v.voronoi shows now
hexagons.

Markus M
#!/bin/env python

import os
import sys
import math


def main():
    north = 1000
    west = 1000
    rows = 20
    cols = 20
    
    radius = 1000
    
    # row spacing
    rspace = radius / 2.0

    # row shift
    rshift = radius

    # col spacing
    cspace = math.sqrt(3) * radius
    # col shift
    cshift = math.sqrt(3) * radius / 2.0
    
    f = file("points.csv", "w")
    
    n = north
    for r in range(rows):
	n = n + rspace
	w = west + cshift * (r % 2)
	for c in range(cols):
	    w = w + cspace
	    f.write("%f,%f\n" % (w, n))
    
    f.close()
    
    

if __name__ == "__main__":
    main()
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to