fog_beta_from_profile — DRIVE env op

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

• Call: import fullseye as fs; fs.ledger.fog_beta_from_profile(rows, luminance, horizon_row: 'float', focal: 'float', cam_height: 'float', pitch: 'float' = 0.0, *, method: 'str' = 'fit', slant: 'bool' = True, beta_range=(0.0001, 0.5), n_grid: 'int' = 400) -> 'Dict[str, float]' (to call the implementation directly, import driveenv; driveenv.fog_beta_from_profile(rows, luminance, horizon_row: 'float', focal: 'float', cam_height: 'float', pitch: 'float' = 0.0, *, method: 'str' = 'fit', slant: 'bool' = True, beta_range=(0.0001, 0.5), n_grid: 'int' = 400) -> 'Dict[str, float]'; from the registry, opsdrive.get("fog_beta_from_profile"))

Usage

Measures the fog extinction coefficient β from the vertical luminance curve of the road surface (the approach of Hautière et al. 2006).

method="fit" (default): fits Koschmieder L = L_h + (L₀ − L_h) e^{−β r} to the distance to the road surface in each row (road_row_distance; with slant=True the line-of-sight length √(d² + H²)) (β by a log grid + golden-section search; for each β, L₀ and L_h by linear least squares). method="inflection": smooths the curve with a 5-row moving average and, from the row v_i where the second difference changes sign, β = 2 (v_i − v_h)/λ (λ = f H / cos²α. The exact inflection point when the distance is approximated as λ/(v − v_h): the second derivative of L = L_h + (L₀ − L_h) e^{−βλ/u} is 0 at u = βλ/2). The return value contains both: beta (the chosen one), beta_fit, beta_inflection (nan if not found), L0, L_h, rms, mor (2.996/β).

Raises ValueError: length mismatch, fewer than 5 points below the horizon, invalid method.

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_events · sun_vector · sun_illuminance · koschmieder · mor_from_beta · beta_from_mor


*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.