[Mapserver-users] why does my raster layer turn my shapefile layer gray?
Dylan Keon
keon at nacse.org
Mon Mar 10 18:05:40 PST 2003
IIRC, the COLOR_MATCH_THRESHOLD post only appeared on the mapserver-dev
list. Here's the link:
http://lists.gis.umn.edu/pipermail/mapserver-dev/2003-February/000177.html
COLOR_MATCH_THRESHOLD was added at the end of February, so make sure
your 3.7 build is newer than that.
--Dylan
Ed McNierney wrote:
> Chris -
>
> Today must be "I ran out of colors" Day <g>.
>
> This is the same issue Aaron Hunt posted under "TRANSPARENCY problem",
> and was discussed under "COLOR_MATCH_THRESHOLD" a few days ago.
>
> You're running out of colors in your 8-bit output image. MapServer
> renders one layer at a time, starting from the beginning of your MAP
> file, and allocates new colors as needed by each layer. After you've
> drawn enough layers to use 256 distinct colors, all subsequent layers
> are stuck with the 256 colors already defined, and MapServer chooses the
> closest fit.
>
> If you display just the "baylands" layer, you use up two colors - two
> shades of blue. If you display just the "bayraster" layer, you get (I
> presume) 256 shades of gray.
>
> If you display the "bayraster" layer AND the "baylands" layer, the
> "bayraster" layer allocates 256 shades of gray, and there aren't any
> more palette colors available to create shades of blue - so the
> "baylands" layer is drawn using the shades of gray closest to those two
> shades of blue. And that's not very close.
>
> Solution path #1 - Use the OUTPUTFORMAT block in 3.7 to create a 24-bit
> output image. You will then get much larger map images, but you will no
> longer be constrained to the 256 colors in an 8-bit image.
>
> Solution path #2 - If you're using GDAL to read raster layers, see the
> mailing list for the COLOR_MATCH_THRESHOLD statement, which will cause
> MapServer to select a "close" match instead of an exact match when
> allocating colors for the raster layer. This will result in an
> on-the-fly reduction in the number of colors used by your raster layer;
> instead of using up a different palette entry for every unique shade of
> gray, MapServer will consider a near match to be "close enough" and use
> that existing shade of gray. This will mean that there are some palette
> colors still available when you get around to drawing the "baylands"
> layer.
>
> - Ed
>
> Ed McNierney
> President and Chief Mapmaker
> TopoZone.com / Maps a la carte, Inc.
> 73 Princeton Street, Suite 305
> North Chelmsford, MA 01863
> Phone: (978) 251-4242 Fax: (978) 251-1396
> ed at topozone.com
>
>
> -----Original Message-----
> From: Chris Black [mailto:cblack at CalAcademy.Org]
> Sent: Monday, March 10, 2003 8:44 PM
> To: mapserver-users at lists.gis.umn.edu
> Subject: [Mapserver-users] why does my raster layer turn my shapefile
> layer gray?
>
> Hello all,
>
> I have a map with two layers: one is an ArcView grid file that is a
> relief map of the SF Bay Area in various shades of gray. The other is a
>
> shapefile that show the bay waters in two classes, shallow and deep. If
>
> I display just the shapefile layer ("Baylands" in the mapfile below),
> these two classes are two different shades of blue. If I display the
> raster layer ("bayraster") as well, the classes are changed to shades of
>
> gray. Why does it happen, and how can I get my colors back?
>
> Much thanks for any help.
>
> -- Chris
>
> Mapserver version string: "MapServer version 3.7 (development)
> OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF OUTPUT=SWF SUPPORTS=PROJ
> SUPPORTS=TTF SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER
>
> SUPPORTS=GD2_RGB INPUT=EPPL7 INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE"
>
> I view the map with the url
> "http://localhost/Scripts/mapserv.exe?map=C:/inetpub/wwwroot/mapserverap
> ps/IZG/testraster.map&mode=map"
>
> testraster.map:
> --------------- cut here ----------------------
> # Note: Comments in a map file are preceeded by the pound (#) sign.
> # When MapServer encounters the pound sign, it will ignore the
> # rest of the line. Unfortunately, you can't comment a whole block
> # of code or text in MapServer. So, you're stuck with adding pound
> # signs for every line you wish to comment out.
>
>
> NAME CALCTYEX1
> EXTENT 467416 4085763 623532 4288980
> SIZE 350 300
> UNITS METERS
> SHAPEPATH "C:\inetpub\wwwroot\MapServerApps\IZG\data\"
> SYMBOLSET "C:\inetpub\wwwroot\MapServerApps\symbols\symbols.sym"
>
>
>
> LAYER
> data "c:\inetpub\wwwroot\sfbay\data\EcoAtlas\grid\sfbayshr"
> NAME "bayraster"
> STATUS DEFAULT
> TYPE RASTER
> CLASS
> NAME "Relief Map"
> END # CLASS
> END # LAYER
> LAYER
> NAME "Baylands"
> DATA "vector\mbypsfby"
> STATUS DEFAULT
> TYPE POLYGON
> CLASS
> NAME "Deep Bay"
> EXPRESSION ('[ENTITYID]' = 'A00000000000')
> COLOR 51 51 255
> END # CLASS
> CLASS
> NAME "Shallow Bay"
> EXPRESSION ('[ENTITYID]' = 'A10000000000' OR '[ENTITYID]' =
> 'A10000000090' OR '[ENTITYID]' = 'B4ST00000000')
> COLOR 102 102 204
> END # CLASS
> END # LAYER
> END # FILE
>
> --------------- cut here ----------------------------
> I don't understand grid files very well, so here's the listing of the
> grid directory and its children in case something is wrong there (though
>
> I don't think so, since the grid itself displays ok):
> -------- cut here -----------------
> C:/Inetpub/wwwroot/sfbay/data/EcoAtlas/grid:
> info
> sfbayshr
> sfbayshr.met
> sfbayshrw
> sfbr-sr-dbdesc.txt
>
> C:/Inetpub/wwwroot/sfbay/data/EcoAtlas/grid/info:
> arc.dir
> arc0000.dat
> arc0000.nit
> arc0001.dat
> arc0001.nit
> arc0002.dat
> arc0002.nit
> arc0002r.001
>
> C:/Inetpub/wwwroot/sfbay/data/EcoAtlas/grid/sfbayshr:
> dblbnd.adf
> hdr.adf
> log
> prj.adf
> sta.adf
> vat.adf
> w001001.adf
> w001001x.adf
> ---------- cut here ----------------
>
> _______________________________________________
> Mapserver-users mailing list
> Mapserver-users at lists.gis.umn.edu
> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>
> _______________________________________________
> Mapserver-users mailing list
> Mapserver-users at lists.gis.umn.edu
> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
--
************************************************
Dylan Keon
GIS/Database Research Specialist
Northwest Alliance for Computational
Science and Engineering (NACSE)
Oregon State University
Corvallis, OR 97331
keon at nacse.org (541) 737-6608
************************************************
More information about the MapServer-users
mailing list