def _find_bboxes_in_rect(bboxes, left, bottom, right, top):
    """ Given a list of polygon bounding boxes and a rectangle defined by
    left/bottom/right/top, this function returns those polygons which overlap
    the rectangle.

    Parameters
    ----------
    bboxes : list
        List of all polygon bboxes.
    left : int or float
        The x-coordinate of the lefthand boundary.
    bottom : int or float
        The y-coordinate of the bottom boundary.
    right : int or float
        The x-coordinate of the righthand boundary.
    top : int or float
        The y-coordinate of the top boundary.

    Returns
    -------
    result : list
        List of all polygon bboxes that overlap with the defined rectangle.
    """
    result = (bboxes[:, 0] <= right) & (bboxes[:, 2] >= left) & \
             (bboxes[:, 1] <= top) & (bboxes[:, 3] >= bottom)
    return result