-1

I have over 500 TIFF images with the same projection. I need to combine all these files into one large file. From there I need to perform several clips of certain areas of interest.

I can do the clip part fine but I need to combine these 500 TIFFS into one large image. I am using ArcGIS 10.4.1.

I saw multiple methods of doing this and was wondering which is the most efficient. Mosaic data set, raster catalogs I am not really sure or which is outdated.

  • 1
    I've found the fastest way to merge tiff data is with Erdas Imagine's Mosaic Pro. Otherwise, I use Mosaic to New Raster in ArcGIS, which is notably slower. – Aaron Sep 2 '17 at 13:34
  • 2
    There are enough imponderables to make this question opinion-based. Given that you want to clip a subset, I can't help wonder why you don’t mosaic just the parts required, then clip from there. If you really need help on this you need to show more work, and provide more details as to the sizes and alignment of the component images. If you need a single image at the end, neither a catalog nor a mosaic dataset would be an end of the processing -- only a mosaic will do. There are other questions which address efficiency in mosaicking. – Vince Sep 2 '17 at 13:44
  • Vince I would love to select the rasters that i need to merge but i cant find a way to do that. All the files are named numerically and i cant select 50ish rasters in arcmap. Or haven't found a way to select the rasters i need then merge those specifically. (Select feature) – NULL.Dude Sep 2 '17 at 14:17
  • 1
    With ArcGIS the most efficient way is building mosaic dataset first (not mosaic into new raster !!!). Above dataset works as a single raster if needed and it is very fast to build. (I am working with thousands of tiled aerial images) – FelixIP Sep 3 '17 at 2:00
1

May be off topic because it is not a direct ArcGis solution:

For an simple routine you could use the GDAL tools gdal_merge.py in conjuction with gdal_translate to merge and cut the geo-tiffs on a data level (geotiff for example).

You will need python as well as gdal. You could install osgeo4w for windows, to get both tools in one step.

The "best-how-to-aspect" depends on the location and extention of the image cut's in the tile set you want to proceed. In a worst case it will have a fractal nature. A wild mix between many small footprints on the image borders at one side versus one big footprint overlapping many image tiles.

At least you could use a common resampling approach:

  1. calculate and sort the image cuts vs. the tiles that are involved and store them in a list.

     cut  minx miny maxx maxy tiles 
      1    10   10   2100 4200  (1,2,3,4) 
      2    310  310  2100 4200  (1,2,3,4) 
     ...
    
  2. resort the list and create an list of unique merge tasks

    tiles      cuts 
     (1,2,3,4)  (1,2)
    
  3. merge the tiles and procced the cut for each corresponding cut-image (pseudo code)

    tiles = readTile(tileList)
    cuts  = readCuts(cutList)
    foreach tile in tiles:
        proceed("gdal_merge.py -o temp_file file1, files2, file3, file 4")
        foreach cut in cuts.getID():
           id, minx, miny, maxx, maxy = cuts.getExtentFromCutList(cut)
           proceed("gdal_translate -o cut-id  -projwin minx maxy maxx miny temp_file" 
    

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.