Mayavi: VTK warnings when modifying pipeline

Created on 17 Apr 2011  ·  13Comments  ·  Source: enthought/mayavi

Reported by Maik Beckmann:

This code

from enthought.mayavi import mlab

pts = mlab.points3d([0,1], [0,1], [0,1])
pts.mlab_source.set(x=[0,2])

works, but gives

ERROR: In /build/src/VTK/Filtering/vtkExecutive.cxx, line 756
vtkStreamingDemandDrivenPipeline (0x59b4900): Algorithm
vtkAssignAttribute(0x59bd8a0) returned failure for request:
vtkInformation (0x5ad6c60)
  Debug: Off
  Modified Time: 818743
  Reference Count: 1
  Registered Events: (none)
  Request: REQUEST_DATA_OBJECT
  ALGORITHM_AFTER_FORWARD:

where this is the emitting code in vtkExecutive.cxx in
vtkExecutive::CallAlgorithm(...)

   ...
  // If the algorithm failed report it now.
  if(!result)
    {
    vtkErrorMacro("Algorithm " << this->Algorithm->GetClassName()
                  << "(" << this->Algorithm
                  << ") returned failure for request: "
                  << *request);
    }
  ...

Though its reported as an error by vtk, it doesn't seem to break anything.

bug

Most helpful comment

I tried a few things and found another workaround.

This will print the error messages:
plt = mlab.points3d(x, y, z)

But if you set the forth parameter ("scalars") the error messages are gone.
This works fine for me:
plt = mlab.points3d(x, y, z, np.ones_like(x))

The size of the glyphs can be adjusted by using the keywords 'scale_mode' and 'scale_factor'.

All 13 comments

I'd love to have a fix or workaround for this. I'm using mayavi in a demo coming up and the error messages are a big detractor from the beauty of the demo.

I am also looking for a resolution or workaround for this.

Exactly the same problem, has someone found a workaround ?

Exactly the same problem, has someone found a workaround ?

The pipeline code in Mayavi needs to be rewritten to use the new VTK
pipeline design. I suspect that there is a few days work, maybe a week.
Given Prabhu's workload and mine's it is a bit hard to find that time.
That's why nothing is happening.

+1 for a fix for this issue.

Temporary workaround, redirect error messages to a log file:

import vtk
output=vtk.vtkFileOutputWindow()
output.SetFileName("log.txt")
vtk.vtkOutputWindow().SetInstance(output)

Confirmed with current Mayavi.

@GaelVaroquaux, @prabhuramachandran: could either of you provide a brief explanation of the underlying cause? I'm a bit lost in the VTK details.

+1 for a fix

+1 for a fix

+1 for a fix

Still present.

Still present. +1 for a fix.

I tried a few things and found another workaround.

This will print the error messages:
plt = mlab.points3d(x, y, z)

But if you set the forth parameter ("scalars") the error messages are gone.
This works fine for me:
plt = mlab.points3d(x, y, z, np.ones_like(x))

The size of the glyphs can be adjusted by using the keywords 'scale_mode' and 'scale_factor'.

I agree with solarjoe's solution. There might be something wrong with the auto scalars.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dnacombo picture dnacombo  ·  7Comments

hadim picture hadim  ·  72Comments

PennyQ picture PennyQ  ·  4Comments

anntzer picture anntzer  ·  7Comments

relyativist picture relyativist  ·  16Comments