速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

史上最强韦伯太空望远镜:软件是深度探索宇宙的关键

  • 2022-07-14
  • 本文字数:2599 字

    阅读完需:约 9 分钟

史上最强韦伯太空望远镜:软件是深度探索宇宙的关键

近日,承载人类探索星辰大海梦想的詹姆斯·韦伯望远镜因为一组从距离地球 100 万英里处拍摄的全彩照片而成为全球热议话题。韦伯望远镜(简称“韦伯”)是哈勃望远镜的继任者,于 1996 年开发,最初计划于 2007 年发射,数次延期后最终于 2021 年 12 月升空,项目花费预计高达百亿美元。


花了 25 年才完成,韦伯望远镜也是目前史上最复杂、最精密的太空望远镜。“韦伯不仅仅是哈勃的一个更好的版本,它是一个新事物,”美国太空望远镜科学研究所(STScI,负责韦伯运营工作的组织)天文学家 Erik Tollerud 说,韦伯将成为天文学的探索引擎,而天文学是一个基于软件的领域。

软件是深空探索的关键

按照官方的说法,西门子在韦伯项目中贡献了巨大力量。


望远镜中的集成科学仪器模块(ISIM)包含传感器、相机、电子设备等元素的复杂组合。从最低级别的定制化集成电路,到 ISIM 中四种科学仪器的整体多物理场仿真,西门子软件可以说渗透到了韦伯项目中的各个层面:


  • Tanner 设计套件(包含内置 Calibre 集成)负责建立关键的模数转换器(ADC)阵列,将由韦伯拍摄系统捕捉到的模拟图像,转换为可以下载的数字图像。Teledyne Technologies 在 Lewyn Consulting Incorporated (LCI)的支持下,为四大光学仪器中的三种提供了专用集成电路(ASIC),而此阵列正是这套集成电路的组成部分。

  • 在英国莱斯特大学空间研究中心,NX 和 Teamcenter 被用于 MIRI 模块(低温仪器模块的一部分)的设计、模拟和制造。

  • 各仪器间依靠西门子 Capital 软件实现电子连接。此外,西门子还使用了 Femap 帮助 NASA 模拟韦伯望远镜的组件性能,该软件能够汇集所有解算器信息,借此对韦伯望远镜上的全组装仪器模块进行热分析与结构分析。

使用什么类型的数据库

韦伯望远镜项目是美国宇航局第一个将 XML 用于数据库的大型太空任务。NASA 科学家使用 XML 作为他们的数据库。据 Wiki 百科介绍,这是一种面向文档的数据库。它有助于交换信息,从不同的地面系统组件迁移数据,还减少了每个数据库版本所需的测试。


航天器内部的数据要迁移到各个地面系统组件,迁移由航天器厂商负责。放在以前,这个过程是非常费钱且费时的。当韦伯项目安装 XML 系统作为他们的数据库时,组件之间的数据迁移变得容易多。此外,数据库可以解决系统中的多个问题。目前,韦伯项目中的 XML 已经在模拟器、前端处理器、工程档案、分析系统等系统中得到应用。

飞行软件用 C++编写

韦伯项目整体采用事件驱动的软件架构 (event-driven architecture)。根据太空望远镜科学研究所发表的论文,此举为操作望远镜提供了更大的灵活性,也大幅简化了底层系统。此外, 事件驱动系统的自主性提供了基于遥测响应的航天器和科学仪器指令。在发生故障的情况下,望远镜可继续进行不受事件影响的科学观测计划的部分,从而保证观测站的效率最大化。


韦伯项目简化机载结构


韦伯望远镜的科学操作是由 ASCII(而非二进制命令块)板载脚本来驱动,该脚本的编写借助的则是 JavaScript 的一套定制化版本。脚本解释器采用的是 C++编写的飞行软件,负责操作航天器与科学仪器。


其中,板载脚本能够自动构建并向飞行软件发出实时命令和遥测请求,进而指导各 Observatory(天文台)子系统(包括科学仪器、姿态控制等)的运作。飞行软件随后会执行板载脚本发来的命令,并返回遥测数据。板载脚本对遥测数据进行实时评估,再调用脚本将状态信息发送至更高级别的板载脚本,进一步根据观测计划中的跳过逻辑对特定事件做出响应。

344 个故障点,确保应急计划

韦伯项目对于单点故障项目也给予了很多关注。2018 年的一份审查报告曾显示,NASA 估计整个韦伯望远镜至少还有 344 个在完全展开前可能发生的故障点。单点故障(single point of failure,缩写 SPOF)是指系统中一点失效,就会让整个系统无法运作的部件。


换句话说,只要其中任意 1 个问题出现,都可能让整个系统无法顺利运作。一般可以透过冗余的方式增加多个相同机能的部件,只要这些部件没有同时失效,系统(或至少部分系统)仍可运作,这会让可靠度提高,不过也增加成本和一些设计难度。而韦伯也很难做到“完全冗余”。


后来,根据该份审查报告,NASA 对韦伯望远镜进行了系统性的排查与测试。NASA 戈达德韦伯部署系统负责人 Alphonso Steward 表示,韦伯任务的大部分内容中都存在“相当多的冗余”。其应急计划覆盖了从超级简单到非常复杂的整个范围,有些计划甚至就像“重新发送未通过的命令”一样简单。

开源对太空事业的帮助

