<br><font size=2 face="sans-serif">Samuel,</font>
<br><font size=2 face="sans-serif"> Ah yes - I was hoping
that another file format could make this process much easier. I started
looking a little at the file you provided me - though I don't have much
time at the moment to dig too deeply into this - I wanted to send a quick
thank-you for your response. The storage schema presented by EnSight
seems like it will dramatically reduce the number of files, and storage
requirements. </font>
<br>
<br><font size=2 face="sans-serif"> In your reply you
mentioned attaching a "copy of the EnSight format document".
I did not see this in the e-mail, though I did find this:</font>
<br><font size=2 face="sans-serif"> </font><a href="http://www-vis.lbl.gov/NERSC/Software/ensight/doc/OnlineHelp/UM-C11.pdf"><font size=3 color=blue><u>http://www-vis.lbl.gov/NERSC/Software/ensight/doc/OnlineHelp/UM-C11.pdf</u></font></a><font size=3>
</font>
<br><font size=2 face="sans-serif">Is this the correct format document
I should be referring to? If so - do you recommend a particular casefile
format to examine? This document appears to cover several: EnSight
Gold, EnSight6, and EnSight5. </font>
<br>
<br><font size=2 face="sans-serif"> My next step will
be to decipher this format enough to create a dataset that represents an
unstructured grid of coordinate X,Y,Z points with each point having a distinct
velocity vector over my time span. If you happen to have a concise
example of one of referenced 'VARIABLE' files - such as 'fmaego.data.nvel'
- I believe that would help me greatly in decoding the format quicker.
Otherwise no worries, I already feel like this is a much more tangible
approach and appreciate the help you have already offered! </font>
<br>
<br><font size=2 face="sans-serif">Thank You Again,</font>
<br><font size=2 face="sans-serif"> John</font>
<br>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">Samuel Key <samuelkey@bresnan.net></font>
<br>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">John CTR Mick/ACT/CNTR/FAA@FAA</font>
<tr>
<td valign=top><font size=1 color=#5f5f5f face="sans-serif">Cc:</font>
<td><font size=1 face="sans-serif">paraview@paraview.org</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">03/22/2012 02:06 PM</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">Re: [Paraview] Assistance/Suggestion
With Animating Relatively Small Datasets Over Many Timesteps</font></table>
<br>
<hr noshade>
<br>
<br>
<br><font size=3>John,<br>
<br>
You might try the EnSight reader in ParaView. (I have used this format
for many multiple-part models with a common time history.) It takes a little
time to decipher the EnSight format but once you get it to work, it is
very easy after that. The primary concept to keep in mind is that each
part is an independently displayable graphics object. Each datum item (scalar
or vector values assigned to cells and points) is kept in a separate file
that contains all time steps. This storage scheme really cuts down on the
number of files.<br>
<br>
Using the EnSight-format's part construct, you can use the Extract Block
filter to create a pipeline for each object, that is, do different graphics
operations on each part independently. <br>
<br>
I have attached a typical EnSight 'case' file and a copy of the EnSight
format document. Using EnSight-formatted input gives in my opinion, easy
access to a wide selection of very useful filters.<br>
<br>
Enjoy<br>
<br>
On 3/22/2012 11:02 AM, </font><a href=mailto:John.CTR.Mick@faa.gov><font size=3 color=blue><u>John.CTR.Mick@faa.gov</u></font></a><font size=3>
wrote: </font>
<br><font size=2 face="sans-serif"><br>
First, thank you for the quick response I appreciate the input.</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
I took at look at the state file you provided, and my first thoughts are
suggesting that the Transform Filter may not provide exactly what I need.
</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
In your example you are using the Animation Control to interpolate parameters
of the Transform Filter over time. However I don't believe that any
of the functions exposed <br>
by the Transform filter will help me actually remove Points along with
the data in their associated Data Arrays. </font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
In terms of viewing the "Information" tab in the Object Inspector
- I have a Dataset which has 2 Points, Several Arrays of Length 2 - and
I would like to create multiple filters; each <br>
which would contain only 1 Point with Data Arrays of size 1. </font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
Would it be helpful if I provided a state file with my test datasets?</font><font size=3>
<br>
<br>
</font>
<table width=100%>
<tr valign=top>
<td width=8%><font size=1 color=#5f5f5f face="sans-serif">From:</font><font size=3>
</font>
<td width=91%><font size=1 face="sans-serif">"Deij, Menno" </font><a href=mailto:M.Deij@marin.nl><font size=1 color=blue face="sans-serif"><u><M.Deij@marin.nl></u></font></a><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">John CTR Mick/ACT/CNTR/FAA@FAA, </font><a href=mailto:paraview@paraview.org><font size=1 color=blue face="sans-serif"><u>"paraview@paraview.org"</u></font></a><font size=1 face="sans-serif">
</font><a href=mailto:paraview@paraview.org><font size=1 color=blue face="sans-serif"><u><paraview@paraview.org></u></font></a><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">03/22/2012 12:39 PM</font><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">RE: [Paraview] Assistance/Suggestion
With Animating Relatively Small Datasets Over Many Timesteps</font></table>
<br><font size=3><br>
</font>
<hr noshade><font size=3><br>
<br>
<br>
</font>
<p><font size=2 color=#004080 face="Calibri">How about using a Transform
Filter, possibly using scripting? Not sure if that works with timesteps,
but I suppose it can be done.</font><font size=3> </font>
<p><font size=2 color=#004080 face="Calibri"> </font><font size=3>
</font>
<p><font size=2 color=#004080 face="Calibri">I made the following example
for someone on the list recently, that shows animation of a transformfilter:</font><font size=3>
</font>
<p><font size=2 color=#004080 face="Calibri"> </font><font size=3>
</font>
<p><a href="http://markmail.org/download.xqy?id=wjep757breylvtao&number=1"><font size=2 color=blue face="Calibri"><u>http://markmail.org/download.xqy?id=wjep757breylvtao&number=1</u></font></a><font size=2 color=#004080 face="Calibri">
(downloads a state file)</font><font size=3> </font>
<p><font size=2 color=#004080 face="Calibri"> </font><font size=3>
</font>
<p><font size=2 color=#004080 face="Calibri"> </font><font size=3>
</font>
<p>
<table>
<tr>
<td colspan=2><img src=cid:_2_079A9D04079A9930006DF7BF852579C9><img src=cid:_2_079A9F08079A9930006DF7BF852579C9>
<tr>
<td colspan=2><font size=2 color=#808080 face="Arial">dr. ir. Menno A.
Deij</font><font size=3> </font>
<tr>
<td><font size=2 color=#808080 face="Arial">Software Engineer</font><font size=3>
</font>
<td>
<tr>
<td><font size=2 color=#808080 face="Arial">Maritime Simulation Group</font><font size=3>
</font>
<td></table>
<p>
<table>
<tr>
<td><font size=3> </font>
<td><font size=2 color=#808080 face="Arial"><b>MARIN</b></font><font size=3>
</font>
<td><font size=3> </font>
<tr>
<td>
<td><font size=2 color=#808080 face="Arial">2, Haagsteeg</font><font size=3>
</font>
<td>
<tr>
<td><font size=2 color=#808080 face="Arial">E</font><font size=2 color=#424282 face="Arial">
</font><a href=mailto:M.Deij@marin.nl><font size=2 color=blue face="Arial"><u>M.Deij@marin.nl</u></font></a><font size=3>
</font>
<td><font size=2 color=#808080 face="Arial">P.O. Box 28</font><font size=3>
</font>
<td><font size=2 color=#808080 face="Arial">T +31 317 49 39 11</font><font size=3>
</font>
<tr>
<td>
<td><font size=2 color=#808080 face="Arial">6700 AA Wageningen</font><font size=3>
</font>
<td>
<tr>
<td><font size=2 color=#808080 face="Arial">T +31 317 49 35 06</font><font size=3>
</font>
<td><font size=2 color=#808080 face="Arial">The Netherlands</font><font size=3>
</font>
<td><font size=2 color=#808080 face="Arial">I </font><a href=http://www.marin.nl/ target=_top><font size=2 color=#424282 face="Arial"><u>www.marin.nl</u></font></a></table>
<br><font size=3><br>
</font>
<p><font size=2 color=#808080 face="Arial">MARIN news: </font><a href="http://www.marin.nl/web/News/News-items/Exploratory-study-on-the-working-principles-of-Energy-Saving-Devices.htm"><font size=1 color=#424282 face="Arial"><u>Exploratory
study on the working principles of Energy Saving Devices</u></font></a><font size=3>
</font><font size=2 color=#808080 face="Arial"><br>
This e-mail may be confidential, privileged and/or protected by copyright.
If you are not the intended recipient, you should return it to the sender
immediately and delete your copy from your system.</font><font size=3>
<br>
</font>
<p><font size=2 face="Tahoma"><b>From:</b> </font><a href="mailto:paraview-bounces@paraview.org"><font size=2 color=blue face="Tahoma"><u>paraview-bounces@paraview.org</u></font></a><font size=2 face="Tahoma">
[</font><a href="mailto:paraview-bounces@paraview.org"><font size=2 color=blue face="Tahoma"><u>mailto:paraview-bounces@paraview.org</u></font></a><font size=2 face="Tahoma">]
<b>On Behalf Of </b></font><a href=mailto:John.CTR.Mick@faa.gov><font size=2 color=blue face="Tahoma"><u>John.CTR.Mick@faa.gov</u></font></a><font size=2 face="Tahoma"><b><br>
Sent:</b> Thursday, March 22, 2012 5:13 PM<b><br>
To:</b> </font><a href=mailto:paraview@paraview.org><font size=2 color=blue face="Tahoma"><u>paraview@paraview.org</u></font></a><font size=2 face="Tahoma"><b><br>
Subject:</b> [Paraview] Assistance/Suggestion With Animating Relatively
Small Datasets Over Many Timesteps</font><font size=3> </font>
<p><font size=3> </font>
<p><font size=2 face="Arial"><br>
This is my first experience posting to the ParaView Mailing
List; as well as my first project I am exploring with ParaView. I
hope I am posting this question to the correct audience.</font><font size=3>
</font><font size=2 face="Arial"><br>
<br>
I am attempting to create an animation of our Solar System
- at an extremely high update interval - perhaps plotting the position
and velocity of significant solar system bodies over 165 Earth years at</font><font size=3>
</font><font size=2 face="Arial"><br>
a one day interval. Initially I thought I would be able to work with
CSV files to define a dataset which includes time, positional coordinates,
and velocity vectors. While testing this approach I managed to use
the TableToPoints filter to create a visualization of a sample dataset;
but I was not able to sequence over the individual timesteps. So
in effect you see all the positions a particular planet was at for the
entire duration of the dataset.</font><font size=3> </font><font size=2 face="Arial"><br>
<br>
I created a video of this test and made it available online:</font><font size=3>
</font><font size=2 face="Arial"><br>
</font><a href="http://www.youtube.com/watch?v=XLPxx-2Zc9Q"><font size=3 color=blue><u>http://www.youtube.com/watch?v=XLPxx-2Zc9Q</u></font></a><font size=3>
<br>
<br>
Next I thought perhaps the CSV format was a little too general
for what I needed, so I read the VTK file format document and migrated
over to the XML VTK format. It seems like there is no way to define
time sequenced data natively within the file format itself? ParaView
expects the user to break the timesteps into individual files - with a
numeric indicator in the filename to define the sequence. If I were
to take this approach, I could be looking at creating nearly 500,000 individual
files to represent the entire duration of time I'm interested in plotting.
I feel like there must be a better way to do this. <br>
<br>
As a small improvement I thought I could at least combine
all of the unique solar system bodies (Earth, Sun, etc.), into a single
timestep file such as this: <br>
(filename: timeseries_2455562.vtu) </font><font size=2 face="Lucida Console"><br>
<br>
<?xml version="1.0"?></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian"
compressor="vtkZLibDataCompressor"></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<UnstructuredGrid></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<Piece NumberOfPoints="2" NumberOfCells="2"></font><font size=3>
</font><font size=2 face="Lucida Console"><br>
<PointData Vectors="Velocity" Scalars="Radius"></font><font size=3>
</font><font size=2 face="Lucida Console"><br>
<DataArray Name="Time" type="Float32"
format="ascii">2455562 2455562</DataArray></font><font size=3>
</font><font size=2 face="Lucida Console"><br>
<DataArray Name="Radius" type="Float32"
format="ascii">6371 696000</DataArray></font><font size=3>
</font><font size=2 face="Lucida Console"><br>
<DataArray Name="Velocity" type="Float32"
NumberOfComponents="3" format="ascii"></font><font size=3>
</font><font size=2 face="Lucida Console"><br>
-2.982651603443954E+01 -5.304542013817379E+00
-7.226846229160870E-04</font><font size=3> </font><font size=2 face="Lucida Console"><br>
0 0 0</font><font size=3> </font><font size=2 face="Lucida Console"><br>
</DataArray></font><font size=3> </font><font size=2 face="Lucida Console"><br>
</PointData></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<Points></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<DataArray type="Float32" NumberOfComponents="3"
format="ascii"></font><font size=3> </font><font size=2 face="Lucida Console"><br>
-2.567030301930377E+07 1.448508985971261E+08
-3.607762965630511E+03</font><font size=3> </font><font size=2 face="Lucida Console"><br>
0 0 0</font><font size=3> </font><font size=2 face="Lucida Console"><br>
</DataArray></font><font size=3> </font><font size=2 face="Lucida Console"><br>
</Points></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<Cells></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<DataArray Name="connectivity" type="Int32"
format="ascii">0 1</DataArray></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<DataArray Name="offsets" type="Int32"
format="ascii">1 2</DataArray></font><font size=3> </font><font size=2 face="Lucida Console"><br>
<DataArray Name="types" type="UInt8"
format="ascii">1 1</DataArray></font><font size=3> </font><font size=2 face="Lucida Console"><br>
</Cells></font><font size=3> </font><font size=2 face="Lucida Console"><br>
</Piece></font><font size=3> </font><font size=2 face="Lucida Console"><br>
</UnstructuredGrid></font><font size=3> </font><font size=2 face="Lucida Console"><br>
</VTKFile></font><font size=3> <br>
<br>
The idea of this approach was to list all of the scalars and vectors for
each corresponding body in a single file. In this example the first
listed scalar, vector, or coordinate point, is the Earth while the second
set of values indicates the Sun's data. By combining the bodies into
a single file I could reduce the 500,000 files required down to some 60,000
files....still undesirable but better. <br>
<br>
However I would also like to segment the Points once inside the ParaView
environment; so I can create a distinct pipeline for each body in the dataset.
One application for this would be to allow different Glyph rendering
rules for the Sun and the Earth so I can make the Sun...have a Sun texture
- and the Earth an Earth texture. <br>
<br>
After experimenting with this for awhile I found myself trying to implement
a Programmable Filter. The filter would take the Unstructured Grid
for the given timestep, and given an index, extract the Point, Scalar,
and Vector data from its input - then set only those values to the Output
Unstructured Grid. I currently have a script that looks something
like this: </font><font size=2 face="Lucida Console"><br>
<br>
# CELLID 0 = EARTH</font><font size=3> </font><font size=2 face="Lucida Console"><br>
cellId = 0</font><font size=3> </font><font size=2 face="Lucida Console"><br>
<br>
# Obtain References To Input/Output Data</font><font size=3> </font><font size=2 face="Lucida Console"><br>
gridI = self.GetUnstructuredGridInput()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
gridO = self.GetUnstructuredGridOutput()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
dataI = self.GetInput()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
dataO = self.GetOutput()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
scalarI = dataI.GetPointData().GetScalars()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
vectorI = dataI.GetPointData().GetVectors()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
<br>
# Initialize Local Storage Arrays</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newVector = vtk.vtkFloatArray()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newVector.SetName(vectorI.GetName())</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newVector.SetNumberOfComponents(3)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newScalar = vtk.vtkFloatArray()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newScalar.SetName(scalarI.GetName())</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newPoint = vtk.vtkPoints()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newPoint.SetNumberOfPoints(1)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newCell = vtk.vtkCellArray()</font><font size=3> </font><font size=2 face="Lucida Console"><br>
<br>
# Lookup CellId References</font><font size=3> </font><font size=2 face="Lucida Console"><br>
idCell = gridI.GetCell(cellId)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
idCellType = gridI.GetCellType(cellId)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
idPoint = gridI.GetPoints().GetPoint(cellId)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
idScalar = scalarI.GetTuple(cellId)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
idVector = vectorI.GetTuple(cellId)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
<br>
# Populate New Local Cell Array with CellId Cell</font><font size=3> </font><font size=2 face="Lucida Console"><br>
newCell.InsertNextCell(idCell)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
<br>
# Populate New Local Point Array With CellId Point</font><font size=3>
</font><font size=2 face="Lucida Console"><br>
newPoint.SetPoint(0, idPoint)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
<br>
# Populate New Local Scalars with CellId Scalar Tuples</font><font size=3>
</font><font size=2 face="Lucida Console"><br>
newScalar.InsertNextTuple(idScalar)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
<br>
# Populate New Local Vectors with CellID Vector Tuples</font><font size=3>
</font><font size=2 face="Lucida Console"><br>
newVector.InsertNextTuple(idVector)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
<br>
# Copy Local Cells, Scalars, Vectors, and Points Into Output Pipeline Data</font><font size=3>
</font><font size=2 face="Lucida Console"><br>
gridO.SetPoints(newPoint)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
gridO.SetCells(idCellType, newCell)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
dataO.GetPointData().SetScalars(newScalar)</font><font size=3> </font><font size=2 face="Lucida Console"><br>
dataO.GetPointData().SetVectors(newVector)</font><font size=3> </font><font size=2 face="Arial"><br>
<br>
The filter does achieve the desired effect for the cellID 0 - but when
I switch the value of cellID to 1 (which should refer to the Sun's index)
ParaView crashes hard - where I assume I am missing something, possibly
requesting something out of bounds in memory.</font><font size=3> </font><font size=2 face="Arial"><br>
<br>
I've been struggling with this problem for a little while now and thought
to share my progress here; hopefully there is somebody out there with a
little more insight that could help guide me towards either a conclusion
with this implementation or a suggestion for a better approach.</font><font size=3>
</font><font size=2 face="Arial"><br>
<br>
Essentially - How can one give ParaView Point and Velocity vectors over
a vast sequence of time without creating potentially hundreds of thousands
of files on disc? Does this Programmable Filter seem like a reasonable
approach? Is there a native feature I am missing that does this already?
Is there some other file format other than VTK I could use to have
ParaView understand this format of data?</font><font size=3> </font><font size=2 face="Arial"><br>
<br>
Any thoughts, comments, or questions will be greatly appreciated. :)</font><font size=3>
</font><font size=2 face="Arial"><br>
<br>
Thanks,</font><font size=3> </font><font size=2 face="Arial"><br>
John</font><font size=3> </font>
<p>
<p>
<br><tt><font size=3>_______________________________________________<br>
Powered by </font></tt><a href=http://www.kitware.com/><tt><font size=3 color=blue><u>www.kitware.com</u></font></tt></a><tt><font size=3><br>
<br>
Visit other Kitware open-source projects at </font></tt><a href=http://www.kitware.com/opensource/opensource.html><tt><font size=3 color=blue><u>http://www.kitware.com/opensource/opensource.html</u></font></tt></a><tt><font size=3><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: </font></tt><a href=http://paraview.org/Wiki/ParaView><tt><font size=3 color=blue><u>http://paraview.org/Wiki/ParaView</u></font></tt></a><tt><font size=3><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
</font></tt><a href=http://www.paraview.org/mailman/listinfo/paraview><tt><font size=3 color=blue><u>http://www.paraview.org/mailman/listinfo/paraview</u></font></tt></a><tt><font size=3><br>
</font></tt><tt><font size=2>A MIME attachment of type <application/x-gzip>
was removed here<br>
by a drop-attachments-by-filetype filter rule on the host <relay1.faa.gov>.<br>
[attachment "fmaego.data.case" deleted by John CTR Mick/ACT/CNTR/FAA]
</font></tt><font size=3>This e-mail was cleaned by Network Operations.
No further action is required from you.</font>
<br>
<br>