[GIS] merging raster aerials in QGIS issue

aerial photographygdalmergeqgisraster

I follow the instructions here very closely and yet every time QGIS gets caught in a loop. It takes a few small rasters totally less than 100mb and creates HUGE gb files and will not stop until python.exe is killed in task manager.

From one of the ecw's metadata :

Driver
GDAL provider
ECW
ERDAS Compressed Wavelets (SDK 5.0)
Dataset Description
E:/work/1680_U/aerials/1680_naip/global_mapper/defbri_gm/500ft_clips/87.ecw
COLORSPACE=MULTIBAND
COMPRESSION_RATE_TARGET=1
VERSION=2
Band 1
Band 2
Band 3
Band 4
Dimensions
X: 36702 Y: 14147 Bands: 4
X : 18351,Y 7073
X : 9175,Y 3536
X : 4587,Y 1768
X : 2293,Y 884
X : 1146,Y 442
X : 573,Y 221
Origin
614731,4.61751e+06
Pixel Size
1,-1
No Data Value
*NoDataValue not set*
Data Type
Byte - Eight bit unsigned integer
Pyramid overviews
Layer Spatial Reference System
+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
Layer Extent (layer original source projection)
614730.9328588016796857,4603364.5349677717313170 : 651432.9328588016796857,4617511.5349677717313170
Band
Band 1
Band No
1
No Stats
No stats collected yet
Band
Band 2
Band No
2
No Stats
No stats collected yet
Band
Band 3
Band No
3
No Stats
No stats collected yet
Band
Band 4
Band No
4
No Stats
No stats collected yet

Best Answer

I doubt your process "gets caught in a loop", I think it will just take a long time to complete as your rasters are actually quite large.

Those "small rasters totally less than 100mb" are roughly 2Gb uncompressed, each. The layer properties you included in your question show that particular raster has dimensions of 36702 cols, 14147 rows and 4 bands with an 8 bit (1 byte) data type. Therefore the uncompressed size of the raster is 36702*14147*4 bytes (1980.7 Mb).

ECW compression is quite effective...

Last year I was doing something similar and ended up with an output tiff which would have been 2TB if I did not use compression. The process took about a week to complete.

A couple of options:

  1. In the merge dialog, make sure "creation options" is checked and select JPEG compression as the profile.

    • This will still take a long time and won't give quite as good compression rate as ECW.
    • You can get even better compression if you add another row to the creation options with name=PHOTOMETRIC and value=YCBCR, but JPEG YCBCR only works for three band images so you would have to extract the RGB or CIR bands first (i.e using a VRT).
    • Note that JPEG compression is lossy (as is ECW), but you will get better compression than with lossless compression methods such as DEFLATE and LZW.
  2. Leave your rasters in ECW format and build a Virtual Raster (catalog).

    • This is the option above merge in the QGIS Raster->Miscellaneous menu.
    • This is my recommendation as the Virtual Raster is a simple text (xml) file that points to the original ECWs, so it takes up practically no disk space and will only take a few seconds to generate.