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
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())
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())