引力波的发现离不开大数据分析,Python全栈式数据科学语言功不可没

推荐会员: lex 所属分类: 行业精选 发布时间: 2016-02-24 15:54

《引力波研究,正在数据科学中御风冲浪》

软件正在吞噬这个世界。从律师到医生,AI(人工智能)正在许多专业领域攻坚拔寨。现在,又轮到科学家来面对人工智能的挑战和机遇了。LIGO(激光干涉引力波天文台)探测到引力波的消息抢占了世界各地的新闻头条。这一发现也理所应当地被认为是爱因斯坦广义相对论的一个伟大胜利。我们用了100年时间才终于开发出了验证爱因斯坦预言的实验。然而,和其它任何伟大的科学发现一样,我们应该思考其对科学未来发展的影响。

自从1919年爱丁顿那场戏剧性的日食观测以来,广义相对论已经获得了科学家的广泛接受——它已经在本科物理学课堂上被教授了几十年。引力波最先是由爱因斯坦本人怀疑然后预言的,之前也已经在多种不同的天文系统中被间接观测到过(其中之一还获得了1993年的诺贝尔奖)。而LIGO上周公布的是人类第一次直接观测到引力波。这当然具有非常重要的意义。非凡的主张需要非凡的证据。LIGO的引力波探测绝对是非凡的证据,它跨越了十亿光年的时空,帮助我们证实了广义相对论的正确性。

然而,LIGO探测到引力波基本上符合大多数科学家的预期。事实上,人们一直在激烈地争论,在LIGO上花费十亿美元科研经费是否明智。如果LIGO没能探测到引力波,那才将成为一个更大的科学事件。那么,我们真的是花了十亿美元来证实了100年前的非凡主张(广义相对论)吗?

当然不是!LIGO让我们能通过一个全新的窗口(引力波)来观察宇宙。在这一历史时刻之前,几乎所有关于我们宇宙的科学数据都是通过电磁波(无线电波、微波、可见光、紫外线、X射线、伽马射线等)收集的。然而我们已经知道,宇宙中一些重要的东西可能并不发光,如黑洞、暗物质、暗能量等。为了更深入地了解宇宙,通过电磁波之外的方式研究宇宙是十分关键的。LIGO为一类新天文学(引力波天文学)开启了大门——正如无线电天线将我们带入了射电天文学时代一样。毕竟LIGO称自己是「天文台」,也渴望承担天文观测台的角色。

引力波提供了一种研究宇宙的新方式,但现在我们在数据科学中面临着巨大的难题。

要理解为什么引力波存在数据上的难题,我们需要了解LIGO的工作方式。LIGO可能是人类打造过的最先进、最精密的设备。其设计目的是探测引力波经过时对时空的轻微拉伸和压缩所引起的微小长度变化。LIGO非常精确,甚至可以检测到比原子核小1000倍的运动——这是有史以来科学尝试过的最小度量。

美国的两处LIGO设施——两者相距2000英里以最大限度减少意外信号
美国的两处LIGO设施——两者相距2000英里以最大限度减少意外信号

但测量的精度水平也存在自身的问题。该设备对噪声非常敏感。几英里外高速公路上的一辆汽车经过、科学家的走动、飞机飞过、随机地震事件等都会产生比潜在的引力波信号更强的振动。LIGO工程难题中的一个重要部分就是开发能过滤这些噪声的硬件和软件。这就是第一篇LIGO论文包含了一千多个共同作者的原因,他们中许多是工程师。

工程上,LIGO使用了机器学习算法来识别和预测数据中的噪声事件。例如,可以训练人工智能识别飞机越过头顶时或激光光路上反射镜的失准所引起的噪声尖峰,而不会将其误认为是真正的引力波信号。

即使能够滤除最容易识别的噪声事件,但仍可预期LIGO每年收集的500TB数据中的绝大多数依然是噪声。要将信号和噪声区分开,存在两种基本的方法。

第一,我们可以检测非常强的信号。这基本上就是上周见诸报道的。两个黑洞的融合过程所释放的能量超过了整个宇宙所有恒星发光能量的总和!如果这么巨大的能量是以可见光的形式释放,这两个13亿光年外的黑洞将在我们的天空闪耀如满月(这表明,如果我们像以前那样,只通过电磁波来观测宇宙,将会错过太多信息)。许多人认为这是一个罕见的事件,可能在很长时间内都不会重复。这一次只是我们运气好。

相隔2000英里的两个LIGO设施都探测到了非常强且一致的信号
相隔2000英里的两个LIGO设施都探测到了非常强且一致的信号

