This question already has an answer here:
I have around 20'000+ TIFF-rasters that I need to somehow bring together into one raster. The rasters are model outputs and usually aren't big in size (<< 1 MB each). They do not overlap. The cell size for all of them is 10 m. I have written a little python script that copies the rasters, renames them and then starts the
mosaic to new raster process (code snippet below).
######## 4. Umbenennen und kopieren der Outputraster, inkl. löschen der nicht mehr benötigten Verzeichnisse arcpy.AddMessage("Umbenenn- und Kopiervorgang wird gestartet...") for raster in listRasters: new_name_raster = Sammelordner + raster[-25:-17] + ".tif" arcpy.CopyRaster_management(raster, new_name_raster) arcpy.Delete_management(raster[:-17]) arcpy.AddMessage("Umbenenn- und Kopiervorgang abgeschlossen.") kachelliste = arcpy.ListFiles("kachel*") for item in kachelliste: arcpy.Delete_management(item) arcpy.AddMessage("Leere Verzeichnisse gelöscht.") ######## 5. Mosaikieren der kopierten und umbenennten Raster: if check_mosaic.lower() == 'true': arcpy.AddMessage("Mosaikiervorgang wird gestartet...") arcpy.env.workspace = Sammelordner arcpy.env.scratchworkspace = Sammelordner arcpy.env.overwriteOutput = True mosaic_candidates = arcpy.ListRasters("*.tif","TIF") mosaic_name = desired_outputname + ".tif" arcpy.MosaicToNewRaster_management(mosaic_candidates, Mosaikordner, mosaic_name,"","32_BIT_FLOAT", 10, 1, "MAXIMUM", "LAST") else: arcpy.AddMessage("Mosaikiervorgang nicht durchgeführt.")
The script is now running since more than a week, the mosaic is slowly becoming larger and is about to reach it's goal size (I've tested the script with a smaller amount of rasters and then upscaled the resulting mosaic in order to estimate the goal size of the 20'000+ rasters). So the approach is working but I'd like to speed it up, since there is a chance I'll have to repeat the simulations and then create another mosaic...
The following ideas have been around:
- Would creating a mosaic dataset or a raster catalogue be much faster? I thought they weren't the right choices for my problem... I've read this (Fast way to merge 8000 raster?) but didn't find the answers too helpful for my problem.
- Would creating smaller mosaics (say i.e. 200 x 100 rasters) and then mosaic these togehter be much faster?
- I have read about the use of GDAL, but have no clue about how to access it using ArcGIS (I don't have QGIS or any other opensource GIS applications available at work). Would this help?
- Any other suggestions?