Программист из Recurse Center запустил Hengefinder — инструмент, который находит даты, когда солнце садится идеально вдоль прямой улицы, как во время знаменитого Манхэттенхенджа в Нью-Йорке. Всё строится на трёх шагах: вычислить азимут дороги (угол относительно истинного севера), азимут солнца на закате для каждого дня и найти совпадения.
Первая проблема — Земля не плоская. Градусы широты везде одинаковые, а долготы сужаются к полюсам. Поэтому взять разницу координат и сразу применить atan2 нельзя — единицы измерения не совпадают. Решение: масштабировать разницу долгот на косинус средней широты перед расчётом угла. Это приближение, но для коротких отрезков улиц его достаточно.
Вторая проблема — определение правильного момента заката. Астрономическое определение (когда солнце полностью скрылось) не годится: для хенджа солнце должно лишь касаться горизонта верхним краем. Автор использовал Python-библиотеку Astral, чтобы получить грубое окно, а затем применил бинарный поиск с условием «последнее истинное» — ищет последнюю минуту, когда высота солнца ещё выше целевого порога.
Третья задача — сопоставить азимут дороги с азимутом заката в течение года. Здесь не сработает обычный бинарный поиск: зависимость азимута от даты не монотонна, она похожа на синусоиду и меняет направление у солнцестояний. Автор придумал двухфазный подход: сначала грубая выборка (каждые 30 дней) с отслеживанием пересечений и разворотов, а затем точный поиск день за днём в найденных окнах.
Готовый сайт Hengefinder работает для любой точки. Коллега Джон Прибыл сделал мобильное приложение, которое добавило лунные хенджи и «хенджи Саурона» — когда светило точно садится на шпиль здания, как в случае с Brooklyn Tower. Автор нашёл любимый потенциальный хендж на канале Haarlemmertrekvaart в Амстердаме — прямой канал XVII века, где солнце должно идеально отражаться в воде дважды в год уже четыре столетия, но об этом никто не объявляет. Джон, в отличие от автора, реально ездит смотреть такие места — от башни UT Austin до Taipei 101. Суть простая: хенджи геометрически редки, но происходят по всему миру постоянно, просто мы о них не знаем.