值得一提的是,开源也为天文学提供了有力的支撑。当前,开源软件已经成为天文学家手中的重要工具,而 Python 则成为其中最常见的首选编程语言。与众多技术领域一样,Python 及其相关科学 Python 生态系统,在过去十年间风靡整个天文科学世界,Astropy 等项目也在这股风潮中发挥了重要作用。


具体来说,天文学家们的工作严重依赖 NumPy 和 matplotlib 等数学软件包。而现代天文学家工作流程中最核心的工具可能是 Astropy,该项目由 Astropy 核心包和一系列工具包组成。超过 400 人为 Astropy 做出了贡献,其中包括天文学家和其他科学家、软件工程师和基础设施专家。


在 GitHub 负责管理太空望远镜科学研究所数据档案的产品管理总监 Arfon Smith 曾在受访时表示,韦伯太空望远镜是个庞大的项目,其研发周期不可能在几年间完成。事实上,这台望远镜已然经历 20 多年的发展沉积,而直到过去五年左右,开源成果才开始在项目之内生根发芽。


韦伯望远镜项目的特殊之处在于,过去几年来,开源已经成为全球天文学家社区在合作构建韦伯科学项目时能用到的最便捷、最灵活的方式。


从将原始图像转换为科学数据的核心数据管道,到通过模拟场景帮助天文学家们探索望远镜的最佳使用方式,再到用于探索新发现的科学工具,开源已经成为这些创新技术成果中的绝对核心。


宇宙的预估年龄(自“宇宙大爆炸”以来)为 138 亿年。在如此漫长的岁月中,其他星球上是否也孕育出了生命?宇宙中还有无数秘密有待揭开,而也许韦伯望远镜能帮助我们找到答案。


参考链接:


https://www.stsci.edu/~idash/pub/dashevsky0607rcsgso.pdf

https://github.com/readme/featured/webb-telescope-astropy

https://github.blog/2022-01-18-how-open-source-is-supporting-nasas-new-eyes-in-space/

https://coderons.com/post/the-james-webb-space-telescope-hsh

https://www.oschina.net/news/202809/jwst-runs-a-proprietary-interpreter

https://ntrs.nasa.gov/api/citations/20060002698/downloads/20060002698.pdf

2022-07-14 21:3711236

评论 2 条评论

发布
用户头像
据 NASA 称,韦伯的通信系统并不华丽。相反,数据和通信系统的设计除了可靠,还是可靠。换句话来讲都是老掉牙的技术和语言,稳定是第一。
2022-07-18 09:11
回复
用户头像
开源已经成为这些创新技术成果中的绝对核心.
2022-07-16 09:21
回复
没有更多了
发现更多内容

揭开KPI异常检测顶级AI模型面纱

华为云开发者联盟

华为 AI 数据 决策树

区块链加密货币钱包系统APP开发|区块链加密货币钱包软件开发

系统开发

看透Spring MVC源代码分析与实践

田维常

Java

七大关于DevOps的误解,你中了几招?

禅道项目管理

DevOps 运维 开发 自动化测试

三十未立

阿萌

人生修炼

Spark 3.0 关键新特性回顾

hanke

大数据 spark 开源

招聘 | 腾讯云大数据,期待您的加入!

腾讯云大数据

大数据

在线教育的发展

anyRTC开发者

AI 音视频 WebRTC 在线教育

前端异常监控 Sentry 的私有化部署和使用

智联大前端

大前端 监控 异常 sentry 错误

原始时代对分布式架构的探索

而立斋

创业公司用 Serverless,到底香不香?

Serverless Devs

Java Serverless 运维 云原生 大前端

Go语言分布式系统配置管理实践--go archaius

华为云开发者联盟

分布式 Go 语言

大作业二--知识点整理

Nick~毓

图灵测试已过时,AI 需要新基准测试;别了Flash,Adobe播放器正式停运

京东科技开发者

云计算 AI 量子计算机

从源码层面理解ArrayList 扩容策略

geekymv

Java 扩容 ArrayList

13周作业

走走,停停……

从 RxJS 到 Flink:如何处理数据流?

Apache Flink

flink 流计算

纵观 Excel 演化史,开发者如何通过“表格技术”提升企业生产力

葡萄城技术团队

Excel SpreadJS

第五周 技术选型(一) 学习总结

胡云飞

依赖倒置原则与单一接口隔离原则

Andy

京东面试:说说MySQL的架构体系

田维常

MySQL

数仓实时化改造:Hudi on Flink 在顺丰的实践应用

Apache Flink

flink 流计算

为PostgreSQL的表自动添加分区

PostgreSQLChina

数据库 postgresql 开源

IPFS挖矿APP系统开发|IPFS挖矿软件开发

系统开发

GitHub 的野心,5600 万开发者的新社区

打工人 Coco

GitHub 开源 开源社区

来啦!2020 Java开源项目权威排名解读:Spring Boot排名稳定、Shiro未上榜

JavaGuide

开源 springboot springsecurity shiro

为什么计算机经典大头书老是看不进去?

yes

学习 技术书籍 阅读

mybatis使用及SQL语句优化小结

华为云开发者联盟

数据库 mybatis 索引 实用SQl语句

Selenium高效拍档-HtmlUnit

dothetrick

Java 自动化测试 测试开发

重学JS | 深入理解Object,必会知识点汇总

梁龙先森

大前端 编程语言

12周作业

走走,停停……

史上最强韦伯太空望远镜:软件是深度探索宇宙的关键_开源_罗燕珊_InfoQ精选文章