reeb.get_merge_tree
reeb.get_merge_tree(geometry, *, mode=State.SUB_LEVEL, threshold=0.0)Union-Find アルゴリズムを用いて、与えられた geometry のマージツリーを計算します。
この関数は、提供された geometry データから UnionFindByLevel オブジェクトを初期化し、それを leveled graph に変換することでマージツリーを構築します。
マージツリーは、指定されたフィルトレーションモード(サブレベル集合またはスーパーレベル集合)に基づいて、連結成分が階層的にマージされる様子を表します。
指定された閾値未満のエッジは除外されます。
パラメータ
| 名前 | 型 | 説明 | デフォルト |
|---|---|---|---|
| geometry | psiclone.data.Geometry |
マージツリーに変換されるノードおよびエッジを含む geometry オブジェクト | 必須 |
| mode | State, optional (default: State.SUB_LEVEL) |
マージツリー構築時のフィルトレーションモード。State.SUB_LEVEL(サブレベル集合、昇順)または State.SUPER_LEVEL(スーパーレベル集合、降順)のいずれかを指定する必要があります。 |
State.SUB_LEVEL |
| threshold | float, optional (default: 0.0) | 結果として得られるマージツリー内のエッジに対する最小ライフタイム閾値。ライフタイム(死亡レベルと誕生レベルの差)がこの値以下のエッジは除外されます。 | 0.0 |
戻り値
| 名前 | 型 | 説明 |
|---|---|---|
| graph | psiclone.data.LeveledGraph |
マージツリーを表す leveled graph オブジェクト。ノードは誕生点または死亡点としてマークされ、エッジは Union-Find によるマージ過程に基づいてそれらの点を接続します。 |
例
>>> from psiclone.data import Geometry, State
>>> geom = Geometry(...) # 有効な geometry オブジェクトを想定
>>> merge_tree = get_merge_tree(geom, mode=State.SUB_LEVEL, threshold=0.1)
>>> print(merge_tree)