def test_create_tiles_all(LAYER): with mock.patch.object( RasterPipe, "get_grid_tiles", return_value=_get_subset_tiles() ), mock.patch( "gfw_pixetl.pipes.pipe.get_metadata", return_value=EMPTY_METADATA ), mock.patch.object( RasterSrcTile, "within", return_value=True), mock.patch.object( Destination, "exists", return_value=False), mock.patch.object( RasterSrcTile, "transform", return_value=True), mock.patch.object( RasterSrcTile, "create_gdal_geotiff", return_value=None ), mock.patch.object( RasterSrcTile, "upload", return_value=None ), mock.patch.object( RasterSrcTile, "rm_local_src", return_value=None ), mock.patch( "gfw_pixetl.utils.upload_geometries.upload_geojsons", return_value=None): pipe = RasterPipe(LAYER) (tiles, skipped_tiles, failed_tiles, existing_tiles) = pipe.create_tiles(overwrite=False) assert len(tiles) == 4 assert len(skipped_tiles) == 0 assert len(failed_tiles) == 0 assert len(existing_tiles) == 0
def test_get_grid_tiles(): # message = "" # try: # len(PIPE.get_grid_tiles()) # except NotImplementedError: # message = "not implemented" # assert message == "not implemented" layer_dict = { **LAYER_DICT, "grid": "10/40000", } layer = layers.layer_factory(LayerModel.parse_obj(layer_dict)) pipe = RasterPipe(layer) assert len(pipe.get_grid_tiles()) == 648
def pipe_factory(layer: Layer, subset: Optional[List[str]] = None) -> Pipe: if isinstance(layer, VectorSrcLayer): pipe: Pipe = VectorPipe(layer, subset) elif isinstance(layer, RasterSrcLayer): pipe = RasterPipe(layer, subset) else: raise ValueError("Unknown layer type") return pipe
def _get_subset_tiles() -> Set[RasterSrcTile]: layer_dict = { **minimal_layer_dict, "dataset": "aqueduct_erosion_risk", "version": "v201911", "pixel_meaning": "level", "no_data": 0, "grid": "1/4000", } layer = layers.layer_factory(LayerModel.parse_obj(layer_dict)) assert isinstance(layer, layers.RasterSrcLayer) pipe = RasterPipe(layer) tiles = set() for i in range(10, 12): for j in range(10, 12): assert isinstance(pipe.grid, LatLngGrid) tile_id = pipe.grid.xy_to_tile_id(j, i) tiles.add( RasterSrcTile(tile_id=tile_id, grid=pipe.grid, layer=layer)) return tiles
def PIPE_10x10(LAYER): yield RasterPipe(LAYER, SUBSET_10x10)
def PIPE(LAYER): yield RasterPipe(LAYER, SUBSET_1x1)