pointpats.Window

class pointpats.Window(parts, holes=[])[source]

Geometric container for point patterns.

A window is used to define the area over which the pattern is observed. This area is used in estimating the intensity of the point pattern. See PointPattern.lambda_window.

Parameters
parts: sequence

A sequence of rings which bound the positive space point pattern.

holes: sequence

A sequence of rings which bound holes in the polygons that bound the point pattern.

__init__(self, parts, holes=[])[source]

Returns a polygon created from the objects specified.

__init__(Point list or list of Point lists, holes list ) -> Polygon

Parameters
verticeslist – a list of vertices or a list of lists of vertices.
holeslist – a list of sub-polygons to be considered as holes.
is_quad_tree_structure_built

: bool – record if the quad tree structure has been built for this polygon. This quad tree structure could help speed up the contains_point test

Examples

>>> p1 = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])

Methods

__init__(self, parts[, holes])

Returns a polygon created from the objects specified.

build_quad_tree_structure(self)

Build the quad tree structure for this polygon.

contains_point(self, point)

Test if polygon contains point

filter_contained(self, points)

Attributes

area

Returns the area of the polygon.

bbox

Returns the bounding box of the polygon as a list

bounding_box

Returns the bounding box of the polygon.

centroid

Returns the centroid of the polygon

holes

Returns the holes of the polygon in clockwise order.

len

Returns the number of vertices in the polygon.

parts

Returns the parts of the polygon in clockwise order.

perimeter

Returns the perimeter of the polygon.

vertices

Returns the vertices of the polygon in clockwise order.

property area

Returns the area of the polygon.

area -> number

Examples

>>> p = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])
>>> p.area
1.0
>>> p = Polygon([Point((0, 0)), Point((10, 0)), Point((10, 10)), Point((0, 10))],[Point((2,1)),Point((2,2)),Point((1,2)),Point((1,1))])
>>> p.area
99.0
property bbox

Returns the bounding box of the polygon as a list

See also bounding_box

property bounding_box

Returns the bounding box of the polygon.

bounding_box -> Rectangle

Examples

>>> p = Polygon([Point((0, 0)), Point((2, 0)), Point((2, 1)), Point((0, 1))])
>>> p.bounding_box.left
0.0
>>> p.bounding_box.lower
0.0
>>> p.bounding_box.right
2.0
>>> p.bounding_box.upper
1.0
build_quad_tree_structure(self)

Build the quad tree structure for this polygon. Once the structure is built, speed for testing if a point is inside the ring will be inscreased significantly. :return:

property centroid

Returns the centroid of the polygon

centroid -> Point

Notes

The centroid returned by this method is the geometric centroid and respects multipart polygons with holes. Also known as the ‘center of gravity’ or ‘center of mass’.

Examples

>>> p = Polygon([Point((0, 0)), Point((10, 0)), Point((10, 10)), Point((0, 10))], [Point((1, 1)), Point((1, 2)), Point((2, 2)), Point((2, 1))])
>>> p.centroid
(5.0353535353535355, 5.0353535353535355)
contains_point(self, point)

Test if polygon contains point

Notes

Points falling exactly on polygon edges may yield unpredictable results

Examples

>>> p = Polygon([Point((0,0)), Point((4,0)), Point((4,5)), Point((2,3)), Point((0,5))])
>>> p.contains_point((3,3))
1
>>> p.contains_point((0,6))
0
>>> p.contains_point((2,2.9))
1
>>> p.contains_point((4,5))
0
>>> p.contains_point((4,0))
0
>>>

Handles holes

>>> p = Polygon([Point((0, 0)), Point((0, 10)), Point((10, 10)), Point((10, 0))], [Point((2, 2)), Point((4, 2)), Point((4, 4)), Point((2, 4))])
>>> p.contains_point((3.0,3.0))
False
>>> p.contains_point((1.0,1.0))
True
>>>
filter_contained(self, points)[source]
property holes

Returns the holes of the polygon in clockwise order.

holes -> Point list

Examples

>>> p = Polygon([Point((0, 0)), Point((10, 0)), Point((10, 10)), Point((0, 10))], [Point((1, 2)), Point((2, 2)), Point((2, 1)), Point((1, 1))])
>>> len(p.holes)
1
property len

Returns the number of vertices in the polygon.

len -> int

Examples

>>> p1 = Polygon([Point((0, 0)), Point((0, 1)), Point((1, 1)), Point((1, 0))])
>>> p1.len
4
>>> len(p1)
4
property parts

Returns the parts of the polygon in clockwise order.

parts -> Point list

Examples

>>> p = Polygon([[Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))], [Point((2,1)),Point((2,2)),Point((1,2)),Point((1,1))]])
>>> len(p.parts)
2
property perimeter

Returns the perimeter of the polygon.

perimeter() -> number

Examples

>>> p = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])
>>> p.perimeter
4.0
property vertices

Returns the vertices of the polygon in clockwise order.

vertices -> Point list

Examples

>>> p1 = Polygon([Point((0, 0)), Point((0, 1)), Point((1, 1)), Point((1, 0))])
>>> len(p1.vertices)
4