Proposed RFC on COLORRAMP Support (Bug 1305)
Stephen Woodbridge
woodbri at SWOODBRIDGE.COM
Tue Sep 27 10:25:43 EDT 2005
Bill,
It is great to see the RFC on this you posted.
1) I forward the attached email as a reminder of some of my input into
the RFC. There were other emails on this in 6/28 - 7/1/2005.
2) Please make sure %name% substitution is working and that any %name%
can be substituted multiple times.
3) I think that support for arbitrary discrete breaks (RAMPBREAKS below,
but call it as you wish) is extremely important. This is required for
most demographics and especially when the classification algorithm is
external to mapserver. You can take any range of data and classify it in
a number different ways, like kmeans, natural breaks, quantiles, etc and
I do not think we should expect mapserver to do all or any of these. To
do these you need to do two passes over the data, 1. to get all the
possible values and compute the range and break points, 2. to render the
objects.
The use case for this is an application the lets the user select the
classification algorithm from a list and then renders the map based on
the classification. Simple linear ramps are not adequate and mapserver
should not be burdened the classification algorithms BUT needs to
support getting passed a predefined classification.
Each of the classification algorithms will define a unique set of break
points like on the RAMPBREAKS below. You then need to present them in
their discrete bands. Also when you classify data as above you do not
know how many classes you are going to get back. You can specify the
maximum number of classes that the algorithm will create, but it
commonly creates less when you have clustering around a break point and
natural breaks to totally dependent on the data, you might ask for 10
breaks and get back 3. In this case you want to pick bottom of the ramp,
the middle of the ramp and the top of the ramp.
4) Support for multiple colors on the ramp to get the black->yellow->red
style ramps instead of doing it as classes. It seems very awkward to try
and split up a classification ramp across multiple classes. I'm trying
to keep the code in as few places as possible. I can generate all the
breaks, etc outside of mapserver and I would like to pass them through
the CGI interface (is CGI a new requirement you need to spec in the RFC)
I would hate to have to write additional mapscript to break my ramps
into classes.
5) You might want to consider separate out of band colors for above and
below the color band. It seems logical, but I'm not currently needing that.
I am happy to test this with the thematic mapping application I have
already built and needs feature like these.
Great RFC, glad you are trying to push this forward. It has been on my
list to respond to you on this and the RFC is just what was needed to
motivate me.
Best regards,
-Steve W.
-------- Original Message --------
Subject: Re: [UMN_MAPSERVER-USERS] Wishing we had COLORRAMPs or something
Date: Wed, 29 Jun 2005 11:07:52 -0400
From: Stephen Woodbridge <woodbri at SWOODBRIDGE.COM>
Reply-To: Stephen Woodbridge <woodbri at SWOODBRIDGE.COM>
To: MAPSERVER-USERS at LISTS.UMN.EDU
References: <42C1F3DC.4030908 at swoodbridge.com>
<Pine.LNX.4.58.0506282140530.2980 at fastcat.binko.net>
<42C21237.9070304 at swoodbridge.com>
<931f8ea90506290727157a1c05 at mail.gmail.com>
Frank,
I will add some thoughts to the bug. Off the top of my head, I am
thinking it would be nice to have something like:
RAMPBREAKS 0 5.2 27.3 ... 503.4
Which would be used to slot the RAMPITEM into discrete ranges instead of
continuous interpolation. This would get converted to something like
switch (RAMPITEM) {
case <= 0: under_range;
case <= 5.2: slot=0;
case <= 27.3: slot=1;
...
case <= 503.4: slot=n;
default: slot=over_range;
}
then use slot 0 .. n for lookup on the ramp and
allow:
OVERCOLOR 210 210 210
UNDERCOLOR 92 92 92
These makes it very flexible the user point of view, and we have all the
information to compute varying slots on a ramp, and for create legends
based on discrete slots.
Also, on the COLORRAMP allow multiple RGB points so you can have more
colors. Like:
COLORRAMP 0 0 255 255 255 255 255 0 0
for a ramp that goes from Blue to white to red
I need to play with it more, and I will add these thoughts to the bug.
Bill,
Right, I did not use a style, I will try that when I get a chance tonight.
Frank Warmerdam wrote:
> On 6/28/05, Stephen Woodbridge <woodbri at swoodbridge.com> wrote:
>
>>Bill,
>>
>>Hey, this sounds great!
>>I will give it a try. I knew you had done some work in this area, but I
>>did not realize it was in 4.6 which I am using.
>
>
> Steve,
>
> I believe the decision was to not document it as a supported
> feature for 4.6 so that we would have time to fiddle and improve
> it some more. However, I too am keen to have some people
> use it and provide feedback with the understanding that the
> mapfile syntax and approach may change a bit by 4.8
> when it would hopefully "stabilize" as a supported feature.
>
> Best regards,
More information about the mapserver-dev
mailing list