<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 16, 2014 at 3:07 PM, Andy Bauer <span dir="ltr"><<a href="mailto:andy.bauer@kitware.com" target="_blank">andy.bauer@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>Hi Bill,<br><br></div>A couple of hopefully helpful hints:<br>
<ul><li>Maybe using a filter's Input object is enough to get the pipeline connections you want (i.e. aa = bb.Input). This though assumes you're working from the sink in the pipeline as opposed to a source. </li></ul>
</div></blockquote><div><br></div><div>I have recently added something like this to the server side protocols for ParaViewWeb, though it's not yet in master.  Effectively, it just does what you recommended, Andy, but doesn't require starting at the sink, and is a complete example.  Here's how I got the pipeline connections:</div>
<div><br></div><div><div><font face="courier new, monospace">proxies = servermanager.ProxyManager().GetProxiesInGroup("sources")</font></div><div><font face="courier new, monospace">proxyList = []</font></div><div>
<font face="courier new, monospace">for key in proxies:</font></div><div><font face="courier new, monospace">    listElt = {}</font></div><div><font face="courier new, monospace">    listElt['name'] = key[0]</font></div>
<div><font face="courier new, monospace">    listElt['id'] = key[1]</font></div><div><font face="courier new, monospace">    proxy = proxies[key]</font></div><div><font face="courier new, monospace">    parentId = '0'</font></div>
<div><font face="courier new, monospace">    if hasattr(proxy, 'Input'):</font></div><div><font face="courier new, monospace">        parentId = proxy.Input.GetGlobalIDAsString()</font></div><div><font face="courier new, monospace">    listElt['parent'] = parentId</font></div>
<div><font face="courier new, monospace">    proxyList.append(listElt)</font></div><div><br></div></div><div>After this code finishes, <font face="courier new, monospace">proxyList</font> contains all the sources and filters in the pipeline and identifies each one's <font face="courier new, monospace">Input</font> proxy id with the key '<font face="courier new, monospace">parent</font>'.  The actual source (reader or whatever has no <font face="courier new, monospace">Input</font>), has <font face="courier new, monospace">'parent': '0'</font>.  Perhaps modifying this code so it builds a dictionary (mapping each proxy id to the appropriate <font face="courier new, monospace">listElt</font> object) instead of a list, and then making a note of the proxy which does not have an <font face="courier new, monospace">Input</font> property when it is encountered, this would allow Bill to efficiently build the ascii map he is looking for?</div>
<div><br></div><div>Cheers,</div><div>Scott</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><ul>
<li>As for getting the available arrays for a filter, you can do something like:</li></ul><div style="margin-left:80px">for da in range(aa.PointData.NumberOfArrays):<br></div><div style="margin-left:80px">  bb.PointData.GetArray(da)<br>

</div><br><ul><li>There was work on only writing out Python scripts with non-default values which made the scripts much shorter. Somewhere there was an option to specify whether to write out all values of the objects for trace and python state or just the non-defaults but I can't find it now. It looks like what you have already works but just wanted to mention that.</li>

</ul><p>Does this answer your questions?</p><p><br></p><p>Regards,</p><p>Andy<br></p></div><div class=""><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 16, 2014 at 12:51 AM, Bill Sherman <span dir="ltr"><<a href="mailto:shermanw@indiana.edu" target="_blank">shermanw@indiana.edu</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Community,<br>
<br>
I've been creating some simple python scripts that help me see a<br>
simple representation of the state of ParaView.<br>
<br>
One thing I wanted was to be able to see what changes had been<br>
made such that a value was no longer the default.  Then, I'm going<br>
to print this out at the beginning of my batch animation jobs, which<br>
will then go into the log file generated by the queuing system.<br>
<br>
So here is my function to do that for an object:<br>
<br>
----------<br>
def altered(object):<br>
    if (object == None):<br>
        return<br>
    dup = object.__class__()<br>
    for prop in dup.ListProperties():<br>
        if (hasattr(object.GetProperty(<u></u>prop), 'GetData')):<br>
            if (dup.GetProperty(prop).<u></u>GetData() != object.GetProperty(prop).<u></u>GetData()):<br>
                print prop + ": " + str(object.GetProperty(prop))[<u></u>:80] + " [" + str(dup.GetProperty(prop)) + "]"<br>
    del(dup)<br>
    del(prop)<br>
