libpysal.cg.Polygon¶
-
class libpysal.cg.Polygon(vertices, holes=
None)[source]¶ Geometric representation of polygon objects. Returns a polygon created from the objects specified.
Examples
>>> p1 = Polygon([Point((0, 0)), Point((1, 0)), Point((1, 1)), Point((0, 1))])Create a polygon from one or more rings and optional holes.
- Parameters:¶
Methods
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 : float[source]¶
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[source]¶
Returns the bounding box of the polygon as a list.
See also
libpysal.cg.bounding_box
- property bounding_box[source]¶
Returns the bounding box of the polygon.
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 : tuple[source]¶
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.
- Returns:¶
contains –
Trueif the polygon containspointotherwiseFalse.- Return type:¶
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)) 0Handles 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)) TrueNotes
Points falling exactly on polygon edges may yield unpredictable results.
- property holes : list[source]¶
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 : int[source]¶
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 : list[source]¶
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