# How Lighthouses Work 6, Exercise 1: planning work around the tide TIDE_PERIOD_H = 12.42 # assumed twice-daily tide cycle EXPOSED_H = 4.0 # the Bell Rock article: covered ~20 h a day, so ~4 h exposed STONES = 2500 # the Bell Rock article: about 2500 granite stones def season_hours(days, usable_share): return days * EXPOSED_H * usable_share for share in (0.25, 0.5, 0.75): h = season_hours(100, share) print("100-day season at", share, "usable:", h, "h") print(" seasons for 2500 stones at 3 stones/h:", round(STONES / 3 / h, 2)) slip_h = 2 * TIDE_PERIOD_H - 24 print("slip per day:", round(slip_h * 60, 1), "min") start = 6.0 # a low-water window opens at 06:00 on day 0 for day in range(0, 8): t = (start + day * slip_h) % 24 print("day", day, ": window opens at", "%02d:%02d" % (int(t), round((t % 1) * 60))) print("days until the same clock time returns:", round(24 / slip_h, 1)) # Output: # 100-day season at 0.25 usable: 100.0 h # seasons for 2500 stones at 3 stones/h: 8.33 # 100-day season at 0.5 usable: 200.0 h # seasons for 2500 stones at 3 stones/h: 4.17 # 100-day season at 0.75 usable: 300.0 h # seasons for 2500 stones at 3 stones/h: 2.78 # slip per day: 50.4 min # day 0 : window opens at 06:00 # day 1 : window opens at 06:50 # day 2 : window opens at 07:41 # day 3 : window opens at 08:31 # day 4 : window opens at 09:22 # day 5 : window opens at 10:12 # day 6 : window opens at 11:02 # day 7 : window opens at 11:53 # days until the same clock time returns: 28.6 # # With 4 hours of exposure a day, a 100-day season gives 100, 200 or 300 working hours at 25, 50 or 75 per cent usable, so 2,500 stones at 3 stones an hour (833 hours) need 8.3, 4.2 or 2.8 such seasons. The usable shares and the laying rate are my assumptions; the sources give neither, and the 2,500 figure is the Bell Rock article's single "about 2500". The tide slips by about 50 minutes a day (2 x 12.42 h - 24 h, with 12.42 h an assumed typical tide cycle), so a 06:00 window opens at 11:53 a week later and the clock time repeats after about 28.6 days. That drift is why a tide-limited job cannot be scheduled by the clock: the working hours move around the day and the night. All values come from the model, not from records of the building.