示例#1
0
    def containsPt(self, point):
        x = point[0]
        y = point[1]
        if x < self.minX or x > self.maxX:
            return True
        if y < self.minY or y > self.maxY:
            return True
        for obs in self.obstacles:
            if obs.get_path().contains_point([x, y]):
                return True

        shapelyPt = Point(x, y)
        for poly in self.buffedPoly:
            if shapelyPt.within(poly):
                return True

        return False
示例#2
0
    def contains(self, nodePt):
        x = nodePt.x
        y = nodePt.y
        if x < self.minX + self.buff or x > self.maxX - self.buff:
            return True
        if y < self.minY + self.buff or y > self.maxY - self.buff:
            return True


#        for obs in self.obstacles:
#            if obs.get_path().contains_point([nodePt.x, nodePt.y]):
#                return True
        shapelyPt = Point(x, y)
        for poly in self.buffedPoly:
            if shapelyPt.within(poly):
                return True

        return False
示例#3
0
    def pose_inside_model(pose: Tuple[float, float, float],
                          model: PrimitiveModel) -> bool:
        '''Returns True if the given position is in the polygon obtained
        by projecting the given model onto the xy-plane and False otherwise.

        Keyword arguments:
        pose: Tuple[float, float, float] -- a 2D pose
        model: PrimitiveModel -- a model of an object in the environment

        '''
        point = Point(pose[0], pose[1])
        model_polygon = Polygon(((model.pose[0][0] - model.visual_size[0],
                                  model.pose[0][1] - model.visual_size[1]),
                                 (model.pose[0][0] - model.visual_size[0],
                                  model.pose[0][1] + model.visual_size[1]),
                                 (model.pose[0][0] + model.visual_size[0],
                                  model.pose[0][1] + model.visual_size[1]),
                                 (model.pose[0][0] + model.visual_size[0],
                                  model.pose[0][1] - model.visual_size[1])))
        return point.within(model_polygon)
示例#4
0
    opath = "%s/%s" % (args.outdir.rstrip('/'),args.lasfile.split('/')[-1])

    # prepare statistics
    points_read = 0
    points_kept = 0

    # open in- and output LAS-file
    f = lasfile.File(fpath,mode='r')
    o = lasfile.File(opath, header=f.header, mode='w')

    # extract points
    #print "processing %s ..." % args.lasfile
    for point in f:
        points_read += 1
        p = Point(point.x, point.y)
        if p.within(wkt_poly) or p.intersects(wkt_poly):
            points_kept += 1
            o.write(point)

    # give feedback and remove empty output file
    o.close()
    f.close()
    if points_kept == 0:
        print "    no points found within WKT-poly"
        os.remove(opath)
    else:
        print "    created %s (kept %s of %s points)" % (opath,points_kept,points_read)

    # log times
    time_end = time.time()
    csv.write('%s;%s;%s;%s;%s;%s;%s\n' % (