visualise op• 데이터 종류: flow2d → table
• 호출: import fullseye as fs; fs.ledger.piv_streamlines(flow, seeds=None, separation=None, step=0.25, max_length=None, min_speed=0.001, test_ratio=0.5)(구현을 직접 호출하려면 import pivops; pivops.piv_streamlines(flow, seeds=None, separation=None, step=0.25, max_length=None, min_speed=0.001, test_ratio=0.5), 원장에서 가져오려면 opspiv.get("piv_streamlines"))
> 이 연산자의 설명은 아직 번역이 없습니다. 원문을 그대로 싣습니다.
流線を RK4 でたどる(MATLAB の `stream2 / streamslice` に当たる)。
`seeds` を省くと Jobard–Lefer(1997)の等間隔配置で種を自動で置く。
流線どうしが `separation 程度の間隔で並び、test_ratio * separation`
より近づいた所で打ち切る。矢印図は密にすると潰れ、種を手で置くと空白が
残るが、この配置は空白も重なりも作らない(下の 2 つの性質を門にしている)。
• 別々の流線の標本点どうしは `test_ratio * separation` より近づかない。
• 速さが `min_speed` 以上の格子点はどれも、どこかの流線から
`separation` 以内にある(取りこぼしの無さ)。
座標は flow の格子(行 0 が上、`(row, col)`)。向きの場は速さで割って
弧長で進むので、1 歩は `step` 格子。速さは流線上の各点で別に返す。
Args:
flow: `(2, h, w)(dy, dx`)。
seeds: `(n, 2) の (row, col)。None` で自動配置。
separation: 流線の間隔 [格子]。`None で max(h, w) / 25`(2 以上)。
step: RK4 の 1 歩 [格子]。
max_length: 片方向の最大の長さ [格子]。`None で 4 * (h + w)`。
min_speed: これより遅い所で止める(最大の速さに対する比)。
test_ratio: 打ち切りの距離を `separation` の何倍にするか(0 < x ≤ 1)。
Returns:
dict(table): `paths((m_i, 2)` の list、上流 → 下流の順)、
`speed(各点の速さの list)、seeds、stop((後ろ, 前)` の
理由の組の list)、`n、separation、d_test、step`、
`stop_counts`(理由ごとの数)。
Raises:
ValueError: flow の形・非有限、パラメータ範囲外、種が格子の外。
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• piv_field_analysis_tour — py -3.11 examples/piv_field_analysis_tour.py
table 를 입력으로 받는 것)—
visualise)piv_flow_to_rgbimage · piv_line_integral_convolution · piv_quiver · piv_streamline_image
*Provenance: pivops.py — PIV 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.