每日日轨图:看太阳每天在天空里画出的那道弧线
文章摘要
The Daily Solargraph 是数据可视化研究者 Robert Kosara(eagereyes 站长)做的一个每日更新的交互式网页项目:看太阳每天在天空中划出的那道轨迹。
先说什么是 solargraph(日轨图)。传统日轨图是用针孔相机拍的超长曝光照片,曝光周期通常是几周到几个月:一个不透光的罐子、一个针孔、一张感光相纸,因为进光量极小所以可以曝上大半年,而且相纸不需要显影,影像会自己浮现出来。图上每一道亮弧就是某一天太阳从升起到落下的整段行程;因为地轴倾斜,太阳每天扫过的高度不同,最高那道对应夏至、最低那道对应冬至。云也会被记录下来——弧线断掉或缺失的地方,就是当时有云挡住了太阳。那种标志性的迷幻观感来自几件事的叠加:圆罐造成的柱面投影、微弱光照下的互易律失效,以及扫描过程带来的色偏。
Kosara 的做法完全是数字化的。他每分钟拍一张极度欠曝的照片来采集日轨,同时每 30 分钟拍一张正常曝光的「校准照」;你在网页上看到的,是欠曝图叠加合成出的太阳轨迹,再叠到 30 分钟一张的正常曝光全景之上。为什么要拆成两套曝光?因为正常拍摄含太阳的照片时,太阳一定过曝糊成一片白,要得到干净锐利的日轨就必须大幅欠曝;但欠曝的暗帧几乎没有细节,没法用来做全景拼接的校准,所以必须另拍一组正常曝光的图。硬件是两台 GoPro Hero 12 Black,彼此成 90° 摆放,合起来覆盖水平约 250°、垂直近 100°。夏天每台相机每天拍 800 张日轨图加 27 张校准图,即便用了 GoPro 高效的 RAW 格式,一天也是 12GB。整套下载和处理是自动的,顺利的话当天的图和视频会在太平洋时间晚上 10 点前上线。具体参数:暗帧用 GoPro 能设到的最暗档,1/2000 秒、ISO 100,前面挂 10 档 ND 滤镜;校准帧用自动曝光、ISO 最高到 800(ND 滤镜不摘,所以只能拉高 ISO)。全部走 RAW,一是需要动态范围、JPEG 压缩会彻底毁掉暗帧,二是 JPEG 会被部分去畸变(即使在广角模式下),导致无法拼接。
交互设计是这个项目的亮点。那张扁平的全景图不是随便压扁的照片,而是一个精确的天空投影——横向对罗盘方位是线性的,纵向对高度角是立体投影(stereographic),因此可以被反投影回光线真正来的方向。按角落的 360° 按钮(或按 p)就能从平面全景切到「环视」视角,拖动即可转头;像素完全没有重新渲染或伪造,只是被映射回它们本来所属的那个天穹。按住 shift 拖动、捏合或滚轮可缩放,f 进全屏,空格播放一整天的延时,也可以拖底部进度条来回擦洗;相机覆盖 250° 水平、75° 仰角,所以转不满一圈也看不到正天顶,转过头就「没天空了」。作者选数字方案的理由是灵活:不用等半年,可以做单日、单周、单月的局部日轨图,最后再合成一整张,还能做成这种网站;他甚至另做了一个用太阳辐照数据模拟日轨图的小应用,可以给地球上任何有数据的地方生成图像。他自己也点出了这件事的有趣之处——到这里,摄影和数据可视化的界线已经相当模糊了。有些日子缺图,一部分是还没发生,一部分是他在调参数时丢了几天的校准曝光。
HN 评论精华
这条帖子热度不高(7 分),讨论很短,但恰好补上了原文缺失的关键信息。
- ultrablue:挺有意思,但他第一时间去找的是拍摄地点的经纬度——尤其是纬度,因为纬度直接决定太阳轨迹的高度和形状,没有它就没法判断这些弧线意味着什么。他没找到,还客气地补了一句「如果是我看漏了那抱歉」。
- aaronbrethorst:给出了答案——西雅图,并附上 West Seattle Blog 的每日天气页面链接作为交叉印证。也就是说这套相机架在北纬约 47.5° 的高纬度位置,这解释了为什么夏季一天能拍到 800 张、太阳能沿地平线扫过那么大的方位角范围,也解释了为什么作者需要 250° 的超宽覆盖才装得下完整的日轨。