piv_divergence — PIV field op

資料種類:flow2dimage2d

呼叫: import fullseye as fs; fs.ledger.piv_divergence(flow, spacing=1.0)(要直接呼叫實作,import pivops; pivops.piv_divergence(flow, spacing=1.0);從台帳取用則 opspiv.get("piv_divergence"))

用法

> 該運算子的說明尚無譯文,以下照原文給出。

発散 `d(dy)/dy + d(dx)/dx`。非圧縮なら 0 —— 独立な検算に使える。

式: `gradient(flow[0], spacing, axis=0) + gradient(flow[1], spacing, axis=1)`

(`numpy.gradient`: 内部は中央差分、格子の端は片側差分)。

`flow[0] が行方向の変位 dyflow[1] が列方向の変位 dx`、

`x = 列、y` = 行。行が下向きでも発散の符号は座標の向きに依らない

(渦度 `piv_vorticity` とは違い、反転しない)。正 = 湧き出し、負 = 吸い込み。

• `flow: (2, h, w)、成分 (dy, dx) [px/frame] (piv_cross_correlate` /

`piv_multipass の返り値)。h, w >= 2` でないと微分できないので

`ValueError`(窓が大きすぎて 1 本しかベクトルが無い場合)。

有限性は検査しない ―― `piv_replace_outliers(method="nan")` の NaN は

隣接 2 セルへ広がる。

• `spacing: ベクトル間隔 [px]、正の有限値。info["step"]` を渡す

(既定 1.0 のままだと単位が「1/ベクトル間隔」になる)。

• 返り値: `(h, w) float64、単位 1/frame(spacing` が px のとき)。

`piv_to_velocity で m/s にした場と spacing` を m にすれば 1/s。

2-D PIV で平面外の速度成分があると非零になるので、「非圧縮なのに発散が

大きい」は面外流か外れ値(`piv_outlier_mask`)の指標。

`piv_velocity_gradient` は 4 成分すべてを返す。

詳細使用指南

piv_displacement 族使用指南

參考(範例資料・文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者・年份)與用途見上面的族使用指南

可執行的範例(實際呼叫該運算子並已驗證的樣例)

piv_flow_from_particlespy -3.11 examples/piv_flow_from_particles.py

型別可銜接的下一個運算子(可接受 image2d 作為輸入)

piv_cross_correlate · piv_multipass · piv_deform_pass · strain_from_displacement · correlation_quality · speckle_quality

同類別(field)

piv_vorticity · piv_flow_magnitude · piv_to_velocity · piv_velocity_gradient · piv_q_criterion · piv_swirling_strength · piv_strain_rate


*Provenance: pivops.py — PIV 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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