libpysal.cg.Polygon¶
-
class
libpysal.cg.
Polygon
(vertices, holes=None)[source]¶ Geometric representation of polygon objects.
- 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
Rectangle
Returns the bounding box of the polygon.
bbox
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__
(self, vertices, holes=None)[source]¶ Returns a polygon created from the objects specified.
__init__(Point list or list of Point lists, holes list ) -> Polygon
- Parameters
- vertices
python:list
–a
python:list
of
vertices
ora
python:list
of
lists
of
vertices. - holes
python:list
–a
python:list
of
sub-polygonsto
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
- vertices
Examples
>>> p1 = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])
Methods
__init__
(self, vertices[, holes])Returns a polygon created from the objects specified.
Build the quad tree structure for this polygon.
contains_point
(self, point)Test if polygon contains 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.
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)[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 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)[source]¶ 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 >>>
-
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