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"))
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.
• Leitfaden zur Familie piv_displacement
• 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.
• 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
image2d als Eingabe)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 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.