fly_sky_1f — FLYVISION stimulus op

Data kinds: noneimage2d (an op determined by its arguments alone — it takes no image or data input)

Call: import fullseye as fs; fs.ledger.fly_sky_1f(width=1024, height=512, band_lo_deg=20.0, band_hi_deg=60.0, amp=0.12, seed=0, edge_deg=5.0) (to call the implementation directly, import flyvision; flyvision.fly_sky_1f(width=1024, height=512, band_lo_deg=20.0, band_hi_deg=60.0, amp=0.12, seed=0, edge_deg=5.0); from the registry, opsflyvision.get("fly_sky_1f"))

Usage

Synthetic equirectangular sky panorama with a banded 1/f azimuthal texture.

An equirectangular image (row = elevation +90 deg down to -90 deg, column =

azimuth 0 to 360 deg). Luminance is a vertical backlight gradient

(0.62 at the zenith to 0.95 at the nadir) modulated in azimuth by a 1/f

texture confined to an elevation band with cosine edges::

L = gradient(el) * (1 + amp * band(el) * noise(az)) clipped to [0, 1]

where `noise` has unit std, is clipped to +-2, and drops azimuthal

frequencies below 2 cycles per revolution; `band` is 1 inside

`[band_lo_deg, band_hi_deg]` with raised-cosine edges of width *edge_deg*.

width / height: the panorama size in pixels.

band_lo_deg / band_hi_deg / edge_deg: the textured elevation band.

amp: the texture contrast on the backlight.

seed: integer seed for the azimuth noise (no `None`).

Returns a float64 `(height, width) image in [0, 1]`.

Ground truth: the standard deviation across azimuth of a row inside the band

exceeds that of a row outside it by more than 5x, and the log-log slope of the

azimuthal power spectrum of an in-band row is `-2 +- 0.4` (both pinned in the

tests).

Raises `ValueError`: *width* / *height* outside their caps, a non-real /

string / bool parameter, a negative *amp*, a non-positive *edge_deg*, and a

band that does not satisfy `-90 <= band_lo_deg < band_hi_deg <= 90`.

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

poc_fly_visionpy -3.11 examples/poc_fly_vision.py

Ops the type connects to (they accept image2d as input)

fly_hex_resample

Same category (stimulus)


*Provenance: flyvision.py — FLYVISION operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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