def test_first(node1, node2, default_config): manager = Manager(bbox=Bbox.from_nodes(node_left_down=node1, node_right_up=node2), configuration=default_config) manager._generate_small_bboxes() assert manager.small_bboxes[0].left == node1.longitude assert manager.small_bboxes[0].bottom == node1.latitude
def test_with_three(node1, configuration_no_compare): node2 = node1.add_meter(2 * configuration_no_compare.bbox_size + 50, 2 * configuration_no_compare.bbox_size + 50) manager = Manager(bbox=Bbox.from_nodes(node_left_down=node1, node_right_up=node2)) columns = manager._calc_columns() rows = manager._calc_rows() assert rows == 3 assert columns == 3
def test_with_two_columns(node1, configuration_no_compare): node2 = node1.add_meter(200, configuration_no_compare.bbox_size + 50) manager = Manager( bbox=Bbox.from_nodes(node_left_down=node1, node_right_up=node2)) columns = manager._calc_columns() rows = manager._calc_rows() assert rows == 1 assert columns == 2
def test_with_three(node1, configuration_no_compare): bbox_size = int(configuration_no_compare.JOB.bboxsize) node2 = node1.add_meter(2 * bbox_size + 50, 2 * bbox_size + 50) manager = Manager(bbox=Bbox.from_nodes(node_left_down=node1, node_right_up=node2), configuration=configuration_no_compare) columns = manager._calc_columns() rows = manager._calc_rows() assert rows == 3 assert columns == 3
def test_big_bbox(node1, node2): manager = Manager(bbox=Bbox.from_nodes(node_left_down=node1, node_right_up=node2)) length = len(manager.small_bboxes) manager._generate_small_bboxes() assert manager.small_bboxes[0].left == node1.longitude assert manager.small_bboxes[0].bottom == node1.latitude assert (manager.small_bboxes[length - 1].right >= node2.longitude and manager.small_bboxes[length - 1].right <= node2.longitude + 0.05) assert (manager.small_bboxes[length - 1].top >= node2.latitude and manager.small_bboxes[length - 1].top <= node2.latitude + 0.05)
def test_big_bbox(node1, node2): manager = Manager( bbox=Bbox.from_nodes(node_left_down=node1, node_right_up=node2)) length = len(manager.small_bboxes) manager._generate_small_bboxes() assert manager.small_bboxes[0].left == node1.longitude assert manager.small_bboxes[0].bottom == node1.latitude assert (manager.small_bboxes[length - 1].right >= node2.longitude and manager.small_bboxes[length - 1].right <= node2.longitude + 0.05) assert (manager.small_bboxes[length - 1].top >= node2.latitude and manager.small_bboxes[length - 1].top <= node2.latitude + 0.05)
def get_tile_by_node(self, centre_node, side_length): centre_pixel = self.get_pixel(centre_node) x1 = centre_pixel[0] - side_length // 2 x2 = centre_pixel[0] + side_length // 2 y1 = centre_pixel[1] - side_length // 2 y2 = centre_pixel[1] + side_length // 2 crop_box = (x1, y1, x2, y2) img = self.image.crop(crop_box) left_down = self.get_node((x1, y1)) right_up = self.get_node((x2, y2)) bbox = Bbox.from_nodes(node_left_down=left_down, node_right_up=right_up) return Tile(img, bbox)
def main(args): coords = [args.coord[i:i + 2] for i in range(0, len(args.coord), 2)] coords = list(map(lambda c: Node(*c), coords)) bbox = Bbox.from_nodes(coords[0], coords[1]) if args.tags: tags = map(lambda kv: Tag(key=kv[0], value=kv[1]), map(lambda kv: kv.split('=', 1), args.tags.split(','))) walker = OsmObjectWalker(Tile(image_api=WmsApi(), bbox=bbox), tags, square_image_length=100) else: walker = CoordWalker(Tile(image_api=WmsApi(), bbox=bbox), coords, square_image_length=100) tiles = walker.get_tiles() for n, t in enumerate(tiles): centre_node = t.get_centre_node() name = "fetch/{0:02.8}_{1:02.8}.png".format(centre_node.latitude, centre_node.longitude) t.image.save(name, "PNG") print(name)
def test_first(node1, node2): manager = Manager(bbox=Bbox.from_nodes(node_left_down=node1, node_right_up=node2)) manager._generate_small_bboxes() assert manager.small_bboxes[0].left == node1.longitude assert manager.small_bboxes[0].bottom == node1.latitude