def test_read_vector_window(geojson, landpoly_3857): """Read vector data from read_vector_window.""" zoom = 4 config = MapcheteConfig(geojson.path) vectorfile = config.params_at_zoom(zoom)["input"]["file1"] pixelbuffer = 5 tile_pyramid = BufferedTilePyramid("geodetic", pixelbuffer=pixelbuffer) tiles = tile_pyramid.tiles_from_geom(vectorfile.bbox(), zoom) feature_count = 0 for tile in tiles: for feature in read_vector_window(vectorfile.path, tile): assert "properties" in feature assert shape(feature["geometry"]).is_valid feature_count += 1 assert feature_count # into different CRS raw_config = geojson.dict raw_config["input"].update(file1=landpoly_3857) config = MapcheteConfig(raw_config) vectorfile = config.params_at_zoom(zoom)["input"]["file1"] pixelbuffer = 5 tile_pyramid = BufferedTilePyramid("geodetic", pixelbuffer=pixelbuffer) tiles = tile_pyramid.tiles_from_geom(vectorfile.bbox(), zoom) feature_count = 0 for tile in tiles: for feature in read_vector_window(vectorfile.path, tile): assert "properties" in feature assert shape(feature["geometry"]).is_valid feature_count += 1 assert feature_count
def test_read_raster_window_reproject(dummy1_3857_tif, minmax_zoom): """Read array with read_raster_window.""" zoom = 8 # with reproject config_raw = minmax_zoom.dict config_raw["input"].update(file1=dummy1_3857_tif) config = MapcheteConfig(config_raw) rasterfile = config.params_at_zoom(zoom)["input"]["file1"] dummy1_bbox = rasterfile.bbox() pixelbuffer = 5 tile_pyramid = BufferedTilePyramid("geodetic", pixelbuffer=pixelbuffer) tiles = list(tile_pyramid.tiles_from_geom(dummy1_bbox, zoom)) # target window out of CRS bounds band = read_raster_window(dummy1_3857_tif, tile_pyramid.tile(12, 0, 0)) assert isinstance(band, ma.MaskedArray) assert band.mask.all() # not intersecting tile tiles.append(tile_pyramid.tile(zoom, 1, 1)) # out of CRS bounds tiles.append(tile_pyramid.tile(zoom, 16, 1)) # out of file bbox for tile in tiles: for band in read_raster_window(dummy1_3857_tif, tile): assert isinstance(band, ma.MaskedArray) assert band.shape == tile.shape bands = read_raster_window(dummy1_3857_tif, tile, [1]) assert isinstance(bands, ma.MaskedArray) assert bands.shape == tile.shape # errors with pytest.raises(IOError): read_raster_window("nonexisting_path", tile)
def test_read_raster_window(dummy1_tif, minmax_zoom): """Read array with read_raster_window.""" zoom = 8 # without reproject config = MapcheteConfig(minmax_zoom.path) rasterfile = config.params_at_zoom(zoom)["input"]["file1"] dummy1_bbox = rasterfile.bbox() pixelbuffer = 5 tile_pyramid = BufferedTilePyramid("geodetic", pixelbuffer=pixelbuffer) tiles = list(tile_pyramid.tiles_from_geom(dummy1_bbox, zoom)) # add edge tile tiles.append(tile_pyramid.tile(8, 0, 0)) for tile in tiles: width, height = tile.shape for band in read_raster_window(dummy1_tif, tile): assert isinstance(band, ma.MaskedArray) assert band.shape == (width, height) for index in range(1, 4): band = read_raster_window(dummy1_tif, tile, index) assert isinstance(band, ma.MaskedArray) assert band.shape == (width, height) for index in [None, [1, 2, 3]]: band = read_raster_window(dummy1_tif, tile, index) assert isinstance(band, ma.MaskedArray) assert band.ndim == 3 assert band.shape == (3, width, height)
def test_read_raster_window(): """Read array with read_raster_window.""" dummy1 = os.path.join(TESTDATA_DIR, "dummy1.tif") zoom = 8 config = MapcheteConfig( os.path.join(SCRIPTDIR, "testdata/minmax_zoom.mapchete")) rasterfile = config.at_zoom(7)["input"]["file1"] dummy1_bbox = rasterfile.bbox() pixelbuffer = 5 tile_pyramid = BufferedTilePyramid("geodetic", pixelbuffer=pixelbuffer) tiles = tile_pyramid.tiles_from_geom(dummy1_bbox, zoom) width = height = tile_pyramid.tile_size + 2 * pixelbuffer for tile in tiles: for band in raster.read_raster_window(dummy1, tile): assert isinstance(band, ma.MaskedArray) assert band.shape == (width, height) for index in range(4): band = raster.read_raster_window(dummy1, tile, index).next() assert isinstance(band, ma.MaskedArray) assert band.shape == (width, height) for resampling in [ "nearest", "bilinear", "cubic", "cubic_spline", "lanczos", "average", "mode" ]: raster.read_raster_window(dummy1, tile, resampling=resampling)
def test_read_vector_window(): """Read vector data from read_vector_window.""" zoom = 4 config = MapcheteConfig( os.path.join(SCRIPTDIR, "testdata/geojson.mapchete")) vectorfile = config.at_zoom(zoom)["input"]["file1"] pixelbuffer = 5 tile_pyramid = BufferedTilePyramid("geodetic", pixelbuffer=pixelbuffer) tiles = tile_pyramid.tiles_from_geom(vectorfile.bbox(), zoom) feature_count = 0 for tile in tiles: for feature in vector.read_vector_window(vectorfile.path, tile): assert "properties" in feature assert shape(feature["geometry"]).is_valid feature_count += 1 assert feature_count