libpysal.cg.Polygon¶
-
class
libpysal.cg.
Polygon
(vertices, holes=None)[source]¶ Geometric representation of polygon objects. Returns a polygon created from the objects specified.
- Parameters
- vertices
python:list
A list of vertices or a list of lists of vertices.
- holes
python:list
A list of sub-polygons to be considered as holes. Default is
None
.
- vertices
Examples
>>> p1 = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])
- Attributes
vertices
python:list
Returns the vertices of the polygon in clockwise order.
len
python:int
Returns the number of vertices in the polygon.
perimeter
python:float
Returns the perimeter of the polygon.
bounding_box
libpysal.cg.Rectangle
Returns the bounding box of the polygon.
bbox
python:list
Returns the bounding box of the polygon as a list.
area
python:float
Returns the area of the polygon.
centroid
python:tuple
Returns the centroid of the polygon.
-
__init__
(vertices, holes=None)[source]¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
(vertices[, holes])Initialize self.
Build the quad tree structure for this polygon.
contains_point
(point)Test if a polygon contains a point.
Attributes
Returns the area of the polygon.
Returns the bounding box of the polygon as a list.
Returns the bounding box of the polygon.
Returns the centroid of the polygon.
Returns the holes of the polygon in clockwise order.
Returns the number of vertices in the polygon.
Returns the parts of the polygon in clockwise order.
Returns the perimeter of the polygon.
Returns the vertices of the polygon in clockwise order.
-
property
area
¶ Returns the area of the polygon.
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.
- Returns
- self._bbox
python:list
The bounding box of the polygon as a list.
- self._bbox
See also
libpysal.cg.bounding_box
-
property
bounding_box
¶ Returns the bounding box of the polygon.
- Returns
- self._bounding_box
libpysal.cg.Rectangle
The bounding box of the polygon.
- self._bounding_box
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
()[source]¶ 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 increased significantly.
-
property
centroid
¶ Returns the centroid of the polygon.
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
(point)[source]¶ Test if a polygon contains a point.
- Parameters
- point
libpysal.cg.Point
A point to test for containment.
- point
- Returns
- containsbool
True
if the polygon containspoint
otherwiseFalse
.
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
-
property
holes
¶ Returns the holes of the polygon in clockwise order.
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.
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.
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.
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.
Examples
>>> p1 = Polygon([Point((0, 0)), Point((0, 1)), Point((1, 1)), Point((1, 0))]) >>> len(p1.vertices) 4