Esempio n. 1
0
    def test_get_common_geom(self):
        """ Tests the creation of an encasing raster geometry from multiple raster geometries. """

        # create different raster geometries
        extent_a = self.extent
        extent_b = tuple(np.array(extent_a) - 2)  # shift extent negatively
        extent_c = tuple(np.array(extent_a) + 2)  # shift extent positively
        # create raster geometries from different extents
        raster_geom_a = self.raster_geom
        raster_geom_b = RasterGeometry.from_extent(extent_b, self.sref, self.x_pixel_size, self.y_pixel_size)
        raster_geom_c = RasterGeometry.from_extent(extent_c, self.sref, self.x_pixel_size, self.y_pixel_size)
        raster_geom_d = RasterGeometry.from_extent(extent_a, self.sref, self.x_pixel_size*2, self.y_pixel_size*2)

        # resize the main geometry
        raster_geom_a.scale(0.5)

        # create common raster geometry from the first three raster geometries
        raster_geom = RasterGeometry.from_raster_geometries([raster_geom_a, raster_geom_b, raster_geom_c])
        ll_x, ll_y = raster_geom_b.rc2xy(raster_geom_b.n_rows - 1, 0, px_origin="ll")
        ur_x, ur_y = raster_geom_c.rc2xy(0, raster_geom_b.n_cols - 1, px_origin="ur")
        new_extent = (ll_x, ll_y, ur_x, ur_y)

        self.assertTupleEqual(raster_geom.outer_boundary_extent, new_extent)

        # test if error is raised, when raster geometries with different resolutions are joined
        try:
            raster_geom = RasterGeometry.from_raster_geometries([raster_geom_a, raster_geom_b, raster_geom_c,
                                                              raster_geom_d])
        except ValueError:
            assert True
Esempio n. 2
0
    def test_intersection_by_geom(self):
        """ Tests intersection of a geometry with the regular mosaic geometry. """

        geom = any_geom2ogr_geom(self._get_roi(), sref=self.mosaic_geom.sref)
        mosaic_intsct = self.mosaic_geom.slice_by_geom(geom)
        outer_boundary_extent = RasterGeometry.from_raster_geometries(mosaic_intsct.tiles).outer_boundary_extent
        self.assertTupleEqual(outer_boundary_extent, self._get_roi())
Esempio n. 3
0
    def test_slice_tiles_by_geom(self):
        """ Tests intersection of a geometry with the tiles contained in the regular mosaic geometry. """

        geom = any_geom2ogr_geom(self._get_roi(), sref=self.mosaic_geom.sref)
        intscted_tiles = list(
            self.mosaic_geom.slice_tiles_by_geom(geom).values())
        outer_boundary_extent = RasterGeometry.from_raster_geometries(
            intscted_tiles).outer_boundary_extent
        self.assertTupleEqual(outer_boundary_extent, self._get_roi())