def bin_tiles_by_zoom_level_and_transform(tile_ids): ''' Place these tiles into separate lists according to their zoom level and transform type Parameters ---------- tile_ids: [str,...] A list of tile_ids (e.g. xyx.0.0.1) identifying the tiles to be retrieved Returns ------- tile_lists: {(zoomLevel, transformType): [tile_id, tile_id]} A dictionary of tile ids ''' tile_id_lists = col.defaultdict(set) for tile_id in tile_ids: tile_id_parts = tile_id.split('.') tile_position = list(map(int, tile_id_parts[1:4])) zoom_level = tile_position[0] transform_method = hgco.get_transform_type(tile_id) tile_id_lists[(zoom_level, transform_method)].add(tile_id) return tile_id_lists
def add_transform_type(tile_id): """ Add a transform type to a cooler tile id if it's not already present. Parameters ---------- tile_id: str A tile id (e.g. xyz.0.1.0) Returns ------- new_tile_id: str A formatted tile id, potentially with an added transform_type """ tile_id_parts = tile_id.split(".") tileset_uuid = tile_id_parts[0] tile_position = tile_id_parts[1:4] transform_type = hgco.get_transform_type(tile_id) new_tile_id = ".".join([tileset_uuid] + tile_position + [transform_type]) return new_tile_id