<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:11pt;">
<div>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.</div>
<div> </div>
<div>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.</div>
<div> </div>
<div>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.</div>
<div> </div>
<div>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.</div>
<div> </div>
<div>User selectable functionality would be as follows:</div>
<ul style="margin:0;padding-left:36pt;">
<li>to allow/ not allow negative numbers (default allow)</li><li>to be able to change the q exponent (i.e., 4 above) (default 4)</li><li>to be able to change the painting color that is too small (default white)</li><li>to clamp minimum to some number (such as q == 4 above).  (default on).</li></ul>
<div> </div>
<div>Thoughts?</div>
<div> </div>
<div>Alan </div>
<div> </div>
<div> </div>
</span></font>
</body>
</html>