def getPathData(data, param): path_data = [] p = param tree = Grid_adaptiveM(data, p.Eps, p) tree.buildIndex() tree.adjustConsistency() leaf_boxes = [] for (_, _), l1_child in np.ndenumerate(tree.root.children): if not l1_child.n_isLeaf and l1_child.children is not None: for (_, _), l2_child in np.ndenumerate(l1_child.children): # child1 is a first-level cell leaf_boxes.append((l2_child.n_box, l2_child.a_count)) leaf_boxes.append((l1_child.n_box, l1_child.a_count)) for data in leaf_boxes: # [[x_min,y_min],[x_max,y_max]] path = [] box = data[0] # (x_min, y_min) --> (x_min, y_max) --> (x_max, y_max) --> (x_max, y_min) --> (x_min, y_min) path.append((mpath.Path.MOVETO, (box[0][0], box[0][1]))) path.append((mpath.Path.LINETO, (box[0][0], box[1][1]))) path.append((mpath.Path.LINETO, (box[1][0], box[1][1]))) path.append((mpath.Path.LINETO, (box[1][0], box[0][1]))) path.append((mpath.Path.CLOSEPOLY, (box[0][0], box[0][1]))) path_data.append((path, data[1])) return path_data
def getPathData(data, param): path_data = [] p = param tree = Grid_adaptiveM(data, p.Eps, p) tree.buildIndex() tree.adjustConsistency() leaf_boxes = [] for (_, _), l1_child in np.ndenumerate(tree.root.children): if not l1_child.n_isLeaf and l1_child.children is not None: for (_, _), l2_child in np.ndenumerate( l1_child.children): # child1 is a first-level cell leaf_boxes.append((l2_child.n_box, l2_child.a_count)) leaf_boxes.append((l1_child.n_box, l1_child.a_count)) for data in leaf_boxes: # [[x_min,y_min],[x_max,y_max]] path = [] box = data[0] # (x_min, y_min) --> (x_min, y_max) --> (x_max, y_max) --> (x_max, y_min) --> (x_min, y_min) path.append((mpath.Path.MOVETO, (box[0][0], box[0][1]))) path.append((mpath.Path.LINETO, (box[0][0], box[1][1]))) path.append((mpath.Path.LINETO, (box[1][0], box[1][1]))) path.append((mpath.Path.LINETO, (box[1][0], box[0][1]))) path.append((mpath.Path.CLOSEPOLY, (box[0][0], box[0][1]))) path_data.append((path, data[1])) return path_data
def run_Grid_adaptiveM(self, param): logging.debug('building Grid_adaptiveM...') tree = Grid_adaptiveM(self.data, param) start = time.clock() tree.buildIndex() if Params.CONSTRAINT_INFERENCE: tree.adjustConsistency() end = time.clock() logging.info('[T] Grid_adaptiveM building time: %.2d ' % (end - start)) return self.query(tree, "Grid_adaptiveM")