I would agree that this is a bug.  The "Replace invalid results" was added 
because the calculator would spout out a bunch of errors when you have an 
expression that, for example, took the log of a negative number for some of the 
elements.  This was before we considered NANs and just wanted some sane 
fallback.  It makes sense that this option should apply to any result that is a 
non-finite number (of which NAN qualifies).  There are lots of use cases (yours 
included) where it is convenient to represent "invalid" entries with some 
placeholder number.  That said, when this option is not checked it also makes 
sense to output the correct non-finite number (NAN, +/-INF) as appropriate 
rather than report an error.

-Ken


On 8/20/10 1:12 PM, "Scott, W Alan" <wasc...@sandia.gov> wrote:

Question - shouldn't the calculator be able to handle this?  When you have 
"Replace invalid results" checked, shouldn't that change NANs to 0's?

Is this a bug - and should I write up a bug report?

Thanks,

Alan


From: paraview-boun...@paraview.org [mailto:paraview-boun...@paraview.org] On 
Behalf Of Scott, W Alan
Sent: Friday, August 20, 2010 11:13 AM
To: 'Eric E. Monson'
Cc: 'paraview@paraview.org list'
Subject: Re: [Paraview] nan

Thanks all!  I believe we have found numerous solutions.

Alan


From: Eric E. Monson [mailto:emon...@cs.duke.edu]
Sent: Friday, August 20, 2010 9:26 AM
To: Scott, W Alan
Cc: David E DeMarle; Aurélien Marsan; paraview@paraview.org list
Subject: Re: [Paraview] nan

If you can use numpy, and you're using a recent-enough version of ParaView, 
then you can also use the super-spiffy-numpy-hidden-behind-the-scenes 
programmable filter API to replace all of the attribute arrays with zero'd 
versions:



pdi = self.GetInputDataObject(0,0)

pdo = self.GetOutputDataObject(0)

pdo.CopyStructure(pdi)



for att_name in inputs[0].PointData.keys():

          naninc = inputs[0].PointData[att_name]

          zerod = numpy.nan_to_num(naninc)

          output.PointData.append(zerod, att_name)



Talk to you later,

-Eric



------------------------------------------------------

Eric E Monson

Duke Visualization Technology Group




On Aug 20, 2010, at 10:00 AM, Aurélien Marsan wrote:

Hi,

If you're using python, and if you can use the numpy library, you can use the 
function numpy.nan_to_num too.
http://docs.scipy.org/doc/numpy/reference/generated/numpy.nan_to_num.html#numpy.nan_to_num

Regards,

Aurélien

2010/8/20 David E DeMarle <dave.dema...@kitware.com>
That said, the same trick may work in the standard calculator filter
with the expression:

if(val=val, val, 0.0)


David E DeMarle
Kitware, Inc.
R&D Engineer
28 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-371-3971 x109

On Fri, Aug 20, 2010 at 9:26 AM, David E DeMarle
<dave.dema...@kitware.com> wrote:
> You might write a python filter that iterates over all floating point arrays 
> and
> replaces nan's with 0.
>
> According to 
> http://stackoverflow.com/questions/944700/how-to-check-for-nan-in-python
> The most py version robust way to check for nan is:
>
> def isNaN(num):
>    return num != num
>
> David E DeMarle
> Kitware, Inc.
> R&D Engineer
> 28 Corporate Drive
> Clifton Park, NY 12065-8662
> Phone: 518-371-3971 x109
>
>
>
> On Thu, Aug 19, 2010 at 11:24 PM, Moreland, Kenneth <kmo...@sandia.gov> wrote:
>> This might not be the best solution, but you can use the threshold filter to
>> remove NANs.  A NAN will always fall outside the threshold range.
>>
>> -Ken
>>
>>
>> On 8/19/10 6:28 PM, "Scott, W Alan" <wasc...@sandia.gov> wrote:
>>
>> Is there a way to convert nan's to zeros in ParaView?  I have a user that is
>> trying to use the integrate data filter, and it is having troubles with
>> NANs.
>>
>> Thanks,
>>
>> Alan
>>
>>
>>
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com <http://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://www.paraview.org/mailman/listinfo/paraview
>>
>>
>
_______________________________________________
Powered by www.kitware.com <http://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://www.paraview.org/mailman/listinfo/paraview

_______________________________________________
Powered by www.kitware.com <http://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://www.paraview.org/mailman/listinfo/paraview




   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********
*** *** ***  email: kmo...@sandia.gov
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel

_______________________________________________
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://www.paraview.org/mailman/listinfo/paraview

Reply via email to