----------<br>
<br>
And then I can loop over all the sources to get a handy list:<br>
<br>
----------<br>
for src in GetSources():<br>
  srcp = FindSource(src[0])<br>
  print "********************"<br>
  print "    " + src[0] + " -- " + srcp.GetXMLLabel()<br>
  altered(srcp)<br>
  print "    ---------------"<br>
  print "    Representation:"<br>
  altered(GetDisplayProperties(<u></u>srcp))<br>
----------<br>
<br>
So the main missing feature for me is trying to show how the sources<br>
are linked together -- basically recreating the pipeline display,<br>
except as ASCII text.  But I haven't yet figured out how to<br>
programmatically determine which "sources" are connected to which.<br>
<br>
<br>
The other thing I'd like to be able to do is report what other<br>
field data is available from a file reader -- I can see by looking<br>
in the .pvsm file that that data was saved, so I hope it might<br>
be somehow available via the Python interface.<br>
<br>
<br>
<br>
So here's some sample output from a state file I'm experimenting<br>
with:<br>
<br>
********************<br>
    Glyph1 -- Glyph<br>
GlyphTransform: <paraview.servermanager.<u></u>Transform2 object at 0x163 [<paraview.servermanager.<u></u>Transform2 object at 0x1632910>]<br>
Input: <paraview.servermanager.<u></u>TemporalParticlesToPathlin [None]<br>
MaximumNumberofPoints: 50000 [5000]<br>
Scalars: ['POINTS', 'mass'] [[None, '']]<br>
Vectors: ['POINTS', 'velocity'] [[None, '']]<br>
SetScaleFactor: 0.462090686322849 [1.0]<br>
GlyphType: <paraview.servermanager.Sphere object at 0x16f24d0 [<paraview.servermanager.Arrow object at 0x1632190>]<br>
MaskPoints: 0 [1]<br>
    ----------------<br>
    Representations<br>
Input: <paraview.servermanager.Glyph object at 0x162e890> [None]<br>
SelectionPointFieldDataArrayNa<u></u>me: 'mass' ['vtkOriginalPointIds']<br>
ColorArrayName: ('POINT_DATA', 'mass') [('POINT_DATA', '')]<br>
DataBounds: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] [[5.6965768965495727e-321, 4.7846668906873337e-316, 4.7559715579768741e-316, 9.3872472709836843e-323, 0.0, 5.6490774253583952e-318]]<br>
LookupTable: <paraview.servermanager.<u></u>PVLookupTable object at 0x [None]<br>
ScaleFactor: 0.68949565887451203 [1.0]<br>
********************<br>
    TemporalParticlesToPathlines1 -- Temporal Particles To Pathlines<br>
Input: <paraview.servermanager.<u></u>LegacyVTKReader object at  [None]<br>
MaskPoints: 1 [100]<br>
    ----------------<br>
    Representations<br>
Input: <paraview.servermanager.<u></u>TemporalParticlesToPathlin [None]<br>
SelectionPointFieldDataArrayNa<u></u>me: 'TrailId' ['vtkOriginalPointIds']<br>
Visibility: 0 [1]<br>
DataBounds: [0.0, nan, nan, nan, nan, 4.243991581436479e-314] [[2.0018638793749296e-316, 2.0020954973496999e-316, 4.7763681688472674e-316, 2.0021053786626168e-316, 2.0021022166424834e-316, 2.0001733843611191e-316]]<br>
LookupTable: <paraview.servermanager.<u></u>PVLookupTable object at 0x [None]<br>
ScaleFactor: 0.45304816961288502 [1.0]<br>
********************<br>
    Tube1 -- Tube<br>
Capping: 0 [1]<br>
Input: <paraview.servermanager.<u></u>TemporalParticlesToPathlin [None]<br>
NumberofSides: 5 [6]<br>
Radius: 0.0060000000000000001 [1.0]<br>
Scalars: ['POINTS', 'TrailId'] [[None, '']]<br>
Vectors: ['POINTS', 'velocity'] [[None, '']]<br>
    ----------------<br>
    Representations<br>
