geodesic op• Data kinds: points → signal
• Call: import fullseye as fs; fs.ledger.geodesic_distances(points: numpy.ndarray, source: int, k: int = 8) -> numpy.ndarray (implementation को सीधे call करना हो तो import geodesic3d; geodesic3d.geodesic_distances(points: numpy.ndarray, source: int, k: int = 8) -> numpy.ndarray, registry से लेना हो तो ops3d.get("geodesic_distances"))
source से सभी points तक geodesic distances (kNN graph पर Dijkstra)। → (N,) float (न पहुँचने पर inf)।
knn_graph(points, k) से बने k-nearest-neighbour graph (edge weight = points के बीच Euclid दूरी = chord length) को directed=False से undirected बनाकर, scipy.sparse.csgraph.dijkstra से single-source shortest path हल करता है। d[i] source से point i तक graph पर path length है, d[source] = 0, और source से न जुड़े connected components के points inf होते हैं। इकाई coordinates की इकाई ही है।
• points: (N,3) point cloud (float64 में बदला जाता है)।
• source: start point का index (0..N-1 का integer; सीमा से बाहर होने पर scipy की ओर से exception)।
• k: neighbours की संख्या (default 8)। छोटा हो तो graph टूट जाता है और inf बढ़ते हैं, बड़ा हो तो दूर की surfaces को सीधे जोड़ने वाले "shortcuts" बनते हैं और दूरी surface के साथ नहीं चलती (पतली plate के दोनों पहलू, मुड़कर लौटी surface आदि)।
सटीकता: edges chord length हैं, इसलिए arcs थोड़ा कम आँके जाते हैं, जबकि path का zigzag अधिक आकलन पैदा करता है (module docstring में Bernstein आदि का sandwich आकलन देखें)। triangle mesh हो तो neighbours की संख्या पर निर्भर न रहने वाला geodesic_mesh इस्तेमाल करें। इस दूरी से समान रूप से subsample करने के लिए farthest_point_sampling।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• geodesic_distance — py -3.11 examples_3d/geodesic_distance.py
signal को input के रूप में लेते हैं)geodesic)geodesic_mesh · farthest_point_sampling · knn_graph
*Provenance: geodesic3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.