11

I have around 2-3000 1-bit GeoTIFFs of size 11000x9400. Color 0 should be transparent, and QGIS gets it wrong in the first place, so I used a .vrt file to set all the parameters in one single place.

Problem is, even if I set the layer to be visible only at a small scale, the project takes a lot of time to load in QGIS.

Which is the best way of dealing with all these files? I tried using grass, but I don't see if it can really be faster than QGIS.

2
  • By dealing with them, do you mean viewing them "on demand" or indexing them so they can searched for and updated? Jul 22, 2011 at 15:02
  • Just being able to have them in a project without them being a complete drag. The ability of viewing portions of the map in a decent time is a must, but that is something which is already possible in QGis, after the set has been loaded. If I right click on the set and hit "properties", however, I have to wait around a minute to see them...
    – Metiu
    Jul 22, 2011 at 15:05

4 Answers 4

6

I would say then that your best bet would be to use a WMS (something like MapServer or GeoServer, or their commercial equivalents), and serve your image data as tiles. It'll take a bit of setting up, but it would avoid having to load all the files just to see a small area at a time.

There are plenty of questions and good answers here about setting up a WMS, as well as plenty of tutorials on the web.

1
  • That's good, and it helps to use more than one core in my laptop at a time btw. It's not that portable to someone else's machine, but I'll try to work it out.
    – Metiu
    Jul 25, 2011 at 14:55
3

We had this same issue until we decided to make it a Tiled Map Service and cached the tiles. The suggestion to use a WMS was a very good one, although taking it a step further making it a GeoWebCache seems like a pretty attractive option. There are also many optimizations that can be made on Web Mapping Services(WMS) to improve performance also if your first implementation didn't perform as well as you had hoped.

Also, there is a community wiki that you can reference for map service software options.

1

Since you mentioned GRASS: you can use r.external to just register the Geotiffs in the GRASS Location rather than importing them. Fast as GDAL since it uses GDAL to read the maps on the fly.

0

It may help to create a nested VRT structure, with smaller numbers of tiles in the bottom level VRTs, and the resulting VRT files brought together in a parent VRT. The gdalbuildvrt tool is capable of creating a VRT of VRTs.

When you're trying to view/set properties for a VRT for a very large number of tiles it may be worth accessing the QGIS project file with a text editor instead of trying to use QGIS directly. Obviously you need to know what you are doing or you can break the project completely - however understanding how to make some changes can be trivial. If you can find something in the file which you know corresponds to current settings (for example the numbers which correspond to layer scale visibility settings) you know that this part of the file is responsible for that setting. Some settings can also be changed (including the layer scale visibility as it happens) from the layers panel without accessing the layer properties at all.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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