Частота смены сюжета Mayavi в реальном времени падает, когда скрипт вызывается из bash или C++

Чтобы визуализировать данные, поступающие с датчика, в режиме реального времени, я создал скрипт Python 2.7, который отображает данные, поступающие с частотой 50 Гц, используя Mayavi. Скрипт запускает два потока, поток сбора данных, который непрерывно собирает данные (Xdata,Ydata,Zdata) и поток черчения, который наносит на график данные.

Сюжет настраивается с помощью:

@mlab.animate(delay=animation_delay)
def make_graph():
    while True:
        dataX=acquisitionThread.Xdata
        dataY=-1*acquisitionThread.Ydata
        dataZ=acquisitionThread.Zdata

        obj.mlab_source.u=dataX.flatten()
        obj.mlab_source.v=dataY.flatten()
        obj.mlab_source.w=dataZ.flatten()
        yield

make_graph()
mlab.show()

Теперь, когда я запускаю свой скрипт из IDE, которую я использую (Spyder 2.7), анимация плавная, но когда я запускаю скрипт из bash, используя...

python ./animationScript.py

... частота кадров значительно падает, и взаимодействие с сюжетом (вращение сюжета и т. д.) становится очень громоздким.

В конечном счете, я хотел бы включить анимацию в приложение Qt и вызвать ее, используя:

char* args[]={"python","/path/to/fieldAnimation.py"};

pid_t pid;
pid=fork();
if(pid==0)
    execvp(args[0],args);

Однако запуск такого сценария также приводит к тому, что анимация имеет очень медленную частоту кадров.

0 ответов

Другие вопросы по тегам