fog_beta_from_profile — DRIVE env op

• 資料種類:any × any × scalar × scalar × scalar → table

• 呼叫: 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]'(要直接呼叫實作,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]';從台帳取用則 opsdrive.get("fog_beta_from_profile"))

用法

由路面縱向輝度曲線測定霧的消光係數 β(Hautière 等 2006 的思路)。

method="fit"(預設): 對各列到路面的距離(road_row_distance,slant=True 時為視線長度 √(d² + H²)) 擬合 Koschmieder L = L_h + (L₀ − L_h) e^{−β r}(β 用對數格子 + 黃金分割,各 β 下 L₀、L_h 用線性最小平方)。method="inflection": 用 5 列移動平均平滑曲線,由二階差分變號的列 v_i 得 β = 2 (v_i − v_h)/λ (λ = f H / cos²α。把距離近似為 λ/(v − v_h) 時的嚴格反曲點: L = L_h + (L₀ − L_h) e^{−βλ/u} 的二階導數在 u = βλ/2 處為 0)。

回傳值中兩者都有: beta(所選的)、beta_fit、beta_inflection(找不到為 nan)、L0、L_h、rms、mor(2.996/β)。

Raises ValueError: 長度不同、地平線以下的點少於 5、method 不合法。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_driving_weather — py -3.11 examples/poc_driving_weather.py

型別可銜接的下一個運算子(可接受 table 作為輸入)

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

同類別(env)

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


*Provenance: driveenv.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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