Guest post from my colleague Patrick Lorch who wrote up what we did the other day in order to view a whole bunch of tiled images in a directory in QGIS (I did some mild editing to his posts. Mistakes are mine). The great thing about the approach is that is generalizeable to most tools that use GDAL for their raster API. This is part of a series. You can view this series in reverse with this post:
Building virtual datasets from a bunch of tiffs
What do you do when someone gives you aerial images stored as tiles in different directories representing different zoom levels? The goal is to make them easy to use as baselayers in QGIS. The answer is to reference them in a virtual data set (VRT).
gdalbuildvrt is the ticket
First make lists of tiffs
If the directory structure is something like this:
total 8047 drwxr-xr-x 7 pdl 4096 Apr 29 14:22 ./ drwxr-xr-x 5 pdl 4096 Apr 27 22:10 ../ drwxr-xr-x 2 pdl 1310720 Apr 22 21:37 0/ drwxr-xr-x 2 pdl 393216 Apr 22 22:54 1/ drwxr-xr-x 2 pdl 98304 Apr 28 14:44 2/ drwxr-xr-x 2 pdl 32768 Apr 28 14:44 3/ drwxr-xr-x 2 pdl 8192 Apr 28 14:44 4/
Then you first need a set of list files listing tiffs in each directory.
ls 0\*.tif > list0.txt ls 1\*.tif > list1.txt ls 2\*.tif > list2.txt ls 3\*.tif > list3.txt ls 4\*.tif > list4.txt
Now make the vrts
gdalbuildvrt -input_file_list list0.txt aerial_2015_0.vrt gdalbuildvrt -input_file_list list1.txt aerial_2015_1.vrt gdalbuildvrt -input_file_list list2.txt aerial_2015_2.vrt gdalbuildvrt -input_file_list list3.txt aerial_2015_3.vrt gdalbuildvrt -input_file_list list4.txt aerial_2015_4.vrt
Now you can open these in QGIS depending on what zoom level you need.
These VRTs may now be loaded as ordinary rasters in QGIS or whatever you please. In this case, we retiled with multiple resample levels (see this post for more info), so we’ll have to define max/min ranges at which the different image collections are visible.
Thanks for the write up Pat!