第二个方法更为实际,我们可以探测隐藏在噪声中的长期信号模式。我们可以检测「背景」引力波,这些引力波是宇宙大爆炸或星系团中的星系和黑洞不断碰撞与融合的长期运行过程所遗留下来的。随着时间的推移,这类信号的累积数据会越来越加深我们对其物理系统的理解。有了合适的物理模型,人工智能就能学会用这些数据与模型进行比对,很快预测出与新信号有关的天文事件。

引力波天文学的未来取决于我们能从嘈杂的数据中提取出多少内涵。

来源:http://www.almosthuman.cn/2016/02/16/8uloe/

 

北京时间2月11日晚11点30分,美国LIGO科学合作组织面向全球宣布,LIGO首次直接探测到引力波和首次观测到双黑洞碰撞与并合!这一发现印证了物理学大师爱因斯坦100年前的预言。在物理学上,引力波是爱因斯坦广义相对论所预言的一种以光速传播的时空波动。

用于分析引力波的Python库到底是什么
时空波动

据悉,此次探测到的引力波是由13亿光年之外的两颗黑洞在合并的最后阶段产生的,经过13亿光年的时空旅行,最后被美国的“激光干涉引力波天文台”(LIGO)的两台孪生引力波探测器探测到的。

而跟着引力波火起来的,还有引力波的研究机构LIGO公布在GitHub上的一个Python库(地址在文尾)。可以说Python丰富的第三方库资源是它的优势,甚至有时候程序员花了大量精力写好了代码,却发现一个库函数就轻而易举解决了,如今LIGO公布了GWPY还不快快学起来?

用于分析引力波的Python库到底是什么
GitHub

目前这个Python包GWPY的安装已经可以直接输入命令:pip install gwpy就可以完成安装了。

激光干涉引力波观测站LIGO和另外一个研究机构Virgo将用于引力波数据分析的Python代码整理后,形成了GWPY,它使用的依赖包包括numpy、scipy、cycler、matplotlib、astropy等。

Github地址:https://github.com/gwpy/gwpy

品牌:空格 服务器

2GWPY在引力波检测中的具体作用

数据对象正是GWPY的核心关注点,GWPY还提供了4种核心数据对象,分别代表引力波探测器所产生的四种标准数据:TimeSeries(时间序列数据)、Spectrum(光谱数据)、Spectrogram(光谱图)和DataQualityFlag。

国外网站Reddit上,来自LIGO的几位专家和网友展开了一场全面的讨论,针对在引力波预测中是否使用了Python的GWPY包,LIGO专家给出了肯定的答复。

根据负责管理引力波监测设备的科学家介绍,Python语言在此次引力波检测过程中主要的作用是对检测设备进行自动化管理好数据分析。LIGO负责数据分析的科学家表示,LIGO使用的许多分析工具都是用Python开发的,而且这次引力波大发现最终的统计显著性(final significance)就是用这些工具计算得出。

用于分析引力波的Python库到底是什么
GWPY数据可视化分析

当然,如果你仔细观看,会发现此次LIGO介绍的论文中,几乎所有的数据图表都是用Python GWPY包中的matplotlib绘制的。

Github地址:https://github.com/gwpy/gwpy

美国科学家11日宣布,他们去年9月首次探测到引力波。这一发现印证了物理学大师爱因斯坦100年前的预言。宣布这一发现的,是激光干涉引力波天文台(LIGO)的负责人。

这个机构诞生于上世纪90年代,进行引力波观测已经有近30年。那么观测到的引力波数据的量应该很大,科学家如何对这些数据进行分析?有没有用到Python编程语言?

答案是肯定的。笔者在Github上发现了一个专门用于分析引力波数据的Python包:GWPY。据维护者介绍,GWPY的代码来自LIGO和另一个名叫Virgo的机构,维护者将这两个机构科学家的Python代码整理,最终的产品就是GWPY这个用户友好的Python包。

在具体介绍GWPY之前,先给和笔者一样的小白简单科普一下引力波和LIGO的相关知识。

什么是引力波?

上图是两个黑洞所产生的引力波的3-D模拟图(NASA)。

首先,什么是引力波?在物理学上,引力波是爱因斯坦广义相对论所预言的一种以光速传播的时空波动,如同石头丢进水里产生的波纹一样,引力波被视为宇宙中的“时空涟漪”。通常引力波的产生非常困难,地球围绕太阳以每秒30千米的速度前进,发出的引力波功率仅为200瓦,还不如家用电饭煲功率大。宇宙中大质量天体的加速、碰撞和合并等事件才可以形成强大的引力波,但能产生这种较强引力波的波源距离地球都十分遥远,传播到地球时变得非常微弱。

