GWPY:發現重力波的機構使用的Python套件
GWPY:發現重力波的機構使用的Python套件
2016.02.16 | 科技

圖說明

文章為《數位時代》獲授權轉載自編程派

美國科學家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:利用公開的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()

圖說明

關鍵字: #GitHub
往下滑看下一篇文章
青年如何跨出改變社會的第一步?Impact Star 3 組首獎團隊從教育到減塑,把想法帶進真實現場
青年如何跨出改變社會的第一步?Impact Star 3 組首獎團隊從教育到減塑,把想法帶進真實現場

許多年輕人懷抱熱忱,期盼透過行動讓社會變得更好,卻在起步時感到茫然,不知道該從何著手,也難以確認自己的想法是否回應真實需求。為了接住這份想要改變社會的熱情,「2026 Impact Star 青年影響力啟動賽」為青年搭起一個動手實作的舞台。

Impact Star 由新北市政府青年局主辦、社企流共同推動,邀請 5 個社會創新組織提出第一線問題,並安排專業導師陪伴 10 組青年團隊展開兩個月的實作,從訪談、理解需求開始,把點子一步步做成能進入現場測試的方案。

新北市政府青年局
圖說:新北市青年局 邱兆梅 局長分享「Impact Star 青年影響力啟動賽」的辦理初衷
圖/ 新北市政府青年局

把科學教材放進 LINE,協助老師更快完成備課

「LIS 情境科學教材」長期製作國中小科學影片與教學資源,這次競賽以「跨科教學減壓」為題,希望青年找出方法,協助非自然科背景的老師更容易使用這些教材準備科學課程。

本次獲獎團隊「EDU」成員劉子瑤、梁秭萁訪談一名剛進入教育現場的老師後,發現對方同時教授近 9 個科目,還要兼顧行政工作與班級經營,備課時間格外珍貴。因此決定把解決方案聚焦在備課流程最佳化,協助教師更快找到適合的教材。

「EDU」 決定利用教師們最熟悉的 LINE 官方帳號,整合 LIS 影片、投影片與教案,再把教材內容製作成視覺化備課卡。使用者只要透過手機,就能簡單掌握教學重點、課程流程及所需材料,直接放進既有的備課流程。

透過吸收教師的回饋,「EDU」 在競賽過程中持續調整,讓操作方式更貼近實際使用情境。最終作品在 3 名教師參與的初步測試中,於系統易用性方面獲得 82.5 分,反映受測教師對操作體驗的正面評價。

新北市政府青年局
圖說:劉子瑤、梁秭萁分享,未來也期待相同架構能延伸至其他科目,讓更多教學資源被帶進課堂。
圖/ 新北市政府青年局

把教育平權做成手機遊戲,讓青年找到參與方式

「TFT 為台灣而教」長期關注教育不平等,這次活動希望促進青年思考,如何讓高中生與大學生理解教育平權,並找到適合自己的參與方式。本次獲獎團隊「星築美少女」因此決定製作手機沉浸式遊戲《鐘響以前》,並將這些因素融入故事中。遊戲以一場為期 3 天的營隊為背景,玩家能在 15 至 30 分鐘內探索場景、與角色對話並蒐集線索。

遊玩過程中,玩家會發現一名叫做阿龍的孩子沒有出現在正式名單上;而阿龍未能參加營隊,背後牽涉交通、家庭照顧責任與行政程序等因素。玩家必須在有限的人力、時間與預算中作出選擇,透過安排阿龍的行程,切身理解教育不平等如何出現在孩子的日常生活中。

遊戲結束後,系統會依照過程中的選擇提供「行動者分類」,協助玩家了解自己適合投入陪伴、資訊整理或跨域解題,並附上 TFT 相關計畫與參與連結。在 67 名完成前後測的玩家中,認為自身專業難以對教育平權發揮作用的比例,由約 4 成降至約 2 成,顯示更多玩家在體驗後,看見參與教育平權的可能。

新北市政府青年局
圖說:星築美少女成員分享,自己曾在教育社會學課程中接觸相關議題,理解家庭、交通與經濟條件都可能影響一名孩子的求學歷程。
圖/ 新北市政府青年局

減塑求籤機走進飲料店,環保成為日常選擇

「海湧工作室」長期投入環境教育與廢棄物源頭減量,這次競賽希望讓民眾理解海洋廢棄物治理,並在日常生活中實際參與減塑。本次獲獎團隊「塑 per NOVA」從淨灘資料中注意到塑膠吸管造成的海洋廢棄物問題,也觀察到消費者即使知道減塑的重要,仍習慣於購買飲料時拿取塑膠吸管。

「塑 per NOVA」成員王姸儒、郭書睿,因此把實作場域選在手搖飲店,設計「減塑求籤機」。裝置設在消費者購買飲料的動線上,當消費者準備拿取吸管時,即提供可替代選項,讓減塑融入消費流程。

顧客投入 1 元後,可取得一支可自然分解的蒲草吸管,透過掃描 QR Code,可抽取線上環保籤詩。此求籤的趣味設計有效提升消費者嘗試意願,透過線上籤詩更進一步提供日常減塑方法介紹。

「塑 per NOVA」在 3 間飲料店測試兩週,累積約 150 次蒲草吸管取用。這段經驗讓他們直接觀察顧客如何操作裝置,也了解方案能否融入店家的營運流程,為後續拓展更多場域累積經驗。

新北市政府青年局
圖說:成員王姸儒、郭書睿設計「減塑求籤機」,讓減塑融入原本的消費過程。
圖/ 新北市政府青年局

前進新加坡,青年行動的下一步

獲得首獎的 3 組團隊,預計於 9 月底前往新加坡和南洋理工大學,與當地社會創新組織交流。團隊將延續這次實作累積的經驗,觀察新加坡如何回應相近議題,再思考哪些做法適合帶回台灣。

「EDU」希望了解新加坡如何支持非本科教師授課,以及當地社創組織有哪些能夠立即實踐的做法;「星築美少女」則將觀察教育政策的實際運作,及新加坡如何理解與推動教育平權。「塑 per NOVA」關注當地如何讓環保意識融入民眾生活,並希望從永續措施中找到減塑求籤機後續發展的方向。

頒獎典禮上,「星築美少女」成員王品然坦言:「一開始覺得社會影響力很遙遠,自己做不了什麼東西。」但參加完比賽後發現,踏出第一步就可能帶來改變,她說:「其實做一小步,你就可以改變一些東西。」

從起步時不知道該從何著手,到把方案帶進真實場域,3 組團隊在兩個月的實作中找到答案:青年不必等到有完整的解法才開始,只要先走近一個真實需求,並根據回饋持續調整,對社會的關心就能逐漸成為具體行動。

登入數位時代會員

開啟專屬自己的主題內容,

每日推播重點文章

閱讀會員專屬文章

請先登入數位時代會員

看更多獨享內容

請先登入數位時代會員

開啟收藏文章功能,

請先登入數位時代會員

開啟訂閱文章分類功能,

請先登入數位時代會員

我還不是會員, 註冊去!
追蹤我們
一次搞懂工業AI
© 2026 Business Next Media Corp. All Rights Reserved. 本網站內容未經允許,不得轉載。
106 台北市大安區光復南路102號9樓