[Paraview] calculator filter via python
Utkarsh Ayachit
utkarsh.ayachit at kitware.com
Wed Jan 7 10:11:05 EST 2009
Alas there's no way for the python programmable filter to ask for a
particular timestep currently. This should be remedied soon. Feel free
to add a bug report at:
www.paraview.org/Bug
Thanks
Utkarsh
On Fri, Jan 2, 2009 at 4:00 PM, Peter Brady <petertbrady at gmail.com> wrote:
> I don't think I can do what I originally intended via the calculator
> filter due to the need to access the data in center[i][k] which is a
> data array in my script but the function parser won't know what to do
> with it. I was able to make some good progress using the programmable
> filter and the information on the wiki.
>
> My main question at this point is how do I access the time data from
> the programmable filter? I am using multiblockdatasets.
>
> Thanks,
> Peter.
>
> On Fri, Jan 2, 2009 at 11:04 AM, Peter Brady <petertbrady at gmail.com> wrote:
>> Hello all,
>>
>> I am trying to do calculations based on coordinate locations. In the
>> GUI I can simply select 'coordsX', 'coordsY', 'coordsZ'. From python
>> things seem to be more complicated. I've tried the snippet below with
>> several variations and keep getting errors
>>
>> calc_radius = servermanager.filters.Calculator(Input=g_cont)
>> calc_radius.AddCoordinateScalarVariable('coordsX', 0)
>> calc_radius.Function =
>> 'sqrt((coordsX-center[i][0])^2+(coordsY-center[i][1])^2+(coordsZ-center[i][2])^2)'
>> calc_radius.UpdatePipeline()
>>
>> I've also tried
>> calc_radius.AddCoordinateScalarVariable('coordsX')
>> but I get the error:
>> calc_radius.AddCoordinateScalarVariable('coordsX')
>> TypeError: __call__() takes exactly 1 argument (2 given)
>>
>> I've also tried using the scalar array name ('G' in this case) in
>> place of coordsX but have met the same error message.
>>
>> What is the correct way of doing this?
>>
>> Also, I've tried using the PV-Dump.py script that was suggested to me
>> previously but am met with the error:
>>
>> Traceback (most recent call last):
>> File "<console>", line 1, in <module>
>> File "<string>", line 33, in allToPython
>> File "<string>", line 48, in proxiesToPython
>> File "<string>", line 149, in __orderProxies
>> AttributeError: 'NoneType' object has no attribute 'groups'
>>
>> The offending lines are:
>> def __orderProxies( proxies ):
>> """Returns an array, where each entry contains the names of the proxies that
>> depend on the previous array entry."""
>> patternName = re.compile(' *XMLName: *(.*)')
>> patternValues = re.compile(' *Values: *(.*)')
>> patternHex = re.compile('^0x[0-9a-f]+$')
>> pmanager = servermanager.ProxyManager()
>>
>> dependencies = {} # COLLECT DEPS
>> for group in proxies: # For each proxy
>> for name in proxies[group]:
>> dependencies[group+':'+name] = {} # Init its depend.
>> proxy = proxies[group][name]
>>
>> for prop in proxy:
>> 148 match = patternName.search( str(prop) )
>> 149 propName = match.groups()[0]
>>
>> I was hoping that this script would be very helpful. Anyone else have
>> similar problems?
>>
>> Thanks in advance for your help,
>> Peter.
>>
> _______________________________________________
> ParaView mailing list
> ParaView at paraview.org
> http://www.paraview.org/mailman/listinfo/paraview
>
More information about the ParaView
mailing list