Thanks, i have read one of your posts: >Glen, > > As Frank has pointed out in his reply (and Ed has said for several > years), >the answer is to pyramid your data. This means constructing layers at >different resolutions, then setting MINSCALE MAXSCALE for each of the layers >in the map file. The goal is to improve the performance of Mapserver by >limiting the number of files it has to open to render a requested image. > > For example, I've set up a site to render the NASA's Geocover global >Landsat mosaic. To handle the range of requests from full resolution (14 >meters per pixel) to full world-wide coverage (20km per pixel), I set up six >levels (and I may add one more) of the pyramid (view in a fixed-pitched font >such as Courier): > > Largest >Number of Tile >Lvl: Map Scale: Resolution: Tile Size: >Pixels: Tiles Size Total Size: Format: >---- ---------- ----------- --------------------------- ---- >---- ---------- ----- ----------- ------ >6 1: 50k 14 meters 1:250k-ish (1/16 of 5x6 deg) 10k >x 10k 14064 26mb = 338 gb ECW >5 250k 50 meters 1:250k 1 deg H x 2 deg W 2k >x 2k 14921 3mb = 38.4 gb ECW >4 1m 200 meters ~1:1m 5 deg H x 6 deg W 3k >x 2k 36x60 = 2160 20mb = 26.1 gb TIFF >3 5m 30 sec ( 1km) 15 deg H x 30 deg W 2k >x 3k 12x12 = 144 20mb = 2.4 gb TIFF >2 20m 2 min ( 4km) 45 deg H x 90 deg W 1k >x 2k 4x 4 = 16 10mb = 0.167 gb TIFF >1 100m 10 min (20km) 180 deg H x360 deg W 1k >x 2k 1 = 1 7mb = 0.007 gb TIFF > >Disclaimer: The above is just an example of pyramiding a large raster >dataset (tuning by adding levels or adjusting scale will likely be >required). And I've broken Ed's Rule #3 ("For best performance, don't >compress your data") since levels 5 and 6 are ECW, and Rule #4 ("Don't >re-project your data on-the-fly") since levels 4,5,6 are in UTM. > >Brent Fraser >GeoAnalytic Inc. >Calgary, Alberta
but it is still confusing for me, cuz i havent worked for a long time with raster data. My pixel size is 0.08m and i use default resolution, 72. my images are 9375x6250 pixels. now i am having problems calculating how many overview should i build, meaning maybe i should not build the 128 overview but create another copy of the mosaic data on that point? or i should build the 256 overview and build the additional external layer in 512. I know these are some math calculations but im having problems Regards Edi Karadumi On Mon, Aug 9, 2010 at 4:24 PM, Brent Fraser <bfra...@geoanalytic.com> wrote: 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? -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/gdal-dev-Raster-Strategies-Examples-tp5364468p5430942.html Sent from the GDAL - Dev mailing list archive at Nabble.com. _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev