Skip to content

Unpack svd files and creating animation of running waves

Notifications You must be signed in to change notification settings

PasaOpasen/Wave-animation-from-svd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wave animation from svd

Unpack svd files and creating animation of running waves.

Before running

  1. Download and install service tool Polytec Update

  2. Run it, check File Access and Scan Viewer and install

  3. Download and install .NET Core>=3.1

  4. Download Python, install with adding to PATH and so on

  5. Open cmd.exe and run these commands:

pip install numpy==1.18.4
pip install matplotlib==3.2.1
pip install pywin32==227

По поводу алгоритма

  1. Выбираются нужные директории для сохранения в целевой файл

  2. Туда копируются скрипты и вспомогательные файлы

  3. Запускается create.py. Если нужно поменять какие-то параметры изображений, в скрипте это легко делается (в том числе цветовая палитра). Суть скрипта:

    1. Сначала информация из целевого файла конвертируется в массивы numpy (может занять минуту)

    2. Выводится некоторое описание, после чего в окне скрипта надо указать шаг по времени (чтобы не делать рисунки для всех тысяч времён)

    3. Создаются рисунки со скоростью примерно 1.5 в секунду (при dpi = 350) на стандартном Python. На анаконде это работает раза в 2-3 быстрее, но ей тяжело пользоваться в рамках общего приложения + много весит. Параллелить здесь особо нечего, так как самих вычислений почти нет, время тратится либо на взаимодействие с COM-объектами, либо на графическую панель.

  4. После работы скрипта открывается форма, в неё загружаются созданные изображения.

    • При режиме скорость это может занять несколько секунд и около 8Гб оперативки для 500 изображений при dpi = 350 (это больше проблема .NET, так что от разрешения вряд ли есть особая зависимость, поэтому создавать больше 100-200 изображений в этом режиме не рекомендую), зато сам просмотр изображений работает очень быстро и симпатично.

    • При режиме экономия памяти изображения считываются по мере надобности + вызвается сборщик мусора. Очень рекомендую использовать этот вариант, так как потери в скорости незаметны.

Как (предположительно) этим следует пользоваться

Общая задача: от пьезоэлементов отходят "волны", которые при благоприятных условиях столкнутся и образуют сильный всплеск как раз в районе дефекта; это столкновение произойдёт в некоторый неизвестный заранее момент времени, который требуется выявить визуально (чтобы локализовать дефект). Для этого рекомендуется сначала проверить 200-500 временных отметок на достаточно большом диапазоне, потом сузить диапазон в 3 раза (взять тот кусок, где явно была активность) и проверить на нём 200-400 отметок; после этого можно ещё раз сузить диапазон и взять больше/меньше отметок уже для демонстрационных целей. В таком случае всего потребуется использовать не более 1500 временных отметок.

Examples

Start:

1

Release 1.0.0:

1

Release 1.1.0:

1

Release 2.0

Cut data:

1

See results:

1

Heatmaps

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1