Ejemplo n.º 1
0
    def create_new_tile(self,
                        name,
                        points,
                        labels=None,
                        features=None,
                        polygon=None):
        """
        :param polygon:
        :param features:
        :param labels:
        :param name:
        :param points:
        :return:
        """
        if polygon is None:
            polygon = processing.boundary(points)
        tile = Tile(name,
                    polygon,
                    self.workspace,
                    file_format=self.file_format,
                    file_format_settings=self.file_format_settings)

        tile.store(points=points, labels=labels, features=features)
        self.add_tile(tile)
        return tile
Ejemplo n.º 2
0
 def test_density(self):
     polygon = Polygon([(27620, 158050), (27630, 158050), (27630, 158060),
                        (27620, 158060)])
     tile_1 = Tile(name='test_data/test_tile_27620_158050',
                   workspace='./',
                   polygon=polygon,
                   file_format='las')
     self.assertEqual(108.42, tile_1.get_density())
Ejemplo n.º 3
0
    def test_workspace(self):
        tile_1 = Tile('test_data/test_tile_27620_158050',
                      workspace='test_data/')
        tile_2 = Tile('tile_2')

        self.assertEqual(PosixPath('test_data/'), tile_1.get_workspace())
        self.assertEqual(PosixPath('./'), tile_2.get_workspace())
Ejemplo n.º 4
0
    def add_new_tile(self, name, polygon=None):
        """

        :param polygon:
        :param name:
        :return:
        """
        tile = Tile(name,
                    polygon=polygon,
                    workspace=self.workspace,
                    file_format=self.file_format,
                    file_format_settings=self.file_format_settings)
        self.add_tile(tile)
        return tile
Ejemplo n.º 5
0
def load_project(project_file_path):
    """

    :param project_file_path:
    :return:
    """
    with open(project_file_path, 'r') as read:
        p = json.load(read)

    project = Project(project_name=p['name'],
                      epsg=p['epsg'],
                      workspace=p['workspace'],
                      stats=p['stats'])

    for c in p['pointclouds']:
        pointcloud = PointCloud(name=c['name'],
                                epsg=c['epsg'],
                                workspace=c['workspace'],
                                file_format=c['file_format'],
                                file_format_settings=c['file_format_settings'],
                                labels_descriptions=c.get(
                                    'labels_descriptions', None))
        pointcloud.set_stats(c['stats'])
        project.add_pointcloud(pointcloud)
        for t in c['tiles']:
            polygon = None
            if t['polygon'] is not None:
                polygon = shapely.wkt.loads(t['polygon'])

            tile = Tile(name=t['name'],
                        polygon=polygon,
                        workspace=t['workspace'],
                        file_format=t.get('file_format', c['file_format']),
                        file_format_settings=t.get('file_format_settings',
                                                   c['file_format_settings']),
                        area=t.get('area', None),
                        density=t.get('density', None),
                        number_of_points=t.get('number_of_points', None))

            pointcloud.add_tile(tile)

    return project
Ejemplo n.º 6
0
 def test_create(self):
     tile = Tile('tile_1')
     self.assertEqual('tile_1', tile.get_name())
Ejemplo n.º 7
0
    def test_number_of_points(self):
        tile_1 = Tile('test_data/test_tile_27620_158050')

        self.assertEqual(10842, tile_1.get_number_of_points())
Ejemplo n.º 8
0
    def test_bbox(self):
        polygon = Polygon([(0, 0), (0, 1), (1, 1), (1, 0)])
        tile_1 = Tile('tile_1', polygon=polygon)

        self.assertEqual((0.0, 0.0, 1.0, 1.0), tile_1.get_bbox())
Ejemplo n.º 9
0
    def test_area_2(self):
        polygon = Polygon([(27620, 158050), (27630, 158050), (27630, 158060),
                           (27620, 158060)])
        tile_1 = Tile('test_data/test_tile_27620_158050', polygon=polygon)

        self.assertEqual(100, tile_1.get_area())
Ejemplo n.º 10
0
    def test_area(self):
        polygon = Polygon([(0, 0), (0, 1), (1, 1), (1, 0)])
        tile_1 = Tile('tile_1', polygon=polygon)

        self.assertEqual(1, tile_1.get_area())