I would like to propose a few changes in our log scaling algorithm for painting 
a dataset by a variable.   I discussed this with Utkarsh, and he asked that I 
bounce it off the e-mail list.  So, here goes.

Currently, when a user log scales a variable, if all data is positive, ParaView 
just uses the normal min and max.  There are times when this is not proper - 
for instance when looking at the temperature or density of material in a 
supernova, or velocity of outbound gas.  Another example is large data, with 
noise around zero.  I would like to propose that we have a user selectable 
option to set the minimum at maximum*10^-q, where q is user defined but 
defaults to 4.  In other words, the minimum would be set to 1*10^-4 of what the 
maximum is.

If all of the user's data is negative, ParaView grumbles, and then seg faults 
using a current master git pull - not optimal behavior.  In PV 4.1, it just 
sets min and max to 0.  I would like to propose that ParaView calculate the log 
of the data, as follows:  Index= -(log(abs(Var))).  Then, just draw the color 
legend as normal - for instance, red at top, white in the middle and blue at 
bottom.  Tick marks will be the reverse of positive log scaling - with the 
dense numbers, more negative numbers at the bottom and less dense, less 
negative numbers at the top.

The problem arises with data that spans positive and negative numbers.  Since 
the log of 0 is infinity, we have to deal with very small numbers in a special 
way.  I propose that we find maxVal = max(maximum, abs(minimum)).  Then, we set 
the color bar to run from maxVal to -maxVal.  We log scale the top half of the 
color legend, running from maxVal to maxVal*10^-4, and we reverse log scale the 
bottom half of the color legend, running from -maxVal*10^-4 to -maxVal.  We 
calculate this negative range the same as the all negative data section above.  
All data between maxVal*10^-4 and -maxVal*10^-4 would remain white by default, 
or user selectable black.

User selectable functionality would be as follows:
*       to allow/ not allow negative numbers (default allow)
*       to be able to change the q exponent (i.e., 4 above) (default 4)
*       to be able to change the painting color that is too small (default 
white)
*       to clamp minimum to some number (such as q == 4 above).  (default on).

Thoughts?

Alan


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/paraview

Reply via email to