sun_events — DRIVE env op

• Data kinds: scalar × scalar × scalar × scalar × scalar → table

• Call: import fullseye as fs; fs.ledger.sun_events(year: 'int', month: 'int', day: 'int', lat: 'float', lon: 'float', tz_hours: 'float' = 9.0, *, h0: 'float' = -0.8333) -> 'Dict[str, object]' (to call the implementation directly, import driveenv; driveenv.sun_events(year: 'int', month: 'int', day: 'int', lat: 'float', lon: 'float', tz_hours: 'float' = 9.0, *, h0: 'float' = -0.8333) -> 'Dict[str, object]'; from the registry, opsdrive.get("sun_events"))

• GPU: none (CPU reference implementation only)

Usage

Times of sunrise, solar noon and sunset for the day (local calendar date), plus the azimuths of sunrise/sunset and the altitude at solar noon.

Sunset = geometric altitude of the center of the sun is h0 (default −0.8333° = atmospheric difference 34′ + visual radius 16′, top side touches the horizon) Time to cross. h0="naoj" is the definition of the National Astronomical Observatory of Japan's Ephemeris Computation Office (the upper side of the sun is the visual horizon, the horizontal atmospheric difference is 35'8'', and the visual radius is from the distance). South middle = hour angle 0. Both solve sun_at for time (bisection method, interval width less than 1e-7 days ≈ up to 0.009 seconds).

Returns

dict: sunrise / transit / sunset (datetime with time zone, None if there is no sunrise or sunset), sunrise_azimuth / sunset_azimuth(degrees), transit_altitude(degrees, geometric altitude without atmospheric difference and transit_altitude_apparent).

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_driving_weather — py -3.11 examples/poc_driving_weather.py

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

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Same category (env)

julian_day · sun_at · sun_vector · sun_illuminance · koschmieder · mor_from_beta · beta_from_mor · road_row_distance


*Provenance: driveenv.py — DRIVE 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.