我构建了Zenith:一个实时、本地优先的固定视口天象馆
摘要
一个基于网页的天象馆,提供你所在位置上方星空的实时、本地处理视图,使用Pan-STARRS数据,并通过固定视口使地球自转可见。
暂无内容
查看缓存全文
缓存时间: 2026/05/15 18:33
# Zenith 技术摘要
来源:https://smorgasb.org/zenith-tech/
关于 Zenith (https://smorgasb.org/zenith/)
这是一个实时显示你头顶正上方星空景象的视图。你看到的星星移动速度会比以往更快,因为视图被放大了。放大不仅让物体看起来更大,也会让运动显得更快。这不是延时摄影或加速播放。你看到的运动完全是由地球自转造成的。
如果你曾在地图上追踪过移动中的物体(比如快递),你可能会放大以查看其运动的细节。
(感谢 Max Harms (https://maxharms.com/) 提出的超级地图创意)
放大能提供更多细节和更快的运动,但会减少周围环境的显示范围。
摄影和电脑显示领域使用“缩放”这个术语。在天文望远镜领域,则为“视场”或“放大倍率”。这是同一个概念。小视场 = 高放大倍率 = 拉近视角。这里的放大倍率约为 180 倍。
本项目的目标:放大到足够程度,使得一颗恒星在 30 秒内的移动距离能横跨屏幕,从而让地球的自转变得可见。因此,我将视场定义为天空在 30 秒内转过的角度。
结果发现,这个视场相当于手臂长度外一颗米粒大小的天空区域。
**问**:如果高倍放大下的物体因地球自转而移动,那么天文学家如何观察恒星而不会让它们移出视野?
**答**:这些望远镜配备精密的电动系统,称为赤道仪 (https://en.wikipedia.org/wiki/Equatorial_mount),它能使望远镜以与地球自转相反的方向转动,抵消这种视运动,从而保持目标物体在视场中的位置。
从太空看(点击探索 3D 模型 (https://smorgasb.org/ribbon))
动画 (https://smorgasb.org/ribbon)
这个动画演示了地球自转以及你的天顶点在天空中划过的轨迹。
**问**:网站为什么要求获取我的位置信息,你们会如何处理这些信息?
**答**:请求位置是为了显示你所在位置正上方的星空。该信息永远不会离开你的电脑。我们 (smorgasb.org (http://smorgasb.org/)) 绝不会看到它。你可以拒绝,网站会默认显示巨石阵上方的天空。根据你设备的设置,位置请求本身可能被屏蔽——比如,你的浏览器可能不提供分享位置信息的选项。
**问**:那些网格线是什么?
**答**:它们是“天球”上的坐标网格(请参见上方的交互式模型),每格边长为 0.5 角分。就像地球上的经纬度一样,赤经线(经度)越往北越靠近,赤纬线(纬度)高度恒定。
#### 关于 *你的个人星带*
ZenithTrack 显示一条细长的天空带,如同一根细丝,高度相当于一颗米粒,长度约为 2,500 颗米粒。它每恒星日(23 小时 56 分钟)重复一次。它会精确重复,并且不随季节变化。与你处于相同纬度的人都能看到相同的视图。位于你正东或正西方向的人会看到相同的影片,但起始时间不同。
这个视口非常狭窄,以至于你南北方向仅 5 英里外的人所看到的景象就完全不同。他们会看到完全不同的星带。
**你南北方向的人**:不同的影片
**你东西方向的人**:相同的影片,不同的时间
个人星带
#### 这些图像是什么?
Zenith 显示的图像由位于夏威夷的 Pan-STARRS (https://www.cfa.harvard.edu/facilities-technology/telescopes-instruments/pan-starrs-1-science-consortium) 望远镜拍摄。我们使用的是 Pan-STARRS1 数据集中的图像,采集自 2010 年至 2014 年。这仍然是目前最符合我们覆盖范围和分辨率要求的天文巡天数据。
图像托管在空间望远镜研究所 (STScI) 的 MAST 档案中。你的设备会直接连接 STScI 获取图像。它们并非托管在此网站上。
stsci
空间望远镜研究所 (https://stsci.edu/)
*特别感谢 STScI 帮助台提供的出色且及时的支持!*
为什么选择这台望远镜和巡天?
要让地球自转可见,需要视角为数角分的视场。对于一个约 1k 像素宽的浏览器窗口,PanSTARRS 以 0.26 角秒/像素的分辨率满足了这一关键需求。`1000px x 0.26”/px = 260” = 4.33’`
PanSTARRS 凭借以下条件使这个天文馆项目成为可能:
- 分辨率
- 广袤的天空覆盖范围
- 可见光波段
不过,它并非我们用途的理想图像集合。虽然具有所需的分辨率和覆盖范围,但 PanSTARRs 的主要任务是移动天体探测(近地小行星等)和深空灵敏度,而不是提供可展示的已知恒星图像。因此,一个权衡是频繁出现过饱和现象。任何亮星都会使传感器饱和并产生颜色失真。见下文。
#### 天体名称:SIMBAD 数据库
https://simbad.cds.unistra.fr/simbad/
> SIMBAD 天文数据库提供太阳系外天体的基本数据、交叉认证、参考文献和测量结果。
我们根据当前视场向 SIMBAD 查询天体信息。在如此深的放大倍率下,看到的都是昏暗天体。想要看到马头星云就像中彩票一样难。
标签
#### 平铺与叠加 - leaflet.js。
Leaflet 通常用于交互式(地球)地图。虽然天球是球面且运动是旋转的,但在这种极端缩放级别下,我们可以将每个瓦片视为矩形,将运动视为简单的线性运动。(这与 Leaflet 在地球上导航时使用的近似相同)。Leaflet 负责分层显示 PanSTARRS 图像、坐标网格和 SIMBAD 名称。令人印象深刻的是,SIMBAD 的十字准星与 PanSTARRS 图像中的实际恒星对齐到像素级别,而这两个数据源完全独立。
语言:JavaScript。完全客户端运行,无服务器组件(服务器零负担 :)
#### 图像处理
PanSTARRS 原始图像并不美观。我们有 2 个步骤:
- 白边去除 - 有些瓦片不完整,边缘有白色部分。(如果屏幕上看到细白线,那是白边去除过于保守留下的残留)。
- 噪声滤波 - 一个简单的阈值函数,设置非常激进。
处理前:
f5f05653-pre
处理后:
f5f05653-post
**未解决的问题**:过饱和。
该望远镜巡天的传感器甚至在中亮度恒星的照射下也会过饱和。请参见“处理前”图像中恒星中心的绿色斑块,这些斑块随后会被噪声滤波错误处理。
仍在寻找解决方案。尝试处理接近单色的像素(几乎纯绿、纯红)并将其变为白色,同时也会抽干小红星的颜色。目前正在探索基于拓扑的解决方法——“白色环绕的绿色斑块”等。此类算法能捕捉部分但非全部坏像素,看起来像是敷衍的涂色工作。我们应该能够利用“不存在绿色恒星”这一事实进行优化。
**安装构思**:投射在天花板上
Github 页面 (https://github.com/S1D1T1/ZenithTrack)
更多技术信息:Battle Hardening Zenith (https://smorgasb.org/battlehardening-zenith)
#### 灵感来源:
第一次通过中等倍率望远镜(不带赤道仪)观察时,看到一个天体缓缓漂出视野。也许是一位老师告诉你:“那个天体没有动。是我们在动。你正在看到地球的转动。”
相似文章
@DavidHodge:我在周末项目中构建了 SatRadar——实时展示所有绕地球运行的活动卫星,在浏览器中可达 120 FPS。…
David Hodge 构建了 SatRadar,一个基于浏览器的工具,通过 WebGL2 着色器在 GPU 上完全运行 SGP4 轨道传播器,实时显示超过 10,000 颗活动卫星,帧率高达 120 FPS。
Show HN: StarScope – 面向美国/英国以外观测者的免费天文仪表板
StarScope 是一个免费的天文仪表板,提供面向半球感知的实时信息流、提醒和社区功能,面向全球业余天文学家,特别注重南半球观测者的平等性。
@akshay_pachaar: 我在3D地球仪上构建了一个实时卫星追踪器。它交互式地显示超过一万颗绕地球运行的活跃卫星,其中包括…
一位开发者使用 Tiger Cloud (TimescaleDB) 和 Claude Code 构建了一个实时3D卫星追踪器,展示了用于时间序列数据的 Tiger CLI MCP 服务器。文章还重点介绍了 Speedcast 在生产规模上对该技术的应用。
在VR中探访星辰(还有行星和望远镜)
史密森尼学会的Starstruck项目是在华盛顿特区进行的一场40分钟的VR天文导览,带你近距离观察恒星、黑洞和系外行星。
@zan2434:想象屏幕上的每个像素,都由模型实时流式渲染。没有 HTML,没有排版引擎,没有代码,只有你想看到的画面……
一款原型直接把 AI 模型的像素实时流式输出到屏幕,绕过 HTML、排版引擎和传统代码。