# How Lighthouses Work 2, Exercise 2: candles and a fire # 1) Luminous range of 24 candles (about 1 cd each) at visibilities 5, 10, 20 nm. # 2) Number of candles giving a 10 nm nominal range. # 3) Ratio of Winstanley's (60 candles) to Smeaton's (24) nominal range. # 4) A coal fire of an ASSUMED 5000 cd on a 103 m tower, eye 5 m up: which limit wins? import math NM = 1852.0 def transmissivity(visibility_nm): return 0.05 ** (1 / visibility_nm) def luminous_range_nm(intensity_cd, visibility_nm, threshold_lx=2e-7): t = transmissivity(visibility_nm) lo, hi = 0.01, 200.0 for _ in range(100): mid = (lo + hi) / 2 e = intensity_cd * t ** mid / (mid * NM) ** 2 if e > threshold_lx: lo = mid else: hi = mid return (lo + hi) / 2 def geographic_range_nm(light_m, eye_m): return 3.86 * (math.sqrt(light_m) + math.sqrt(eye_m)) / 1.852 # 1. 24 candles (about 1 cd each) at three visibilities for v in (5, 10, 20): print(v, round(luminous_range_nm(24, v), 2)) # 2. candles needed for a 10 nm nominal range (bisection on the count) lo, hi = 1.0, 1e6 for _ in range(100): mid = (lo + hi) / 2 if luminous_range_nm(mid, 10) < 10: lo = mid else: hi = mid print(round(hi)) # 3. Winstanley 60 candles against Smeaton 24: ratio of nominal ranges print(round(luminous_range_nm(60, 10) / luminous_range_nm(24, 10), 2)) # 4. A fire on a 103 m tower, eye 5 m up, with an ASSUMED 5000 cd lum = luminous_range_nm(5000, 10) geo = geographic_range_nm(103, 5) print(round(lum, 1), round(geo, 1), "limit:", "light" if lum < geo else "horizon") # Output when run: # 5 2.66 # 10 3.5 # 20 4.29 # 1372 # 1.33 # 12.7 25.8 limit: light # # Lines 1-3: 24 candles reach only 2.66, 3.5 and 4.29 nm at visibilities of 5, 10 and # 20 nm; the 3.5 nm at 10 nm is the nominal range. Line 4: about 1372 candles would be # needed for a 10 nm nominal range (no real lantern holds that many, and the 1 cd per # candle is itself only "roughly" right). Line 5: 60 candles reach 1.33 times as far # as 24, not 2.5 times, the inverse square law again. Line 6: the assumed 5000 cd fire # reaches 12.7 nm in standard weather, while the 103 m height would allow 25.8 nm, so # the brightness limits it, not the horizon. For the candle towers, too, the light was # the limit. The 5000 cd value is an assumption, not a measurement of the Pharos.