下周的曼哈顿将迎来一场视觉盛宴。夕阳会精准对齐城市的东西向街道,在两排摩天楼之间缓缓沉落。这个被称为"曼哈顿悬日"(Manhattanhenge)的现象每年出现两次,早已成为摄影爱好者和路人扎堆围观的固定节目。
一个程序员在Recurse Center学习时突然想到:天文学家是怎么算出这个日期的?既然原理相通,为什么只能局限在曼哈顿?
于是有了Hengefinder——一个能让你在全球几乎任何日落地点找到"悬日"的工具。
项目背后的逻辑听起来简单:测出街道的朝向角度(相对于真北),算出每天日落时太阳的方位角,然后找两者匹配的日子。但作者很快发现,每个"简单"步骤都藏着坑。
第一个坑:地球不是平的。用经纬度差直接算角度?这在平面坐标系里成立,在球面上就是错的。纬度线全球等距,经度线却向两极收敛——纽约一度经度约84公里,高纬度地区就短得多。作者不得不重新捡起球面三角学。
第二个坑:道路不是直线。OpenStreetMap的数据把路切成无数小段,每段方向都可能不同。更麻烦的是,一段路可能同时属于"第五大道"和"纽约州道22号"两个名字。去重、分段、找最长连续方向,这些脏活累活比天文计算还耗时。
第三个坑:"日落"本身就有歧义。是太阳上沿接触地平线,还是完全消失?大气折射会让实际位置比视觉位置高,海拔变化又会改变地平线高度。作者最终采用海军天文台的算法,把大气折射、海拔、甚至观测者眼睛高度都算了进去。
项目代码和网站已开源,另一位Recurse Center学员还做了手机App。作者坦承自己没造天文模型,而是调用成熟库解决专业问题——"就像一堆黑盒子,我选择打开一些,关上另一些"。
最让他着迷的正是这种"假设与现实的差距"。以为街道是平的,以为经纬度是方格纸,以为日落是个明确时刻——每个被打破的假设都是一次重新理解世界的机会。
热门跟贴