Sunday, 23 December 2018

Handling Many Raster Files in QGIS?


I have a project with a large number of raster files, but it is becoming very slow. I wonder which is the best way to handle all this. I'm simply georeferencing these files creating .wld file (geoTiff is better?) and than I open them as raster. Am I too naive?



Answer



There are many options here.


1) You can deal with multiple files like they are one file by creating a virtual raster. This can be done by selecting the Raster > Miscellaneous > Build Virtual Raster (Catalog) menu option. This creates a mosaic of the images (like a seamless layer in MapInfo or a mosaic raster layer in ArcGIS). This can be slow to load without creating pyramids (see below).


2) I would imagine the best increase in performance will come from pyramids. For each raster you could build overviews (pyramids). This can be done within QGIS by either a) opening Layer Properties and selecting the Pyramids tab. You can choose the pyramid levels you would like to use, whether you want the pyramids built into the file or not (maybe best to experiment with this setting unchecked to start with as it will alter your data with it checked) and the resampling method (which depends on the data).


enter image description here


b) You can also create pyramids on multiple datasets in one go by using the Raster > Miscellaneous > Build Overviews menu option. This allows for a batch mode. It has more advanced options, and its best to read this webpage to understand them gdaladdo.


enter image description here



I am not sure what the best method is for you, but trial and error is the best way to find out. I would test:


1) build pyramids for each raster file, create a virtual raster and then load this. This will help if you need to load specific files individually.


vs


2) building a virtual raster and building pyramids on the virtual raster. It may depend how often you are going to be adding more raster files, as this way you have to create the pyramids again whenever you add a new raster the the virtual raster, but I would imagine this will give faster performance than above if you need to load them all at once. This will help if you need to load all the raster at once.


You can of course use both of the above methods at the same time (depending the compression of the overviews, this can create a large amount of data so watch storage space).


Other answers on this site that might be of interest:


qgis-and-raster-mapping-in-seamless-layer


qgis-1-8-0-3-68-ram-2-4ghz-slowwwww-performance


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...