I have some MODIS imagery 250m resolution covering a large area which I generate tiles from using Mapnik and generate_tiles.py script. I need to run this script every day with new satellite images, therefore the tiles must be generated fast! I have noticed that the bigger the source image is (in MB) the slower it gets. Since my source MODIS image is quite huge, it takes ages to generate all those tiles.

My question is: Which is the best way of handling the files when it comes to creating tiles from raster?

Perhaps it might be faster to first generate large tiles (metatiles?) and then generate tiles from those tiles?

Note: the answer doesn't have to be Mapnik and generate_tiles.py. It could be maybe Mapserver, Tilecache etc.

Edit: I have found this question How to cut a 'tiled image' from a raster dataset using GDAL? which answers somewhat my question. What still remains unsolved is which size of metatiles should be used?

2 Answers 2


Instead of creating metatiles I have now tested different tiling scripts that I've found. They are all using the same source image which is a JPG (with a .JGW) in EPSG:3857 projection. Bilinear has been used in scaling and the zoom level was 9.

So far gdal2tiles.py wins!


Maptiler is a further development of gdal2tiles.py, written in C instead of python, by the same author. But you get the speed not for free...

Disclaimer: I do not get any of the money ;-)

  • 1
    I've seen that one but it's not an option because my project has (so far) no budget...
    – oskarlin
    Oct 23, 2013 at 9:45
  • 1
    Have you tried this: trac.osgeo.org/gdal/ticket/4379 to use mutltipe cores? Otherwise you will need to use several machines to do the job in reasonable time, or someone to put the code to C.
    – AndreJ
    Oct 23, 2013 at 10:30
  • Yes that's the one I've used in the tests below.
    – oskarlin
    Oct 23, 2013 at 12:03

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.