[Paraview] Multiple temporal shifts still not working right

Eric E. Monson emonson at cs.duke.edu
Fri Nov 21 10:15:43 EST 2008


Hey,

Sorry for the long email, but I find this problem difficult to  
describe succinctly...

In February I was trying to use multiple Temporal Shift Scale filters  
as input to a Python Programmable Filter to do on-the-fly point  
velocity calculations (for diffusing particles in my simulation  
output). There were troubles with the pipeline updating properly, and  
Ken Moreland came up with a nice self-contained test case and filed  
the bug 6307:

http://www.paraview.org/Bug/view.php?id=6307

which was listed in August as "fixed" because the test case seemed to  
work now. But, I don't think this is really resolved yet.

If you load in the TimeShiftTest2.pvsm state file, the animation seems  
to play correctly, but I think that's a red herring. If you turn off  
the visibility of the TemporalShiftScale filters, you can see that no  
boxes move until after t=1.0, whereas if the temporal filters are  
turned on, and the group filter is turned off, one box moves and then  
the other.

I don't know if this helps, but if you look at the Output printed by  
the Python filter in TimeShiftTest1.pvsm, you can see that the  
temporal data sets have the correct time, but the ImageData within  
them doesn't match.
......

All of this is much more clear to me when I load in a simple data set  
with one point moving in time (attached Xdmf data set -- I'll also  
attach a link to a state file which sets this pipeline up, but you'll  
have to change the path for the data file in the state file manually  
if you want to use it).

The pipeline is: Load data. Add a Temporal Shift Scale with (post)  
shift=0. Add another TSS off the original data set with (post) shift =  
1. Highlight both TSSs and route into a Python Programmable Filter  
with Unstructured Grid output and this script:

in0 = self.GetInputDataObject(0,0)
ds0 = in0.GetTimeStep(0)
in1 = self.GetInputDataObject(0,1)
ds1 = in1.GetTimeStep(0)
print 'in1 t = %.1f' % in1.GetInformation().Get(in1.DATA_TIME_STEPS(),0)
print 'ds1 t = %.1f' % ds1.GetInformation().Get(ds1.DATA_TIME_STEPS(),0)
print 'in0 t = %.1f' % in0.GetInformation().Get(in0.DATA_TIME_STEPS(),0)
print 'ds0 t = %.1f' % ds0.GetInformation().Get(ds0.DATA_TIME_STEPS(),0)
out1 = self.GetOutputDataObject(0)
out1.ShallowCopy(ds0)
print 'out1 t = %.1f' %  
out1.GetInformation().Get(out1.DATA_TIME_STEPS(),0)

When I animate this (PV CVS or 3.4, OS X 10.5.5), with the TSSs on and  
the PPF off, I see the expected: two points, one following the other.  
When the TSSs are off and the PPF is on, only one point shows up.  
Also, the behavior is different if the animation is stepped backwards  
rather than forwards. And, the printed Output times from the PPF show  
one of the ImageData sets time doesn't match its temporal host.

As in Ken's example, this works very similarly with a Group filter in  
place of the PPF.

This still seems very confusing, and I hope someone will have some clue!

Thanks,
-Eric

------------------------------------------------------
Eric E Monson
Duke Visualization Technology Group

Test data set:

-------------- next part --------------
A non-text attachment was scrubbed...
Name: singlePointTest1.xmf
Type: application/octet-stream
Size: 5328 bytes
Desc: not available
URL: <http://www.paraview.org/pipermail/paraview/attachments/20081121/01cfd952/attachment.obj>
-------------- next part --------------


State file to set up pipeline automatically:
http://www.cs.duke.edu/~emonson/TimeShiftData3.pvsm




More information about the ParaView mailing list