normals_to_angles — REPRCONV direction op

• Datenarten: normals → pairs

• Aufruf: import fullseye as fs; fs.ledger.normals_to_angles(normals) (die Implementierung direkt: import reprconv; reprconv.normals_to_angles(normals); aus dem Register: opsreprconv.get("normals_to_angles"))

Verwendung

Normalen (N,3) → Azimut-/Elevationspaare (N,2) [Grad]. Der Ausgang aus normals.

az = atan2(c1, c0) ist der Azimut in der Ebene Achse0-Achse1, el = asin(c2/|v|) ist die Elevation ab Achse 2. Definiert wird mit "Achse 0/1/2", nicht mit x/y/z, weil es in diesem repo sowohl Punktwolken in (z,y,x)-Reihenfolge als auch in (x,y,z)-Reihenfolge gibt -- mit Namen geschrieben, würde sich die Bedeutung je nach Konvention des übergebenen Arrays ändern.

Umkehrbar: Der Hin- und Rückweg mit angles_to_normals stellt die Richtung exakt wieder her (gemessen max|Δ| = 6.1e-16, selftest misst es jedes Mal). Nur die Länge kommt nicht zurück -- eine Normale ist eine Richtung, also wird ein Nicht-Einheitsvektor nach dem Hin- und Rückweg zum Einheitsvektor.

Args:

normals: (N, 3) reelles Array. Nullvektoren werden abgewiesen (der Azimut ist nicht definierbar).

Returns:

(N, 2) float64. Spalte 0 = Azimut (-180, 180], Spalte 1 = Elevation [-90, 90].

Raises:

ValueError: Form ist nicht (N,3) / nicht endlich / enthält einen Vektor der Länge 0.

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_tacscalib_sphere_lut — py -3.11 examples/poc_tacscalib_sphere_lut.py

• representation_roundtrip — py -3.11 examples/representation_roundtrip.py

Typkompatible Folge-Operatoren (nehmen pairs als Eingabe)

angles_to_normals · shape_index_to_curvature · pairs_to_signal · pairs_to_image2d · pairs_to_table · polar_to_cscalar

Gleiche Kategorie (direction)

angles_to_normals · normals_to_egi


*Provenance: reprconv.py — REPRCONV 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.