piv_divergence — PIV field op

• Datenarten: flow2d → image2d

• Aufruf: import fullseye as fs; fs.ledger.piv_divergence(flow, spacing=1.0) (die Implementierung direkt: import pivops; pivops.piv_divergence(flow, spacing=1.0); aus dem Register: opspiv.get("piv_divergence"))

Verwendung

Divergenz d(dy)/dy + d(dx)/dx. 0 bei inkompressibler Strömung — als unabhängige Gegenprobe nutzbar.

Formel: gradient(flow[0], spacing, axis=0) + gradient(flow[1], spacing, axis=1) (numpy.gradient: im Inneren zentrale Differenzen, an den Gitterrändern einseitige Differenzen). flow[0] ist die Verschiebung dy in Zeilenrichtung, flow[1] die Verschiebung dx in Spaltenrichtung, x = Spalte, y = Zeile. Auch wenn die Zeilen nach unten zeigen, hängt das Vorzeichen der Divergenz nicht von der Achsenrichtung ab (anders als die Wirbelstärke piv_vorticity kehrt es sich nicht um). Positiv = Quelle, negativ = Senke.

• flow: (2, h, w), Komponenten (dy, dx) [px/frame] (Rückgabewert von piv_cross_correlate / piv_multipass). Ohne h, w >= 2 ist keine Ableitung möglich, daher ValueError (wenn das Fenster so groß ist, dass es nur 1 Vektor gibt). Endlichkeit wird nicht geprüft ―― ein NaN aus piv_replace_outliers(method="nan") breitet sich auf die 2 benachbarten Zellen aus.

• spacing: Vektorabstand [px], positiver endlicher Wert. info["step"] übergeben (beim Default 1.0 wird die Einheit "1/Vektorabstand").

• Rückgabewert: (h, w) float64, Einheit 1/frame (wenn spacing in px ist). Mit einem per piv_to_velocity in m/s umgerechneten Feld und spacing in m ergibt sich 1/s.

Bei 2-D-PIV wird sie durch eine Geschwindigkeitskomponente außerhalb der Ebene ungleich null; "inkompressibel, aber die Divergenz ist groß" ist daher ein Indikator für Strömung aus der Ebene oder Ausreißer (piv_outlier_mask). piv_velocity_gradient liefert alle 4 Komponenten.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie piv_displacement

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• piv_flow_from_particles — py -3.11 examples/piv_flow_from_particles.py

• poc_what_a_picture_cannot_check — py -3.11 examples/poc_what_a_picture_cannot_check.py

Typkompatible Folge-Operatoren (nehmen image2d als Eingabe)

piv_cross_correlate · piv_multipass · piv_deform_pass · strain_from_displacement · correlation_quality · speckle_quality

Gleiche Kategorie (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 Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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