marker_divergence — DRIVE tactorque op

• Datenarten: matrix × matrix × scalar → table

• Aufruf: import fullseye as fs; fs.ledger.marker_divergence(pts, u, radius: 'float', min_neighbors: 'int' = 4, k_max: 'int' = 24) -> 'dict' (die Implementierung direkt: import tactorque; tactorque.marker_divergence(pts, u, radius: 'float', min_neighbors: 'int' = 4, k_max: 'int' = 24) -> 'dict'; aus dem Register: opsdrive.get("marker_divergence"))

Verwendung

Divergenz div = ∂ux/∂x + ∂uy/∂y und Rotation curl = ∂uy/∂x − ∂ux/∂y je Punkt aus verstreuten Markierungen pts (N, 2) und Verschiebungen u (N, 2) (Einheit = Einheit von u ÷ Einheit von pts). Passt per kleinster Quadrate eine Ebene c0 + c1 x + c2 y an die Punkte innerhalb des Nachbarschaftsradius radius an (höchstens k_max Punkte) (auf einem regelmäßigen Gitter mit Radius 1.01 Pitch identisch mit der 5-Punkte-Zentraldifferenz und auf 1e-15 gleich sceneflow.flow_divergence; bei Radius 1.5 Pitch ergeben die 9 Punkte eine zeilengemittelte Differenz, die am Rand um 11 % abweicht, gemessen). Löst die Normalgleichungen für alle Punkte gebündelt. Punkte mit weniger als min_neighbors Nachbarn oder singulären (kollinearen) Normalgleichungen erhalten valid = False und div/curl = nan (fail-closed: nie stillschweigend 0). Dieselbe op gilt für verstreute FEM-Knoten. Raises ValueError: pts/u ist nicht (N, 2), Formen unterschiedlich, radius ≤ 0, N < min_neighbors.

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)

• poc_tactile_dipole_torque — py -3.11 examples/poc_tactile_dipole_torque.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Gleiche Kategorie (tactorque)

punch_pressure · punch_surface_uz · hertz_pressure_shifted · ellipse_pressure_shifted · pressure_first_moment · boussinesq_kernel · boussinesq_surface_displacement · surface_divergence_closed_form


*Provenance: tactorque.py — DRIVE 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.