# How Lighthouses Work 6, Exercise 3: wave pressure and listed ranges import math LBF_N = 4.4482216 FT_M = 0.3048 RHO_SEA = 1025.0 # assumed G = 9.81 K = 2.084 # nm per square root of a metre for p_lb in (1000, 3000, 6000): p = p_lb * LBF_N / FT_M ** 2 print(p_lb, "lb/ft2 =", round(p / 1000, 1), "kPa; head", round(p / (RHO_SEA * G), 1), "m; force on 1 m2", round(p / G / 1000, 1), "tonnes-force") def light_height_needed_m(range_nm, eye_m): return (range_nm / K - math.sqrt(eye_m)) ** 2 for eye in (5, 10): print("22 nm with an eye at", eye, "m needs a light at", round(light_height_needed_m(22, eye), 1), "m") for ft in (64, 66): print(ft, "ft =", round(ft * FT_M, 2), "m") # Output: # 1000 lb/ft2 = 47.9 kPa; head 4.8 m; force on 1 m2 4.9 tonnes-force # 3000 lb/ft2 = 143.6 kPa; head 14.3 m; force on 1 m2 14.6 tonnes-force # 6000 lb/ft2 = 287.3 kPa; head 28.6 m; force on 1 m2 29.3 tonnes-force # 22 nm with an eye at 5 m needs a light at 69.2 m # 22 nm with an eye at 10 m needs a light at 54.7 m # 64 ft = 19.51 m # 66 ft = 20.12 m # # 6,000 lb per square foot is 287.3 kPa, which is the pressure at about 28.6 m depth of seawater (density 1,025 kg per cubic metre, assumed) and a force of 29.3 tonnes-force on each square metre; 3,000 and 1,000 lb per square foot give half and a sixth of that (14.6 and 4.9 tonnes-force). The Skerryvore article prints 300 kPa for 6,000 lb per square foot; the exact conversion is 287.3 kPa, so the printed figure is rounded. For a 22 nm geographic range (the Muckle Flugga listed range) with the constant 2.084 nm per square root of a metre, an eye 5 m up needs a light at 69.2 m and an eye 10 m up needs one at 54.7 m; the listed focal height is 66 m, which matches an eye about 6 m up (see the snippet in the chapter). The tower heights 64 ft and 66 ft convert to 19.51 m and 20.12 m, which are the two ways the Muckle Flugga article states a height of about 20 m. These are model results, not records.