# How Lighthouses Work 3, Exercise 1: fuel and range of Argand lamps # How many Argand lamps match 24 candles, the range of three 8 cd Argands, and the oil one burns. 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 # Assumptions (illustrative): 1 cd per candle, Argand lamps of 6 and 10 cd (sourced range), # 0.2 lm/W, 37 MJ per kg of oil, 12-hour nights, 365 nights LM_PER_CD = 4 * math.pi EFFICACY = 0.2 MJ_PER_KG = 37.0 print(math.ceil(24 / 6), math.ceil(24 / 10)) # Argand lamps to match 24 candles print(round(luminous_range_nm(3 * 8, 10), 2), round(luminous_range_nm(24, 10), 2)) kg_night = 8 * LM_PER_CD / EFFICACY * 12 * 3600 / 1e6 / MJ_PER_KG print(round(kg_night, 2), "kg per night", round(kg_night * 365), "kg per year") print(round(400_000 / (kg_night * 365)), "times the oil for 400 tons of coal") # Output when run: # 4 3 # 3.5 3.5 # 0.59 kg per night 214 kg per year # 1867 times the oil for 400 tons of coal # # Line 1: 4 Argand lamps of 6 cd or 3 of 10 cd give at least the 24 cd of 24 candles. # Line 2: three 8 cd Argands treated as one 24 cd source reach the same 3.5 nm as 24 candles, # because the range depends only on the total intensity (this treats the lamps as one point). # Line 3: about 0.59 kg of oil a night and 214 kg a year for one 8 cd Argand (assumed 0.2 lm/W # and 37 MJ per kg). Line 4: 400 tons of coal is about 1867 times that mass; the coal beacon and # the oil lamp gave very different light, so this shows the scale of the fuel and not the # light per kilogram.