normals_to_angles — REPRCONV direction op

• Data kinds: normals → pairs

• Call: import fullseye as fs; fs.ledger.normals_to_angles(normals) (implementation को सीधे call करना हो तो import reprconv; reprconv.normals_to_angles(normals), registry से लेना हो तो opsreprconv.get("normals_to_angles"))

उपयोग

normal (N,3) → azimuth/elevation जोड़े (N,2) [degree] में। normals से निकास।

az = atan2(c1, c0) को axis0-axis1 plane में azimuth, और el = asin(c2/|v|) को axis 2 से elevation माना जाता है। x/y/z के बजाय "axis 0/1/2" से परिभाषित किया गया है, क्योंकि इस repo में (z,y,x) क्रम वाले point cloud और (x,y,z) क्रम वाले point cloud दोनों हैं -- नाम से लिखने पर, अर्थ इस पर निर्भर हो जाता कि दिया गया array किस परंपरा का है।

invertible: angles_to_normals के साथ round trip करने पर दिशा बिल्कुल सटीक लौटती है (measured max|Δ| = 6.1e-16, selftest हर बार मापता है)। केवल length नहीं लौटती -- normal एक दिशा है, इसलिए non-unit vector देने पर round trip के बाद वह unit vector बन जाता है।

Args:

normals: (N, 3) real array। zero vector अस्वीकार (azimuth परिभाषित नहीं हो सकता)।

Returns:

(N, 2) float64। column 0 = azimuth (-180, 180], column 1 = elevation [-90, 90]।

Raises:

ValueError: shape (N,3) नहीं है / non-finite / length 0 वाला vector शामिल है।

संदर्भ (sample data, साहित्य)

• 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 के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_tacscalib_sphere_lut — py -3.11 examples/poc_tacscalib_sphere_lut.py

• representation_roundtrip — py -3.11 examples/representation_roundtrip.py

वे अगले ops जिनसे type जुड़ता है (pairs को input के रूप में लेते हैं)

angles_to_normals · shape_index_to_curvature · pairs_to_signal · pairs_to_image2d · pairs_to_table · polar_to_cscalar

इसी category के (direction)

angles_to_normals · normals_to_egi


*Provenance: reprconv.py — REPRCONV operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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