Serving hillshaded maps
Travis Kirstine GIS Tech
tkirstine at JDBARNES.COM
Wed Jul 6 05:29:43 PDT 2005
Hey Mike,
I've included a email that was in the user group about a month ago which was
very helpful, providing info on how to handle raster datasets in mapserver
(overviews, tileindex, etc..).
If you don't have GDAL go to:
http://fwtools.maptools.org/
and the how to for the utilities at:
http://www.remotesensing.org/gdal/gdal_utilities.html
Good luck
Trav
>From: Gambin Dejan <Dejan.Gambin at PULA.HR>
>Reply-To: Gambin Dejan <Dejan.Gambin at PULA.HR>
>To: MAPSERVER-USERS at LISTS.UMN.EDU
>Subject: Re: [UMN_MAPSERVER-USERS] GeoTIFF overviews / TILEINDEX / Large
>dataset performance
>Date: Fri, 10 Jun 2005 08:33:20 +0200
>
>Frank,
>
>I have to say it is great to get such a detalied explanation of
>overviews/tiles/performance problems. I would personally very like to
>see some kind of HOWTO that would explain this in more details end
>technical/theoretical background. For example, how to create overviews
>that exactly match desired output resolution so no resampling occurs
>(with fixed set of zoom scales of course) and similar performance
>things.
>
>I would be happy enough if someone can point me to literature that
>explains all this stuff.
>
>regards
>
>dejan
>
>-----Original Message-----
>From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On
>Behalf Of Frank Warmerdam
>Sent: Thursday, June 09, 2005 9:53 PM
>To: MAPSERVER-USERS at LISTS.UMN.EDU
>Subject: Re: [UMN_MAPSERVER-USERS] GeoTIFF overviews / TILEINDEX / Large
>dataset performance
>
>
>On 6/4/05, Dan Greve <grevedan at hotmail.com> wrote:
> > To everyone,
> >
> > Are GeoTiff overviews taken advantage of by Mapserver? What's the
> > best way to handle large datasets (300 GB, 260,000 files in my case)
> > when you want the user to be able to view the whole dataset.
>
>
>Dan,
>
>I think that Mark had the right idea with creating new overview layers
>to kick in at various scales. To show an overview of your whole region
>it would be disaster to have touch all 260,000 of your files.
>
>To answer one specific question, MapServer will take advantage of
>overviews
>built into GeoTIFF files (assuming GDAL is in use).
>
> > I have a lot of data, probably about 300GB spread among 260,000 tiles.
>
> > Let's just say the region is... Texas. I want the user to be able to
> > see the data set at ANY zoom factor. He'd start out looking at the
> > entire state of texas, and be able to zoom progressively into a city
> > block, and back out again. If the data format could handle 300 GB in
> > a single file (I'm using GeoTIFF), theoretically the performance would
>
> > be better than if I created a TILEINDEX (shapefile) of the 260,000
> > tiles. I've seen this in smaller datasets when requesting the entire
> > scene, even just a 13000x13000 dataset with just over 2500 tiles.
>
>If GeoTIFF supported very large files (there are plans for "BigTIFF
>support" one day) then I might encourage you to just create one huge
>internally
>tiled GeoTIFF file with lots and lots of overview levels. You could use
>a
>format like Erdas Imagine that does support very large files and build
>one huge mosaic image, with lots of overviews. It *ought* to work quite
>efficiently though there might be some efficiency hits with such a large
>dataset. For instance, just processing the block pointers array might
>prove quite a bit of work.
>
>What Mark is suggesting is to:
>
> o Create a tile index for all your files. You will likely want a
>spatial
> index built on this tileindex shapefile.
>
> o Create a layer in your mapfile using this tileindex, perhaps named
> "mosaic_fullres".
>
> o I would suggest building internal overviews on all the individual
> geotiff files as well.
>
> o View the resulting layer in MapServer, starting near full resolution.
> Zoom out till performance degrades unacceptably. This will be a
> new resolution at which you you need to build a new "overview
>layer".
> This isn't an overview within the files in question, it is a whole
>new
> layer in the map. There are a variety of ways to build it. I would
>likely
> prepare a script to generate it with MapServer itself, by issuing a
>series
> of scripted render requests at your new chosen overview resolution.
>
> o If you produce this new layer as a set of tile files, you will also
>need
> a tileindex for it.
>
> o In the mapfile you will need to add this new set of tiles as a new
>layer.
> You will want to use the MINSCALE and MAXSCALE options on this
> layer and the full resolution layer to ensure that renders start to
>operate
> from this layer instead of the full resolution data at a suitable
>resolution.
>
> There is some mechanism (GROUP? Using the same layer name?) to
> ensure that this layer and the full res layer will be treated as a
>single
> layer from a user-visible point of view. I don't know this details
>of this
> aspect.
>
> o you can repeat the above overview layer steps to build additional
> overview layers if needed till your full scene gives acceptable
>performance.
>
>OK, looking over my garbled explanation, I'm not sure I have helped at
>all. This fairly common situations screams out for some sort of utility
>to help build the overview map layers. Or at least we should have a
>more detailed HOWTO for this process than I am in a position to prepare
>just now.
>
> >
> > When you say
> >
> > "I create a new tile grid shapefile using that map extent as the size
> > of one tile. I tile the entire map area (in my case the world). "
> >
> > Do you mean you just duplicate the entire dataset with larger tiles
> > when a TILEINDEX search would take longer?
>
>He means to duplicate the whole dataset, but at the much reduced
>resolution at which the render performance started to degrade. If your
>original files were fairly large, and had internal overviews built, I
>believe your first overview map layer would likely be at something like
>1/128'th of the resolution of the original data. So the overview dataset
>would then be 1/16000th the size of the original data or so.
>
> > When you say
> >
> > "I create a new aggregate image layer using calls to the map server to
>
> > generate an image for each new tile."
> >
> > I have no idea what you meant by "aggregate image layer"
>
>He means a whole new map layer which is at a reduced resolution. It is
>an aggregate of a whole bunch of calls to mapserver to render tiles of
>the total region. (hence the need for a new tile index).
>
> > Are you downsampling the image at all as you increase the tile sizes?
>
> > The raster howto on the UMN site has a snippet about Frank W. wanting
> > to implement using GeoTIFF overviews in the mapserver. Does mapserver
>
> > currently take advantage of this? Could you elaborate on your pyramid
> > scheme?
>
>Yes, he means that it would be at a much reduced resolution. The tile
>sizes in meters is much bigger, but the actual tile sizes in terms of
>pixels need not necessarily be much larger.
>
>Note that there are different types of tiling and overviews coming into
>play. o Macro tiling: Each tile is a separate TIFF file, and a
>tileindex shapefile
> is used to associate them to treat them as one layer in the .map
>file.
> o Internal tiling: A given TIFF file can be internally organized into
>tiles
> as opposed to strips (scanlines). This gives
>
> o "map level overviews": using mutiple layers in a .map file with
> MINSCALE/MAXSCALE to select which layer to render from.
> o "internal overviews": individual TIFF files can have overviews built
> in and GDAL will automatically take advantage of them if present.
>
>Best regards,
>--
>---------------------------------------+--------------------------------
>---------------------------------------+------
>I set the clouds in motion - turn up | Frank Warmerdam,
>warmerdam at pobox.com
>light and sound - activate the windows | http://pobox.com/~warmerdam
>and watch the world go round - Rush | Geospatial Programmer for Rent
----------------------------------------------------------------------------
----
-----Original Message-----
From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU]On
Behalf Of Mike Davis
Sent: Tuesday, July 05, 2005 8:01 PM
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: [UMN_MAPSERVER-USERS] Serving hillshaded maps
Hello List!
I am trying to decide wether to include a hillshade layer in our
Mapserver applications. I have played around with using an ESRI grid
hillshade in the past, as with any large raster image, it can slow
things down quite a bit. Additionally, hillshading may introduce some
problems when serving 8bit imagery.
I am wondering if anyone else out in list land has added a hillshade
layer to their maps. What approach works best for you?
Thanks in advance
-Mike
More information about the MapServer-users
mailing list