https://github.com/pasaopasen/wave-animation-from-svd
Unpack svd files and creating animation of running waves
https://github.com/pasaopasen/wave-animation-from-svd
csharp-app dotnetcore polytec polytec-file psv python russian svd unpack-svd-files wave-animation
Last synced: 2 months ago
JSON representation
Unpack svd files and creating animation of running waves
- Host: GitHub
- URL: https://github.com/pasaopasen/wave-animation-from-svd
- Owner: PasaOpasen
- Created: 2020-06-09T13:52:05.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-23T11:30:59.000Z (about 2 years ago)
- Last Synced: 2025-01-26T12:41:58.916Z (4 months ago)
- Topics: csharp-app, dotnetcore, polytec, polytec-file, psv, python, russian, svd, unpack-svd-files, wave-animation
- Language: Python
- Homepage:
- Size: 46.3 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Wave animation from svd
Unpack svd files and creating animation of running waves.## Before running
1. Download and install [service tool Polytec Update](http://swdownload.polytec.com/polyupdate/PolytecUpdateSetup.exe)
2. Run it, check **File Access** and **Scan Viewer** and install
3. Download and install [.NET Core>=3.1](https://dotnet.microsoft.com/download)
3. Download [Python](https://www.python.org/downloads/), install with adding to PATH and so on
4. 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**](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/target/create.py). Если нужно поменять какие-то параметры изображений, в скрипте это легко делается (в том числе [цветовая палитра](https://matplotlib.org/3.2.1/tutorials/colors/colormaps.html)). Суть скрипта:
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:**

**Release 1.0.0:**

**Release 1.1.0:**

**Release 2.0**
Cut data:

See results:

## Heatmaps

















































































