piv_streamlines — PIV 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 の形・非有限、パラメータ範囲外、種が格子の外。

詳細使用指南

• piv_displacement 族使用指南

參考(範例資料・文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.