Skip to content
Update interactive_ali authored by Masahiro Yoshimoto's avatar Masahiro Yoshimoto
# 引数 NETSCANのaliと同等の機能を実現するために作ったプログラム。
位置ずれ(dx, dy) ギャップ (dz)、回転 (theta)、角度ずれ(dax, day) を同時に計算せず、
位置ずれ、ギャップ、角度ずれをそれぞれ分離して計算する。
* chamber.kar part.kar EventDiscriptor.iniは必要ない
* インタラクティブモード(対話形式)でも実行できる
* 速度はali-gと同等かそれ以上
* デバッグ情報をわかりやすく出力
* ソースコードは、ピーク検出とピークのフィッティングを除きわずか900行
* OpenMPで区画ごとの計算を並列化
* 使う飛跡集団の、必要なメンバ変数だけキャッシュして高速化
* ジョブマネージャー、AVX、boostの機能は未使用。高い可読性を実現
* パラメータ名を整理。意味と名前が一致しないパラメータ名は排除
* 入力形式は問わないようにし、クラスとして提供予定
## ソースコード
https://gitlab.com/escan/phst.cpp/blob/develop/Solutions/netscan/interactive_ali/interactive_ali.cpp
## 引数
1. bvxxファイル名1 1. bvxxファイル名1
2. PL番号1 2. PL番号1
3. Zone番号1 3. Zone番号1
...@@ -8,7 +29,7 @@ ...@@ -8,7 +29,7 @@
7. Globalパラメータ 7. Globalパラメータ
8. Localパラメータ 8. Localパラメータ
# Globalパラメータ ## Globalパラメータ
```yaml ```yaml
#TanTheta #TanTheta
...@@ -59,7 +80,27 @@ MinPHSlope: 0 ...@@ -59,7 +80,27 @@ MinPHSlope: 0
``` ```
# Localパラメータ ## Localパラメータ
位置ずれ空間で計算する時は `Position` 角度ずれ空間で計算する時は `Angle` Gap空間で計算する時は `Gap``SearchMode` に指定する。それ以外は対応していない。
### 視野の指定方法
```yaml
- View:
CenterX: [30000,70000,50000]
CenterY: [30000,30000,70000]
SideX: 1000
SideY: 1000
```
```
- ViewArray:
StepX: 10000
StepY: 10000
SideX: 20000
SideY: 20000
```
```yaml ```yaml
- ViewArray: - ViewArray:
...@@ -100,3 +141,13 @@ MinPHSlope: 0 ...@@ -100,3 +141,13 @@ MinPHSlope: 0
SetGlobal: True SetGlobal: True
Debug: True Debug: True
``` ```
## デバッグ情報について
画像のXY座標は各Window空間のビンに相当し、輝度値はSignificanceに相当する。5σで輝度値が255になるように規格化している。
https://gitlab.com/escan/phst.cpp/blob/develop/src/phst.core/MyFitting.cpp
`find_fine_2dpeak_impl` がその実装である。