@@ -75,7 +75,9 @@ def cli():
7575
7676 parser = argparse .ArgumentParser (description = 'Tile the GTiffs and create a TileJSON file' )
7777 parser .add_argument ('--tiles-dir' , required = True , help = 'Directory to store the tiles' )
78- parser .add_argument ('--tiffs-dir' , required = True , help = 'Directory with GTiffs to tile' )
78+ tiffs_group = parser .add_mutually_exclusive_group (required = True )
79+ tiffs_group .add_argument ('--tiffs-dir' , help = 'Directory with GTiffs to tile' )
80+ tiffs_group .add_argument ('--tiffs-list-file' , help = 'File containing a list of tiff files to tile' )
7981 parser .add_argument ('--max-zoom' , type = int , required = True , help = 'Maximum zoom level for tiling' )
8082 parser .add_argument ('--min-zoom' , type = int , default = 0 , help = 'Minimum zoom level for tiling' )
8183 parser .add_argument ('--tile-extension' , type = str , default = 'webp' , choices = SUPPORTED_FORMATS , help = 'Tile file extension (default: webp)' )
@@ -102,8 +104,15 @@ def cli():
102104 tiles_dir = Path (args .tiles_dir )
103105 tiles_dir .mkdir (parents = True , exist_ok = True )
104106
105- file_names = list (glob .glob (f'{ args .tiffs_dir } /*.tif' ))
106- file_names = [ str (Path (f ).resolve ()) for f in file_names ]
107+ if args .tiffs_dir :
108+ file_names = list (glob .glob (f'{ args .tiffs_dir } /*.tif' ))
109+ file_names = [ str (Path (f ).resolve ()) for f in file_names ]
110+ else :
111+ tiff_list_path = Path (args .tiffs_list_file )
112+ if not tiff_list_path .exists ():
113+ parser .error (f'Tiffs list file { args .tiffs_list_file } does not exist' )
114+ file_names = [str (Path (line .strip ()).resolve ()) for line in tiff_list_path .read_text ().splitlines () if line .strip ()]
115+
107116 print (f'total files: { len (file_names )} ' )
108117
109118 file_list_file = Path ('files_to_tile.txt' )
0 commit comments