[gdal-dev] Raster Strategies Examples

Brent Fraser bfraser at geoanalytic.com
Mon Aug 9 10:24:33 EDT 2010


The steps you've listed below are correct for maximizing performance when 
viewing the raster at (or around) the native resolution of the data.  However, 
as you've found out, the performance can still be poor when trying to view the 
entire dataset.

The basic rule is that your application (mapserver?) should not have to open 
more than 4 to 8 raster files to render the view.  With that in mind (and since 
disk space is not a problem), create "layers" of the raster dataset at different 
scales, say a factor of 2, until you have only one image.

For example, if the resolution of your original data is 1 meter per pixel, your 
layers would look like the following.  Note the first eight layers are handled 
by the internal overviews you created with gdaladdo.

Pixel   Map Scale:
Size:   1:n
-----   ------
1 m     4,000
2       8,000
4       16,000
8       32k
16      64
32      128
64      250
128     500

Additional External Layers
256	1m
512	2m
1024	4m
2048	8m
4096	16m

To create the additional external layers, use GDAL's gdalbuiltvrt to create a 
VRT file of the original dataset.  You can then use gdal_retile.py or Maptiler 
to build the layers.

Best Regards,
Brent Fraser

Edi KARADUMI wrote:
> I have read many strategies for raster performance, but i still have 
> problems with my case. The posts that i have read explain the strategie, 
> but are not very detailed. Im new to mapserver so i have problems 
> implementing them. My case is: 
> 
> -about 6000 tiles that form the map 
> -170mb each tile 
> -aproximately 1.2T of iamges 
> -i have 10T HD and i think disk space is not a problem for me 
> -tile format is TIF 
> -tile size 9375x6250 pixels 
> 
> The strategy i have implemented and the problems i have 
> 
> -First i divided the tiles in 60 folders, to increase the performance in 
> disk seek/read. 
> 
> -Than i transformed source files into internally tiles with the command 
>    gdal_translate -of GTiff -co "TILED=YES" original.tif tiled.tif 
> 
> -i used gdaladdo to add internal pyramids 
> 
>    gdaladdo -r average 2 4 8 16 32 64 128 
> 
> -Created a tileindex using 
>    gdaltindex -write_absolute_path MapAll.shp 
> //server/Maps/Subfolder1/*.tif 
> 
> -Created a spatial index .qix file 
>    shptree MapAll.shp 
> 
> -than added the layer to the mapfile without the .shp extension so the 
> application can use the .qix 
> 
> as you may know, i have very slow performance when i zoom out and im 
> stucked here. As i have read i should make a copy of the tiles with 
> reduced resolution. Merge the tiles together and use min/max scale to 
> show different layers in different scales. the min/max scales i zoom 
> in/out are 100/1200000. Now my questions are 
> 
> - How can i calculate the scale where i should create another layer of 
> the tiles, or i shoud see it with some tests? 
> 
> - how much should be the resolution of the new layer? 
> 
> - is there any tools or program to merge the tiles? merging 6000 tiles 
> with the gdalwarp by writing the command by myself is frustrating 
> 
> - how many tiles should i merge together to create the new layer? (how 
> many tiles should have the new layer) i know that in each zoomscale its 
> better to appear only one tile but i dont know how to calculate it 
> 
> - the tiles that i should merge are the originals or those with internal 
> tiling and overviews? 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev



More information about the gdal-dev mailing list