[vtkusers] vtkUnstructuredGridWriter only stores 6 digits?

Nico Schlömer nico.schloemer at gmail.com
Thu Dec 17 14:38:49 EST 2015


Thanks Nishad for the confirmation. I've filed a bug over at Mantis [1].

Cheers,
Nico

[1] http://www.vtk.org/Bug/view.php?id=15889

On Thu, Dec 17, 2015 at 6:39 PM Nishad Sohoni <ns451 at srcf.net> wrote:

> Hi Nico,
>
> I can confirm that I see the same behavior. I added the following lines to
> the end of your script:
>
> '''
> rdr = vtk.vtkUnstructuredGridReader()
> rdr.SetFileName('test.vtk')
> rdr.Update()
> loc = rdr.GetOutput()
> pts = numpy_support.vtk_to_numpy( loc.GetPoints().GetData() )
> print pts
> print pts.dtype
> '''
> and regardless of whether I called writer.SetFileTypeToASCII(), the dtype
> was always float64, but there was a loss in precision.
>
> If you can get away with writing a binary file, might I suggest using
> vtkXMLUnstructuredGridWriter? With the above code, python printed with the
> correct precision and dtype (obviously changing to
> vtkXMLUnstructuredGridReader).
>
> Cheers,
> Nishad.
>
>
>
> On 17/12/2015 10:40, Nico Schlömer wrote:
>
> This smells very much like the vtk_array data being interpreted as single
> precision even though
> ```
>   Data type: double
> ```
> Cheers,
> Nico
>
> On Thu, Dec 17, 2015 at 2:23 AM Nico Schlömer <nico.schloemer at gmail.com>
> wrote:
>
>> Hi everyone,
>>
>> with
>> ```
>> import numpy
>> import vtk
>> from vtk.util import numpy_support
>>
>> mesh = vtk.vtkUnstructuredGrid()
>>
>> # add points to mesh
>> points = numpy.array([
>>     [0.123456789, 3.14159265, 0.0]
>>     ])
>> vtk_points = vtk.vtkPoints()
>> vtk_array = numpy_support.numpy_to_vtk(points)
>> vtk_points.SetData(vtk_array)
>> mesh.SetPoints(vtk_points)
>>
>> # write to VTK
>> writer = vtk.vtkUnstructuredGridWriter()
>> writer.SetFileTypeToASCII()
>> writer.SetFileName('test.vtk')
>> writer.SetInputData(mesh)
>> writer.Write()
>> ```
>> I noticed that, although the `point` is given with some precision, the
>> output `test.vtk` file only contains 6 digits of accuracy,
>> ```
>> 0.123457 3.14159 0
>> ```
>> The numpy data type hosts 8 digits.
>>
>> Is this a bug or expected? How to mitigate?
>>
>> Cheers,
>> Nico
>>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:http://public.kitware.com/mailman/listinfo/vtkusers
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20151217/e9ba132f/attachment.html>


More information about the vtkusers mailing list