Alessio Fabiani ha scritto:
> Hi Andrea,
> see responses below...
> 
> On Thu, May 22, 2008 at 12:22 PM, Andrea Aime <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> wrote:
> 
>     Hi,
>     in the project we're following we need to make a couple of variants
>     to the sldService, so I guess I'll need to discuss them a bit to make
>     sure we don't break FAO users of that module.
> 
>     The first thing I need, is to change the generated rules so that they
>     all use closed intervals, such as:
>     0 <= x <= 10
>     10 < x <= 20
>     20 < x <= 30
>     as opposed of today's result:
>     x <= 10
>     10 < x <= 20
>     x > 20
> 
>     In order to do that without breaking current users, I was thinking
>     of adding a new parameter, closedIntervals=true/false to the POST
>     call that generates the intervals.
> 
> 
> Even using directly closing intervals won't break FAO implementation, so 
> use the solution you prefer ... however using the closingIntervals 
> parameter would give higher control on the rules generation, so in my 
> opinion we should go for it.

Ok, I'll add the parameter.

> 
>     The second issue is dealing with odd but not uncommon data histograms
>     like, for example {0 0 0 0 2 4 6 8}. If you ask the current quantile
>     classifier to classify that with 4 intervals, you'll get {0 0}, {0 0},
>     {2 4} {6 8}, which would result in very confusing rules (see attached
>     screenshot for an example).
> 
>     One idea I had is to make the quantile function detect the flat areas
>     and make it create separate classes for them, and then classify the
>     rest using the standard sized classes. The above example would then
>     become: {0 0 0 0} {2 4} {6 8}.
>     Another example: {0 1 2 3 3 3 4 5}, 2 classes -> {0 1 2} {3 3 3} {4 5},
>     that is, first isolate the flat area, then try to build classes of 4
>     elements with the rest of the data, accepting the fact that more classes
>     than requested may be generated.
> 
>     Another possible approach, which is easier because we can handle it
>     in post processing, that is, when building the rules, would be to
>     simply kill subsequent classes that do have the same min and max.
>     With the
>     above examples, the rules would become:
>     {0 0 0 0 2 4 6 8}
>     x = 0 (killing the second x = 0 interval)
>     0 < x <= 4
>     4 < x <= 8
>     or if you prefer, {0 0 0 0} {2 4} {6 8}
>     and:
>     {0 1 2 3 3 3 4 5}
>     0 <= x <= 3
>     3 < x <= 5
>     that is {0 1 2 3 3 3} {4 5}
> 
>     If the latter is good for FAO as well, I can just modify the way
>     we build the rules and avoid touching the underlying quantile
>     classification function. Opinions?
> 
> 
> I would prefer that simply the quantile generates the right rules, I 
> don't think that post-processing would be a good approach. I would 
> prefer to modify the client behaviour accepting the fact that quantile 
> can generate a different number of classes than requested.

It's not that simple for two reasons:
* the way the current quantile function works is mathematically sound,
   it's the data in the samples above that should not be fed into it.
   That is, {0 0} {0 0} {2 4} {6 8} is the right answer from a
   mathematical standpoint, 4 classes each of which has the same number
   of elements in it, and thus the same probability of representing
   a feature in the map.
* uDig is already using it as is, I cannot just go and change the
   functionality of it under its feet.

I tried to discuss this on the gt2-devel mailing list, but did not have
very good success. That's why post processing seems the easiest and most
effective way of dealing with it.
Cheers
Andrea

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to