Mayavi: Advertencias de VTK al modificar la canalización

Creado en 17 abr. 2011  ·  13Comentarios  ·  Fuente: enthought/mayavi

Informado por Maik Beckmann:

Este codigo

 de entusiasta.mayavi import mlab

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

funciona, pero da

 ERROR: En /build/src/VTK/Filtering/vtkExecutive.cxx, línea 756
 vtkStreamingDemandDrivenPipeline (0x59b4900): Algoritmo
 vtkAssignAttribute (0x59bd8a0) devolvió un error para la solicitud:
 vtkInformation (0x5ad6c60)
 Depurar: desactivado
 Hora de modificación: 818743
 Recuento de referencias: 1
 Eventos registrados: (ninguno)
 Solicitud: REQUEST_DATA_OBJECT
 ALGORITHM_AFTER_FORWARD:

donde este es el código emisor en vtkExecutive.cxx en
vtkExecutive :: CallAlgorithm (...)

 ...
 // Si el algoritmo falló, infórmelo ahora.
 si (! resultado)
 {
 vtkErrorMacro ("Algoritmo" << esto-> Algoritmo-> GetClassName ()
 << "(" << esto-> Algoritmo
 << ") devolvió un error para la solicitud:"
 << * solicitud);
 }
 ...

Aunque vtk lo informa como un error, no parece romper nada.

bug

Comentario más útil

Probé algunas cosas y encontré otra solución.

Esto imprimirá los mensajes de error:
plt = mlab.points3d(x, y, z)

Pero si establece el cuarto parámetro ("escalares"), los mensajes de error desaparecen.
Esto funciona bien para mi:
plt = mlab.points3d(x, y, z, np.ones_like(x))

El tamaño de los glifos se puede ajustar utilizando las palabras clave 'scale_mode' y 'scale_factor'.

Todos 13 comentarios

Me encantaría tener una solución o solución para esto. Estoy usando mayavi en una demostración próxima y los mensajes de error son un gran detractor de la belleza de la demostración.

También estoy buscando una solución o solución para esto.

Exactamente el mismo problema, ¿alguien ha encontrado una solución?

Exactamente el mismo problema, ¿alguien ha encontrado una solución?

El código de canalización en Mayavi debe reescribirse para usar el nuevo VTK
diseño de tuberías. Sospecho que hay algunos días de trabajo, tal vez una semana.
Dada la carga de trabajo de Prabhu y la mía, es un poco difícil encontrar ese tiempo.
Por eso no pasa nada.

+1 para solucionar este problema.

Solución temporal: redirija los mensajes de error a un archivo de registro:

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

Confirmado con Mayavi actual.

@GaelVaroquaux , @prabhuramachandran : ¿alguno de ustedes podría proporcionar una breve explicación de la causa subyacente? Estoy un poco perdido en los detalles de VTK.

+1 para una solución

+1 para una solución

+1 para una solución

Aun presente.

Aun presente. +1 para una solución.

Probé algunas cosas y encontré otra solución.

Esto imprimirá los mensajes de error:
plt = mlab.points3d(x, y, z)

Pero si establece el cuarto parámetro ("escalares"), los mensajes de error desaparecen.
Esto funciona bien para mi:
plt = mlab.points3d(x, y, z, np.ones_like(x))

El tamaño de los glifos se puede ajustar utilizando las palabras clave 'scale_mode' y 'scale_factor'.

Estoy de acuerdo con la solución de solarjoe. Puede que haya algún problema con los escalares automáticos.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

stefanoborini picture stefanoborini  ·  11Comentarios

aestrivex picture aestrivex  ·  9Comentarios

indranilsinharoy picture indranilsinharoy  ·  9Comentarios

yassersouri picture yassersouri  ·  5Comentarios

rahulporuri picture rahulporuri  ·  3Comentarios