spaghetti.regular_lattice

spaghetti.regular_lattice(bounds, nh, nv=None, exterior=False)[source]

Generate a regular lattice of line segments (libpysal.cg.Chain objects).

Parameters:
bounds{python:tuple, python:list}

Area bounds in the form - <minx,miny,maxx,maxy>.

nhpython:int

The number of internal horizontal lines of the lattice.

nvpython:int

The number of internal vertical lines of the lattice. Defaults to nh if left as None.

exteriorbool

Flag for including the outer bounding box segments. Default is False.

Returns:
latticepython:list

The libpysal.cg.Chain objects forming a regular lattice.

Notes

The nh and nv parameters do not include the external line segments. For example, setting nh=3, nv=2, exterior=True will result in 5 horizontal line sets and 4 vertical line sets.

Examples

Create a 5x5 regular lattice with an exterior

>>> import spaghetti
>>> lattice = spaghetti.regular_lattice((0,0,4,4), 3, exterior=True)
>>> lattice[0].vertices
[(0.0, 0.0), (1.0, 0.0)]

Create a 5x5 regular lattice without an exterior

>>> lattice = spaghetti.regular_lattice((0,0,5,5), 3, exterior=False)
>>> lattice[-1].vertices
[(3.75, 3.75), (3.75, 5.0)]

Create a 7x9 regular lattice with an exterior from the bounds of streets.shp.

>>> path = libpysal.examples.get_path("streets.shp")
>>> shp = libpysal.io.open(path)
>>> lattice = spaghetti.regular_lattice(shp.bbox, 5, nv=7, exterior=True)
>>> lattice[0].vertices
[(723414.3683108028, 875929.0396895551), (724286.1381211297, 875929.0396895551)]