def main(): parser = argparse.ArgumentParser() parser.add_argument('path', type=str) parser.add_argument('out', type=str) parser.add_argument('--zoom', type=int, required=True) parser.add_argument('--ext', type=str, default='webp') args = parser.parse_args() os.makedirs(args.out, exist_ok=True) os.makedirs(os.path.join(args.out, str(args.zoom)), exist_ok=True) meta = tiler.bounds(args.path) bounds = meta['bounds'] tiles = list(mercantile.tiles(*bounds + [[args.zoom]])) for x, y, z in tqdm(tiles, desc='Tiling', unit='tile', ascii=True): os.makedirs(os.path.join(args.out, str(z), str(x)), exist_ok=True) data, _ = tiler.tile(args.path, x, y, z) img = reshape_as_image(data) img = Image.fromarray(img, mode='RGB') img.save(os.path.join(args.out, str(z), str(x), str(y) + '.' + args.ext), optimize=True)
def bounds(): """Handle bounds requests.""" query_args = APP.current_request.query_params query_args = query_args if isinstance(query_args, dict) else {} address = query_args['url'] info = main.bounds(address) return ('OK', 'application/json', json.dumps(info))
def test_bounds_valid(): """ Should work as expected (get bounds) """ meta = main.bounds(ADDRESS) assert meta.get("url") == ADDRESS assert len(meta.get("bounds")) == 4
def bounds(): """Handle bounds requests.""" url = request.args.get('url', default='', type=str) url = requote_uri(url) # address = query_args['url'] info = main.bounds(url) return (jsonify(info))
def bounds_handler(url: str) -> Tuple[str, str, str]: """Handle /bounds requests.""" info = cogTiler.bounds(url) return ("OK", "application/json", json.dumps(info))
def bounds(url: str) -> Tuple[str, str, str]: """Handle bounds requests.""" info = main.bounds(url) return ("OK", "application/json", json.dumps(info))
def bounds_handler(url: str) -> Tuple[str, str, str]: """Handle /bounds requests.""" with rasterio.Env(aws_session): return ("OK", "application/json", json.dumps(cogTiler.bounds(url)))
def bounds(url=None): """Handle bounds requests.""" if not url: raise TilerError("Missing 'url' parameter") info = main.bounds(url) return ("OK", "application/json", json.dumps(info))