Mayavi: Avisos VTK ao modificar pipeline

Criado em 17 abr. 2011  ·  13Comentários  ·  Fonte: enthought/mayavi

Relatado por Maik Beckmann:

Este código

 de enthought.mayavi import mlab

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

funciona, mas dá

 ERRO: Em /build/src/VTK/Filtering/vtkExecutive.cxx, linha 756
 vtkStreamingDemandDrivenPipeline (0x59b4900): Algoritmo
 vtkAssignAttribute (0x59 relevanta0) retornou falha para a solicitação:
 vtkInformation (0x5ad6c60)
 Depurar: Desligado
 Hora da modificação: 818743
 Contagem de referência: 1
 Eventos registrados: (nenhum)
 Pedido: REQUEST_DATA_OBJECT
 ALGORITHM_AFTER_FORWARD:

onde este é o código de emissão em vtkExecutive.cxx em
vtkExecutive :: CallAlgorithm (...)

 ...
 // Se o algoritmo falhou, informe agora.
 if (! resultado)
 {
 vtkErrorMacro ("Algorithm" << this-> Algorithm-> GetClassName ()
 << "(" << this-> Algoritmo
 << ") retornou falha para a solicitação:"
 << * pedido);
 }
 ...

Embora tenha sido relatado como um erro pelo vtk, ele não parece quebrar nada.

bug

Comentários muito úteis

Tentei algumas coisas e encontrei outra solução alternativa.

Isso imprimirá as mensagens de erro:
plt = mlab.points3d(x, y, z)

Mas se você definir o quarto parâmetro ("escalares"), as mensagens de erro desaparecerão.
Este trabalho é bom para mim:
plt = mlab.points3d(x, y, z, np.ones_like(x))

O tamanho dos glifos pode ser ajustado usando as palavras-chave 'modo_escala' e 'fator_escala'.

Todos 13 comentários

Eu adoraria ter uma solução ou uma solução alternativa para isso. Estou usando mayavi em uma demonstração que está chegando e as mensagens de erro são um grande detrator da beleza da demonstração.

Também estou procurando uma solução ou solução alternativa para isso.

Exatamente o mesmo problema, alguém encontrou uma solução alternativa?

Exatamente o mesmo problema, alguém encontrou uma solução alternativa?

O código do pipeline em Mayavi precisa ser reescrito para usar o novo VTK
projeto de pipeline. Suspeito que haja alguns dias de trabalho, talvez uma semana.
Dada a carga de trabalho de Prabhu e a minha, é um pouco difícil encontrar esse tempo.
É por isso que nada está acontecendo.

1 para uma correção para este problema.

Solução temporária, redirecione as mensagens de erro para um arquivo de log:

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

Confirmado com Mayavi atual.

@GaelVaroquaux , @prabhuramachandran :

1 para uma correção

1 para uma correção

1 para uma correção

Ainda está presente.

Ainda está presente. 1 para uma correção.

Tentei algumas coisas e encontrei outra solução alternativa.

Isso imprimirá as mensagens de erro:
plt = mlab.points3d(x, y, z)

Mas se você definir o quarto parâmetro ("escalares"), as mensagens de erro desaparecerão.
Este trabalho é bom para mim:
plt = mlab.points3d(x, y, z, np.ones_like(x))

O tamanho dos glifos pode ser ajustado usando as palavras-chave 'modo_escala' e 'fator_escala'.

Eu concordo com a solução da solarjoe. Pode haver algo errado com os escalares automáticos.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

scottstanie picture scottstanie  ·  4Comentários

rambalachandran picture rambalachandran  ·  9Comentários

rahulporuri picture rahulporuri  ·  3Comentários

dnacombo picture dnacombo  ·  7Comentários

kitchoi picture kitchoi  ·  10Comentários