[MapServer-users] mapserver: styling multiple stop colorrange for raster data

Seth G sethg at geographika.co.uk
Mon Aug 28 07:07:23 PDT 2023


A good question and it doesn't seem to be clearly documented. 
I've always tried values listed at https://mapserver.org/el/input/raster.html#raster-query even though that section appears to be written for MapScript. 
Each band has a value based on index, so you should get results using "value_0", "value_1", and "value_2" in RANGEITEM.
gdalinfo should peobably provide details on the value ranges in each band. 

Seth

--
web:https://geographika.net & https://mapserverstudio.net
twitter: @geographika

On Mon, Aug 28, 2023, at 2:50 PM, Trygve Aspenes via MapServer-users wrote:
> Thanks Seth for your quick reply
>
> Yes I have multiple bands. gdalinfo tells me I have bands like this:
> Band 1 Block=949x1069 Type=Float32, ColorInterp=Undefined
> Band 2 Block=949x1069 Type=Float32, ColorInterp=Undefined
> Band 3 Block=949x1069 Type=Float32, ColorInterp=Undefined
> .
> .
> .
> Band n Block=949x1069 Type=Float32, ColorInterp=Undefined
>
> So, how could I figure out how the various bands are named in mapserver 
> for the RANGEITEM?
>
> I have looked at the documentation for STYLE/RANGEITEM but I still don't 
> get it.
>
> I have tried various values for RANGEITEM ( like "value_0", "0", "1", 
> "pixel", "Band 1" etc), but I dont get it.
>
> It must be something that I'm missing.
>
> By the way, thanks for the mapserverstudio link. Most helpful!
> Trygve Aspenes
>
>
> Den 2023-08-28 13:14, skrev Seth G:
>> Hi Trygve,
>> 
>> You can have multiple start/stop values and your syntax looks correct. 
>> Maybe you have multiple bands in your raster and you are symbolising on 
>> the incorrect value? Try explicitly setting the RANGEITEM.
>> 
>> See working example at https://app.mapserverstudio.net/#9JBVADFh
>> 
>>         CLASS
>>             NAME "colorramp"
>>             STYLE
>>                 COLORRANGE "#e3edfc" "#287593" # a color gradient from 
>> light grey to a shade of blue
>>                 # a pixel value of -20 will be light grey, and values 
>> from -20 to 0 will be
>>                 # assigned a color from the colour gradient of light 
>> grey to blue
>>                 DATARANGE -20 0
>>                 RANGEITEM "value_0" # this is the name of the value 
>> band in the raster, the datasets used in the Mapfile have a single band
>>             END
>>             STYLE
>>                 COLORRANGE "#29497b" "#759387"
>>                 DATARANGE 0 20
>>                 RANGEITEM "value_0"
>>             END
>>             STYLE
>>                 COLORRANGE "#bfa96d" "#480d26"
>>                 DATARANGE 20 50
>>                 RANGEITEM "value_0"
>>             END
>>         END
>> 
>> Seth
>> 
>> 
>> --
>> web:https://geographika.net & https://mapserverstudio.net
>> twitter: @geographika
>> 
>> On Mon, Aug 28, 2023, at 12:06 PM, Trygve Aspenes via MapServer-users 
>> wrote:
>>> Hi all
>>> 
>>> I'm looking into creating a styling for a raster of float32 data.
>>> The data describes temperature in kelvin and I want to have a 
>>> colorrange
>>> from blue to white for data up to 273 deg kelvin(0 deg C). And from
>>> white to red for warmer data.
>>> 
>>> I see here
>>> https://mapserver.org/output/kerneldensity.html#raster-color-ramping 
>>> how
>>> this is used for heatmap hoping that this will work for a raster also.
>>> 
>>> I try with something like this:
>>> 
>>>      CLASS
>>>        STYLE
>>>          COLORRANGE "#0000ffff" "#ffffffff"
>>>          DATARANGE 200 273
>>>        END # STYLE
>>>        STYLE
>>>          COLORRANGE "#ffffffff" "#ff0000ff"
>>>          DATARANGE 273 315
>>>        END # STYLE
>>>      END # CLASS
>>> 
>>> but as far as I can see this gives me only white.
>>> 
>>> If I try to use one style like this:
>>> 
>>>      CLASS
>>>        STYLE
>>>          COLORRANGE "#0000ffff" "#ff0000ff"
>>>          DATARANGE 200 315
>>>        END # STYLE
>>>      END # CLASS
>>> 
>>> it works but the color range goes directly from red to blue.
>>> 
>>> Am I doing something wrong or can I not use multiple stops for these
>>> kind of data?
>>> 
>>> Trygve Aspenes
>>> _______________________________________________
>>> MapServer-users mailing list
>>> MapServer-users at lists.osgeo.org
>>> https://lists.osgeo.org/mailman/listinfo/mapserver-users
> _______________________________________________
> MapServer-users mailing list
> MapServer-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-users


More information about the MapServer-users mailing list