文章為《數位時代》獲授權轉載自編程派
美國科學家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是什幺?鐳射干涉重力波觀測站( 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物件:
我們知道,將重力波探測器收集的資料視覺化,對于理解重力波的特性、研究重力波信號來說非常有説明。gwpy.plotter模組中提供了一些plot類,可以直觀地展示相應的資料類型。
北京金恒智能系統工程技術有限責任公司 版權所有 Copyright 2007-2020 by Create-china.com.cn Inc. All rights reserved.
法律聲明:未經許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利!
電話:86+10-62104277/2248/4249 傳真:86+10-62104193-819 京ICP備10010038號-2網站XML
智慧機房
在線體驗