docstr: Split a Polygon with a LineString
docstr_tok: ["Split","a","Polygon","with","a","LineString"]
code: def _split_polygon_with_line(poly, splitter):
      """Split a Polygon with a LineString"""
      if not isinstance(poly, Polygon):
          raise GeometryTypeError("First argument must be a Polygon")
      if not isinstance(splitter, LineString):
          raise GeometryTypeError(
              "Second argument must be a LineString"
          )
  
      union = poly.boundary.union(splitter)
  
      # greatly improves split performance for big geometries with many
      # holes (the following contains checks) with minimal overhead
      # for common cases
      poly = prep(poly)
  
      # some polygonized geometries may be holes, we do not want them
      # that's why we test if the original polygon (poly) contains
      # an inner point of polygonized geometry (pg)
      return [
          pg
          for pg in polygonize(union)
          if poly.contains(pg.representative_point())
      ]
  
imports: from warnings import warn
  import shapely
  from shapely.algorithms.polylabel import polylabel
  from shapely.errors import GeometryTypeError, ShapelyDeprecationWarning
  from shapely.geometry import GeometryCollection, LineString, MultiLineString, MultiPoint, Point, Polygon, shape
  from shapely.geometry.base import BaseGeometry, BaseMultipartGeometry
  from shapely.geometry.polygon import orient
  from shapely.prepared import prep
label_desc: Use image node_id 1 for calling the SplitOp obj's underlying member method code with example usage: obj._split_polygon_with_line(poly, splitter) and returns: unknown