Jukka,
Strange. When I reviewed the source code it looked like Mapserver
would refused to classify any 24/32 bit image; I must have missed
something. So I tried your mapfile with shp2img v6.0.0 on a 24bit
image and it worked! Then I added
PROCESSING "BANDS=1,2,3"
and it *crashed*. Turning on debugging showed:
msLoadMap(): 0.000s
msDrawMap(): rendering using outputformat named png24 (AGG/PNG).
msDrawMap(): WMS/WFS set-up and query, 0.000s
msDrawRasterLayerLow(classified): entering.
msDrawRasterLayerGDAL(): Entering transform.
msDrawRasterLayerGDAL(): src=0,0,5300,5430, dst=107,0,585,599
msDrawRasterLayerGDAL(): source raster PL (-6.077,-4.533) for dst PL
(107,0).
msDrawRasterLayerGDAL(): red,green,blue,alpha bands = *1,2,3,0*
drawGDAL(): Unable to access file. Attempt to classify 24bit image, this
is unsupported.
msDrawMap(): Image handling error. Failed to draw layer named 'classified'.
<*crash*>
Without the PROCESSING directive, I get:
msLoadMap(): 0.000s
msDrawMap(): rendering using outputformat named png24 (AGG/PNG).
msDrawMap(): WMS/WFS set-up and query, 0.000s
msDrawRasterLayerLow(classified): entering.
msDrawRasterLayerGDAL(): Entering transform.
msDrawRasterLayerGDAL(): src=0,0,5300,5430, dst=107,0,585,599
msDrawRasterLayerGDAL(): source raster PL (-6.077,-4.533) for dst PL
(107,0).
msDrawRasterLayerGDAL(): red,green,blue,alpha bands = *1,0,0,0*
msDrawMap(): Layer 0 (classified), 0.187s
msDrawMap(): Drawing Label Cache, 0.000s
msDrawMap() total time: 0.187s
msSaveImage(test.png) total time: 0.125s
msFreeMap(): freeing map at 00BBC4A8.
freeLayer(): freeing layer at 00BBF9B0.
shp2img total time: 0.312s
The line
msDrawRasterLayerGDAL(): red,green,blue,alpha bands = *1,0,0,0*
implies that GDAL may be using only band one to do the classification,
but maybe not (more testing required?).
Removing the EXPRESSION object shows
msDrawRasterLayerGDAL(): red,green,blue,alpha bands = 1,2,3,0
And I do get a 24 bit image for output (as expected).
FYI, here's my mapfile:
MAP
NAME 'classified'
STATUS ON
EXTENT -5009377.086 10752549.183 392.653 15885200.067
SIZE 800 600
IMAGETYPE "png24"
OUTPUTFORMAT # Parameter Output
NAME png24
DRIVER "AGG/PNG"
MIMETYPE "image/png"
EXTENSION PNG
IMAGEMODE RGBA
TRANSPARENT ON
END # end of parameter Output
LAYER NAME "classified"
DATA "Arctic_terra.250m.tif"
DEBUG 5
TYPE raster
STATUS default
# PROCESSING "NODATA=0"
# PROCESSING "SCALE=AUTO"
# PROCESSING "BANDS=1,2,3"
# PROCESSING "DITHER=YES"
CLASS NAME "test"
# EXPRESSION ([pixel] > 100 AND [pixel] < 250)
EXPRESSION ([red] > 100 AND [green] > 100 AND [blue] > 100)
STYLE
COLOR 0 255 0
END #Style
END # Class
END # Layer
END # Map
Best Regards,
Brent Fraser
On 12/5/2012 2:27 AM, Rahkonen Jukka wrote:
Hi,
You should try to give more exact description about your problem. By reading
several mails which you have sent to MS4W list I believe that you are still
talking about the same images. That is 3-band, 8 bits per band images stored
into database as PostGIS raster and which you have tried to classify into
classes with something like this
CLASS # beginning of the class parameter
NAME "Very Low"
EXPRESSION ([pixel] > 0 AND [pixel] < 47)
STYLE
COLOR 243 231 172
END # end style for class
END # end class for class very Low
I had a try with some png file I found from my machine by using this in the
mapfile
LAYER
NAME "classified"
DATA "C:\ms4w\apps\data\8000000.png"
debug 10
TYPE RASTER
STATUS ON
PROJECTION
"init=epsg:3067"
END
CLASS
NAME "test"
EXPRESSION ([pixel] > 100 AND [pixel] < 250)
# EXPRESSION ([red] > 100 AND [green] > 100 AND [blue] > 100)
STYLE
COLOR 0 255 0
END
END
END
Both expressions work so Mapserver does support classification of 3-band, 8
bits per band png images.
Try you to convert your raster from the database into image file and repeat
your test. It if works from a file but not from PostGIS raster then you know
that the issue is somewhere in PostGIS raster handling.
-Jukka Rahkonen-
-----Alkuperäinen viesti-----
Lähettäjä: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-
users-boun...@lists.osgeo.org] Puolesta Lime, Steve D (DNR)
Lähetetty: 4. joulukuuta 2012 21:26
Vastaanottaja: Saint; mapserver-users@lists.osgeo.org
Aihe: Re: [mapserver-users] MapServer and 24bit Images
I display true-color imagery all the time. I suspect that's not what you're
trying to do though. You'll have to be more specific on format, perhaps post a
layer definition?
Steve
-----Original Message-----
From: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-
boun...@lists.osgeo.org] On Behalf Of Saint
Sent: Monday, December 03, 2012 10:06 AM
To: mapserver-users@lists.osgeo.org
Subject: [mapserver-users] MapServer and 24bit Images
Dear all,
I would like to have this confirmation, MapServer support 24bit image with 3
bands? I have one 24bit image 1 band and I can see in the browser but the
other with 3 bands I can't. Only appear the the outline line of the class e not
the image.
Many thanks
José Santos
-----
José Santos
GIS Analyst
--
View this message in context: http://osgeo-
org.1560.n6.nabble.com/MapServer-and-24bit-Images-tp5020409.html
Sent from the Mapserver - User mailing list archive at Nabble.com.
_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users