下面分享两个优秀的视频,很好地解释了引力波及背后的原理。第一个来自LIGO,第二个则是比较通俗的漫画式讲解。

LIGO科学家的解释:

http://v.qq.com/boke/page/g/0/0/g0184mxwie0.html

漫画式通俗解释:

http://v.qq.com/page/j/x/u/j0184qlilxu.html

LIGO是什么?

激光干涉引力波观测站( Laser Interferometer Gravitational-Wave Observatory)LIGO是加州理工学院(Caltech)和麻省理工学院(MIT)的合作实验室,现在也有其他的大学参与。实验资金来源于美国国家科学基金会。LIGO是用来寻找宇宙中的引力波,从而可以验证黑洞的存在和检验广义相对论。

LIGO主要有两个观测点,位于路易斯安那Livingston Parish的LIGO Livingston观测点,和华盛顿 Hanford的LIGO Hanford观测点。除此之外,在加州Passadena 的Caltech校园中还有LIGO 40m Prototype 。

LIGO是如何探测引力波的?

视频:LIGO是如何探测引力波的?

GWPY:LIGO用它分析引力波数据?

接下来是本文的重头戏。我们一起来学习如何GWPY分析引力波数据。下面的介绍及示例均来自GWPY的官方文档。

安装

很简单,pip install gwpy就可以完成安装。

不过安装的过程可能会比较长,因为gwpy使用的依赖包比较多,包括numpy、 scipy、 cycler、matplotlib、astropy等。

面向对象编程

GWPY是一个面向对象编程的Python包,也就是说,数据对象是这个包的核心关注点。每一个数据对象都体现为一个类实例,包含了其属性和包含的数据。

如果想创建一个新的类实例,建议使用标准的构建器(constructor)。举个例子,我们可以使用一个数据数组,生成一个TimeSeries对象:

>>> from gwpy.timeseries import TimeSeries
>>> mydata = TimeSeries([1,2,3,4,5,6,7,8,9,10], sample_rate=1, epoch=0)

或者从在线数据服务器上下载:

>>>
>>> from gwpy.timeseries import TimeSeries
>>> mydata = TimeSeries.fetch('H1:LDAS-STRAIN', 964656015, 964656615)

核心数据对象

据介绍,GWPY提供了4种核心数据对象,分别代表引力波探测器所产生的四种标准数据:

  • TimeSeries(时间序列数据)
  • Spectrum(光谱数据)
  • Spectrogram(光谱图)
  • DataQualityFlag

引力波数据可视化

我们知道,将引力波探测器收集的数据可视化,对于理解引力波的特性、研究引力波信号来说非常有帮助。gwpy.plotter模块中提供了一些plot类,可以直观地展示相应的数据类型。

GWPY的核心数据对象里,大部分都内置有一个plot()方法,可以让研究人员快速对某个数据集进行可视化展示。举个例子:

>>> from gwpy.timeseries import TimeSeries
>>> data = TimeSeries.fetch('H1:LDAS-STRAIN', 968654552, 968654562)
>>> plot = data.plot()
>>> plot.show()

gwpy data plot

GWPY:利用公开的LIGO数据进行绘图

我们接下来利用LIGO公开的一些引力波时间序列数据进行绘图。我们可以直接在线加载这些数据。首先导入我们需要的模块:

>>>
>>> from urllib2 import urlopen
>>> from numpy import asarray
>>> from gwpy.timeseries import TimeSeries

然后,下载数据,保存为文本字符串:

>>>
>>> data = urlopen('http://www.ligo.org/science/GW100916/L-strain_hp30-968654552-10.txt').read()

现在,我们可以对文本进行解析,补充必要的元数据之后,就可以生成一个TimeSeries:

>>>
>>> ts = TimeSeries(asarray(data.splitlines(), dtype=float),
>>>                 epoch=968654552, sample_rate=16384, unit='strain')

最后,我们就可以绘图了:

>>>
>>> plot = ts.plot()
>>> plot.set_title('LIGO Livingston Observatory data for GW100916')
>>> plot.set_ylabel('Gravitational-wave strain amplitude')
>>> plot.show()

LIGO Livingston Observatory data for GW100916

来源:http://www.techug.com/gwpy-ligo-analyze

关键词:

版权声明:本站原创和会员推荐转载文章,仅供学习交流使用,不会用于任何商业用途,转载本站文章请注明来源、原文链接和作者,否则产生的任何版权纠纷与本站无关,如果有文章侵犯到原作者的权益,请您与我们联系删除或者进行授权,联系邮箱:service@datagold.com.cn。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.