<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Hi all,<br><br>I was able to get it to work in 3.14 by doing:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine1.UpdatePipeline()<br><br>before creating the writer. <br><br>Thanks,<br><br>Tony<br><br><br><br><div><div id="SkyDrivePlaceholder"></div>&gt; Date: Fri, 11 May 2012 09:18:29 -0400<br>&gt; Subject: Re: [Paraview] VTK Writer<br>&gt; From: utkarsh.ayachit@kitware.com<br>&gt; To: mmnasr@gmail.com<br>&gt; CC: lamtmartos@hotmail.com; paraview@paraview.org<br>&gt; <br>&gt; There definitely seems to be a bug in the WriterFactory which fails to<br>&gt; return valid readers when running through Python. We are looking into<br>&gt; it.<br>&gt; <br>&gt; Utkarsh<br>&gt; <br>&gt; On Thu, May 10, 2012 at 10:38 PM, Mohamad M. Nasr-Azadani<br>&gt; &lt;mmnasr@gmail.com&gt; wrote:<br>&gt; &gt; Luis,<br>&gt; &gt;<br>&gt; &gt; I had similar problem with some writers.<br>&gt; &gt; It was very strange and sporadic (it&nbsp;occurred&nbsp;both when I used *.vtu and<br>&gt; &gt; *.csv writers).<br>&gt; &gt; I kind of got the feeling that most of the times it appeared when I ran PV<br>&gt; &gt; in parallel so I could solve it by running PV in serial mode.<br>&gt; &gt; But as I said, I am not 100% what is going on.<br>&gt; &gt;<br>&gt; &gt; Good luck,<br>&gt; &gt; Mohamad<br>&gt; &gt;<br>&gt; &gt; On Sun, May 6, 2012 at 11:44 AM, Luis Martinez &lt;lamtmartos@hotmail.com&gt;<br>&gt; &gt; wrote:<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Hi all,<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; I have a pvbatch script that worked in version 3.12. It uses plot over<br>&gt; &gt;&gt; line and writes out CSV data.&nbsp; Now I get the following error in version<br>&gt; &gt;&gt; 3.14:<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Is this a bug or am I supposed to call the writer differently in 3.14?<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Thanks!<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Tony<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; ERROR: In<br>&gt; &gt;&gt; /build/buildd/paraview-3.14.1/ParaViewCore/ServerManager/vtkSMWriterFactory.cxx,<br>&gt; &gt;&gt; line 374<br>&gt; &gt;&gt; vtkSMWriterFactory (0x17ee360): No matching writer found for extension:<br>&gt; &gt;&gt; csv<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Traceback (most recent call last):<br>&gt; &gt;&gt; &nbsp; File "wakeProfilesAllTurbines.py", line 65, in &lt;module&gt;<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp; writer.FieldAssociation = "Points"<br>&gt; &gt;&gt; AttributeError: 'NoneType' object has no attribute 'FieldAssociation'<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Here is the script Im using:<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; try: paraview.simple<br>&gt; &gt;&gt; except: from paraview.simple import *<br>&gt; &gt;&gt; paraview.simple._DisableFirstRenderCameraReset()<br>&gt; &gt;&gt; import os<br>&gt; &gt;&gt; import math<br>&gt; &gt;&gt; import matplotlib as mpl<br>&gt; &gt;&gt; mpl.use('Agg')<br>&gt; &gt;&gt; import matplotlib.pyplot as plt<br>&gt; &gt;&gt; import csv<br>&gt; &gt;&gt; from scipy.integrate import trapz<br>&gt; &gt;&gt; # Current location<br>&gt; &gt;&gt; directory=os.getcwd()<br>&gt; &gt;&gt; if not os.path.exists('./wakeProfiles/plots/'):<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp; os.makedirs('./wakeProfiles/plots/')<br>&gt; &gt;&gt; # Rotor Diameter<br>&gt; &gt;&gt; D=93<br>&gt; &gt;&gt; width=D*1.5<br>&gt; &gt;&gt; profiles=[0.125,0.25,0.5,0.75,1,2,3,4]<br>&gt; &gt;&gt; layout=open('./layout.dat')<br>&gt; &gt;&gt; Umean_slice_0_vtk = LegacyVTKReader(<br>&gt; &gt;&gt; FileNames=[directory+'/../ADM/sliceDataADM/12746.8908019/Umean_slice_0.vtk']<br>&gt; &gt;&gt; )<br>&gt; &gt;&gt; Umean_slice_1_vtk = LegacyVTKReader(<br>&gt; &gt;&gt; FileNames=[directory+'/../ALM/sliceDataALM/12771/Umean_slice_0.vtk'] )<br>&gt; &gt;&gt; SetActiveSource(Umean_slice_0_vtk)<br>&gt; &gt;&gt; CellDatatoPointData1 = CellDatatoPointData()<br>&gt; &gt;&gt; SetActiveSource(CellDatatoPointData1)<br>&gt; &gt;&gt; Calculator1 = Calculator()<br>&gt; &gt;&gt; Calculator1.AttributeMode = 'point_data'<br>&gt; &gt;&gt; Calculator1.Function = 'Umean_X*cos(0.84444265) + Umean_Y*sin(0.84444265)'<br>&gt; &gt;&gt; Calculator1.ResultArrayName = 'U_row'<br>&gt; &gt;&gt; SetActiveSource(Umean_slice_1_vtk)<br>&gt; &gt;&gt; CellDatatoPointData2 = CellDatatoPointData()<br>&gt; &gt;&gt; SetActiveSource(CellDatatoPointData2)<br>&gt; &gt;&gt; Calculator2 = Calculator()<br>&gt; &gt;&gt; Calculator2.AttributeMode = 'point_data'<br>&gt; &gt;&gt; Calculator2.Function = 'Umean_X*cos(0.84444265) + Umean_Y*sin(0.84444265)'<br>&gt; &gt;&gt; Calculator2.ResultArrayName = 'U_row'<br>&gt; &gt;&gt; for i, turbine in enumerate(layout):<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp; for profile in profiles:<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetActiveSource(Calculator1)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine1 = PlotOverLine( Source="High Resolution Line Source"<br>&gt; &gt;&gt; )<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine1.Source.Resolution = 100<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alpha0=0.84444265-math.atan((width/2)/(profile*D))<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alpha1=0.84444265+math.atan((width/2)/(profile*D))<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; L=math.sqrt((D*profile)**2+(width/2)**2)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x0=float(turbine.split()[0])+L*math.cos(alpha0)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y0=float(turbine.split()[1])+L*math.sin(alpha0)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x1=float(turbine.split()[0])+L*math.cos(alpha1)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y1=float(turbine.split()[1])+L*math.sin(alpha1)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine1.Source.Point1 = [x0, y0, 65.0]<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine1.Source.Point2 = [x1, y1, 65.0]<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not os.path.exists('./wakeProfiles/'+str(profile)):<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os.makedirs('./wakeProfiles/'+str(profile))<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not os.path.exists('./wakeProfiles/plots/'+str(profile)):<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os.makedirs('./wakeProfiles/plots/'+str(profile))<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; nameADM=directory+'/wakeProfiles/'+str(profile)+'/ADM'+'turbine'+str(i+1)+'.csv'<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer = CreateWriter(nameADM, PlotOverLine1)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.FieldAssociation = "Points"<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.UpdatePipeline()<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; del writer<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetActiveSource(Calculator2)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine2 = PlotOverLine( Source="High Resolution Line Source"<br>&gt; &gt;&gt; )<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine2.Source.Resolution = 100<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine2.Source.Point1 = [x0, y0, 65.0]<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PlotOverLine2.Source.Point2 = [x1, y1, 65.0]<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; nameALM=directory+'/wakeProfiles/'+str(profile)+'/ALM'+'turbine'+str(i+1)+'.csv'<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer = CreateWriter(nameALM, PlotOverLine2)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.FieldAssociation = "Points"<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.UpdatePipeline()<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; del writer<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; csvreader1 = csv.reader(open(nameADM,'rb'))<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; csvreader2 = csv.reader(open(nameALM,'rb'))<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x,y,x1,y1=[],[],[],[]<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for j, line in enumerate(csvreader1):<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if j&gt;0:<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x.append((float(line[5])-width/2)/D)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y.append(float(line[0]))<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for j, line in enumerate(csvreader2):<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if j&gt;0:<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x1.append((float(line[5])-width/2)/D)<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y1.append(float(line[0]))<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plt.plot(x,y,'-',label='ADM',color='black')<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plt.plot(x1,y1,'--',label='ALM',color='black')<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plt.xlabel('Distance')<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plt.ylabel(r'$U$ (m/s)')<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plt.legend(loc='best')<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plt.ylim([2,10])<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; plt.savefig('./wakeProfiles/plots/'+str(profile)+'/turbine'+str(i+1)+'.eps')<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; plt.savefig('./wakeProfiles/plots/'+str(profile)+'/turbine'+str(i+1)+'.png')<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; plt.clf()<br>&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; del x,y,x1,y1,csvreader1,csvreader2<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; _______________________________________________<br>&gt; &gt;&gt; Powered by www.kitware.com<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Visit other Kitware open-source projects at<br>&gt; &gt;&gt; http://www.kitware.com/opensource/opensource.html<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Please keep messages on-topic and check the ParaView Wiki at:<br>&gt; &gt;&gt; http://paraview.org/Wiki/ParaView<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; Follow this link to subscribe/unsubscribe:<br>&gt; &gt;&gt; http://www.paraview.org/mailman/listinfo/paraview<br>&gt; &gt;&gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; _______________________________________________<br>&gt; &gt; Powered by www.kitware.com<br>&gt; &gt;<br>&gt; &gt; Visit other Kitware open-source projects at<br>&gt; &gt; http://www.kitware.com/opensource/opensource.html<br>&gt; &gt;<br>&gt; &gt; Please keep messages on-topic and check the ParaView Wiki at:<br>&gt; &gt; http://paraview.org/Wiki/ParaView<br>&gt; &gt;<br>&gt; &gt; Follow this link to subscribe/unsubscribe:<br>&gt; &gt; http://www.paraview.org/mailman/listinfo/paraview<br>&gt; &gt;<br></div>                                               </div></body>
</html>