<div dir="ltr"><div>Thomas,</div><div><br></div>Saving as BINARY saves the bits that represent the binary floating point number in RAM exactly to disk. When you load those bits back, you get exactly the same number in RAM again.<div><br></div><div>Saving as ASCII requires that the binary float point number be converted to a base-10 string representation, and loading the ASCII file requires conversion from a base-10 string back to binary. This conversion isn't always perfect (consider the number 0.1 [1]), hence the differences you see.</div><div><br></div><div>HTH,</div><div>Cory</div><div><br></div><div>[1] <a href="http://www.exploringbinary.com/why-0-point-1-does-not-exist-in-floating-point/">http://www.exploringbinary.com/why-0-point-1-does-not-exist-in-floating-point/</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 10, 2015 at 12:40 PM, Fastl, Thomas <span dir="ltr"><<a href="mailto:thomas.fastl@kcl.ac.uk" target="_blank">thomas.fastl@kcl.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Sancho,<br>
<br>
storing data as BINARY rather then ASCII solved the precision problem, thanks! But honestly, I don't understand why this is an issue when storing as ASCII, this should be possible since this can be quite convenient especially during code development for checking outputs. I'm still struggling with the vtkPolyDataReader() and associated precisions, therefore I want to provide a test example here:<br>
<span class=""><br>
def readPolyData(fileName):<br>
<br>
    reader = vtk.vtkPolyDataReader()<br>
    reader.SetFileName(fileName)<br>
    reader.Update()<br>
<br>
    return (reader.GetOutput())<br>
<br>
</span>personalizedMesh = readPolyData('test.vtk')<br>
<br>
The first vertex in the file 'test.vtk' is specified to be at [32376.558590  16410.828120  <a href="tel:19045.751950" value="+19045751950">19045.751950</a>], however, running the provided test example leads to (32376.55859375  16410.828125  19045.751953125). I don't understand why random digits are added (would expect that only 0 are added) and therefore played around with DOUBLE, but couldn't get this to work. Can anybody help me on that? I read that more people had this problem, but couldn't find a solution, thanks!<br>
<br>
Best, Thomas<br>
<br>
________________________________________<br>
From: vtkusers <<a href="mailto:vtkusers-bounces@vtk.org">vtkusers-bounces@vtk.org</a>> on behalf of oyster <<a href="mailto:sancho@whu.edu.cn">sancho@whu.edu.cn</a>><br>
Sent: Tuesday, November 10, 2015 12:09 AM<br>
To: <a href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</a><br>
Subject: Re: [vtkusers] Precision Loss During PolyData File Manipulation<br>
<div class="HOEnZb"><div class="h5"><br>
Hi, Thomas<br>
The precision loss is caused by the polydatawriter, since you stored it as<br>
ASCII. Using BINARY would cure this usually.<br>
<br>
BTW, is you are not sure float will be as precise as it, set vtkPoints'<br>
datatype to DOUBLE. Some vtkAlgorithm also has similar settings.<br>
<br>
Regards,<br>
Sancho.<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/Precision-Loss-During-PolyData-File-Manipulation-tp5734888p5734889.html" rel="noreferrer" target="_blank">http://vtk.1045678.n5.nabble.com/Precision-Loss-During-PolyData-File-Manipulation-tp5734888p5734889.html</a><br>
Sent from the VTK - Users mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Cory Quammen<br>R&D Engineer<br>Kitware, Inc.</div>
</div>