【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

  • 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:3710533

评论 2 条评论

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

一个将日志消息仅区分为 info 和 error 的实践分享

Tiger Wang

开源 最佳实践 日志

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue

高级前端一面经典手写面试题汇总

helloworld1024fd

JavaScript

纷繁复杂见真章 华为云大型产品需求管理利器CodeArts Req解读

Geek_2d6073

Docker进阶:step by step

无人之路

Docker

JS模块化—CJS&AMD&CMD&ES6-前端面试知识点查漏补缺

loveX001

JavaScript

一年半经验如何准备前端面试

loveX001

JavaScript

写个JS深拷贝,面试备用

helloworld1024fd

JavaScript

中小企业运营自媒体为何多以失败告终

石头IT视角

一天梳理完React所有面试考察知识点

beifeng1996

React

聚焦技术,锐意创新,GaussDB给世界一个更优选择

Geek_2d6073

每日一题之Vue数据劫持原理是什么?

bb_xiaxia1998

Vue

安全可信 | 强墙出击!天翼云Web应用防火墙(原生版)硬核亮相!

天翼云开发者社区

安全 防火墙

Best Machine Learning Tools for Java

Mahipal_Nehra

Java AI Machine Learning tools best tools

开放云主机端口

好吃不贵

高级前端一面常考react面试题总结

beifeng1996

React

FLStudio2023中文版远程安装下载

茶色酒

flstudio FLStudio21 FLStudio21.0.0

前端vue面试题汇总

bb_xiaxia1998

Vue

高级前端一面必会react面试题(持续更新中)

beifeng1996

React

假如面试官要你手写一个promise

helloworld1024fd

JavaScript

Verilog 时序控制

智趣匠

Verilog Verilog语法 Verilog时序控制

spring boot+mybatis整合

@下一站

MySQL mybatis 12月日更 12月月更 springboot框架

知道这个网站你就不用买实体书了

邱比特讲编程

程序员 资源 电子书 大学生

Spark架构

穿过生命散发芬芳

spark 12月月更

Python:界面开发,wx入门篇

eng八戒

Python PyQt GUI WxPython tkinter

Docker上手:step by step

无人之路

Docker

易观分析:手机银行季度活跃用户突破7亿人,个人养老金业务争夺战开启

易观分析

手机银行 个人养老金

JAVA中生成随机数Random VS ThreadLocalRandom性能比较

JAVA旭阳

Java

Ubuntu无法切换到桌面tty7解决

alps2006

ubuntu

一道React面试题把我整懵了

beifeng1996

React

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