Input: <paraview.servermanager.Tube object at 0x162e090> [None]<br>
SelectionPointFieldDataArrayNa<u></u>me: 'TrailId' ['vtkOriginalPointIds']<br>
DataBounds: [0.0, 1.2648080533535912e-321, 1.5810100666919889e [[5.0085616312819197e-316, 3.1620201333839779e-321, 3.9525251667299724e-322, 5.0084066922953839e-316, 2.3176438028922704e-310, 0.0]]<br>
DiffuseColor: [1.0, 0.66666666666666696, 1.0] [[1.0, 1.0, 1.0]]<br>
LookupTable: <paraview.servermanager.<u></u>PVLookupTable object at 0x [None]<br>
Opacity: 0.0 [1.0]<br>
ScaleFactor: 0.76622586250305202 [1.0]<br>
********************<br>
    vectors.vrml -- VRML Reader<br>
FileName: '/N/dc2/scratch/shermanw/<u></u>BinaryStars/Run_30k/Initi ['']<br>
    ----------------<br>
    Representations<br>
Input: <paraview.servermanager.<u></u>VRMLReader object at 0x162 [None]<br>
SelectionPointFieldDataArrayNa<u></u>me: 'VRMLColor' ['vtkOriginalPointIds']<br>
ColorArrayName: ('POINT_DATA', 'VRMLColor') [('POINT_DATA', '')]<br>
DataBounds: [2.3715151000379834e-322, 2.7872298394991417e-316, [[4.7835752032362829e-316, 2.0008125076805794e-316, 2.4209216646221081e-322, 2.0009002537392808e-316, 2.0006433396034433e-316, 0.0]]<br>
LookupTable: <paraview.servermanager.<u></u>PVLookupTable object at 0x [None]<br>
MapScalars: 0 [1]<br>
ScaleFactor: 1.16120505332947 [1.0]<br>
********************<br>
    AnnotateTime1 -- Annotate Time<br>
Format: 'I-V2F: %.1f' ['Time: %f']<br>
    ----------------<br>
    Representations<br>
Input: <paraview.servermanager.<u></u>AnnotateTime object at 0x1 [None]<br>
Opacity: 0.5 [1.0]<br>
********************<br>
    jhdata_* -- Legacy VTK Reader<br>
FileNameInfo: '/N/dc2/scratch/shermanw/<u></u>BinaryStars/Run_30k/Initi [None]<br>
FileNames: ['/N/dc2/scratch/shermanw/<u></u>BinaryStars/Run_30k/Init [['']]<br>
TimestepValues: [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, [[]]<br>
    ----------------<br>
    Representations<br>
Input: <paraview.servermanager.<u></u>LegacyVTKReader object at  [None]<br>
SelectionPointFieldDataArrayNa<u></u>me: 'mass' ['vtkOriginalPointIds']<br>
Visibility: 0 [1]<br>
ColorArrayName: ('POINT_DATA', 'mass') [('POINT_DATA', '')]<br>
DataBounds: [2.3177925133422193e-310, 0.0, 0.0, 0.0, 0.0, 0.0] [[4.738173337151089e-316, 0.0, 0.0, 0.0, 0.0, 0.0]]<br>
InterpolateScalarsBeforeMappin<u></u>g: 0 [1]<br>
LookupTable: <paraview.servermanager.<u></u>PVLookupTable object at 0x [None]<br>
ScaleFactor: 0.74854731559753396 [1.0]<br>
<br>
------------------------------<u></u>------------------------------<u></u>--------------<br>
<br>
<br>
Thanks for any advice.  I'll report back when I figure out a script that<br>
does something more complete.<br>
<br>
        Bill<br>
<br>
--<br>
Bill Sherman<br>
Sr. Technology Advisor<br>
Advanced Visualization Lab<br>
Pervasive Technology Inst<br>
Indiana University<br>
<br>
______________________________<u></u>_________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/<u></u>opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/<u></u>ParaView</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/paraview" target="_blank">http://public.kitware.com/<u></u>mailman/listinfo/paraview</a><br>
</blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/paraview" target="_blank">http://public.kitware.com/mailman/listinfo/paraview</a><br>
<br></blockquote></div><br></div></div>