fly_hex_lattice — FLYVISION lattice op

Datenarten: keinetable (ein Operator, der allein durch seine Argumente bestimmt ist — er nimmt kein Bild und keine Daten entgegen)

Aufruf: import fullseye as fs; fs.ledger.fly_hex_lattice(radius=15, dphi_deg=4.63, az0_deg=0.0, el0_deg=0.0, geometry='regular') (die Implementierung direkt: import flyvision; flyvision.fly_hex_lattice(radius=15, dphi_deg=4.63, az0_deg=0.0, el0_deg=0.0, geometry='regular'); aus dem Register: opsflyvision.get("fly_hex_lattice"))

Verwendung

> Für diesen Operator gibt es noch keine Übersetzung. Es folgt der Originaltext unverändert.

Hexagonal ommatidial lattice: viewing directions of a compound eye.

A hexagon of `n = 3*radius*(radius+1)+1` ommatidia on axial coordinates

`(u, v) with -radius <= u <= radius` and

`max(-radius, -radius-u) <= v <= min(radius, radius-u)` (u outer, v inner),

each given an azimuth, an elevation and a unit viewing direction in body

coordinates (x forward, y left, z up; `az = atan2(y, x)` left positive,

`el = asin(z)`).

`geometry="regular": az = az0 + dphi*(v + u/2)`,

`el = el0 + dphi*(sqrt(3)/2)*u` — an isotropic hexagon.

`geometry="boxeye"`: the pixel-grid distortion of the connectome-derived

models, `pixel (y, x) = (13*(u + v/2), 13*v) with 13 px = dphi`, so

`az = az0 - v*dphi and el = el0 - (u + v/2)*dphi`; the diagonal neighbour

is 1.118x the axial spacing.

radius: the hexagon radius in ommatidia.

dphi_deg: the inter-ommatidial angle in degrees.

az0_deg / el0_deg: the direction of the lattice centre (the optical axis).

geometry: one of :data:GEOMETRIES.

Returns a dict ``{"uv": (n,2) int, "az_rad": (n,), "el_rad": (n,),

"dirs": (n,3) unit vectors, "dphi_rad": float, "geometry": str}``.

Ground truth: `n == 3*radius*(radius+1)+1 exactly, every dirs` row is a

unit vector, and for `"boxeye"` the ratio of the diagonal to the axial

nearest-neighbour angular spacing is 1.118 (both pinned in the tests).

Raises `ValueError: a *radius* outside [1, MAX_LATTICE_RADIUS]`, a

non-positive *dphi_deg*, a non-real / non-finite / string / bool angle, and an

unknown *geometry*.

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_fly_visionpy -3.11 examples/poc_fly_vision.py

poc_print_registrationpy -3.11 examples/poc_print_registration.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

fly_hex_resample · fly_hs_readout

Gleiche Kategorie (lattice)


*Provenance: flyvision.py — FLYVISION 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.