Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 26 days 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 (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-05-23T11:30:59.000Z (over 1 year ago)
- Last Synced: 2023-05-23T12:34:41.513Z (over 1 year 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:**
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/gifs/start.gif)
**Release 1.0.0:**
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/gifs/result.gif)
**Release 1.1.0:**
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/gifs/result2.gif)
**Release 2.0**
Cut data:
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/gifs/cut1.gif)
See results:
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/gifs/cut2.gif)
## Heatmaps
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20viridis.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20plasma.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20inferno.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20magma.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20cividis.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Greys.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Purples.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Blues.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Greens.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Oranges.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Reds.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20YlOrBr.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20YlOrRd.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20OrRd.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20PuRd.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20RdPu.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20BuPu.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20GnBu.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20PuBu.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20YlGnBu.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20PuBuGn.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20BuGn.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20YlGn.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20binary.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gist_yarg.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gist_gray.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gray.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20bone.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20pink.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20spring.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20summer.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20autumn.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20winter.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20cool.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Wistia.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20hot.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20afmhot.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gist_heat.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20copper.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20PiYG.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20PRGn.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20BrBG.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20PuOr.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20RdGy.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20RdBu.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20RdYlBu.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20RdYlGn.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Spectral.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20coolwarm.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20bwr.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20seismic.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20twilight.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20twilight_shifted.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20hsv.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Pastel1.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Pastel2.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Paired.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Accent.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Dark2.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Set1.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Set2.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20Set3.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20tab10.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20tab20.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20tab20b.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20tab20c.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20flag.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20prism.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20ocean.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gist_earth.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20terrain.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gist_stern.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gnuplot.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gnuplot2.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20CMRmap.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20cubehelix.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20brg.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gist_rainbow.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20rainbow.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20jet.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20nipy_spectral.png)
![1](https://github.com/PasaOpasen/Wave-animation-from-svd/blob/master/images/cmap%20%3D%20gist_ncar.png)