黑蛋得知重力波開放科學中心有提供多種取得重力波觀測資料的方式後,接著研究「Gravitational Wave Quickview app」的程式碼,以了解它是採用哪種方式。是從網站手動下載資料檔案後再經由程式讀取?是從API取得?還是藉由Python套件?
他發現該app有用到兩個列在重力波開放科學中心Software頁面的Python套件:GWOSC和GWpy。GWOSC套件能取得重力波事件名稱清單,以及放在重力波開放科學中心網站上某個重力波事件的觀測資料檔案的下載連結。GWpy套件則可以直接取得重力波觀測資料,並提供基本的重力波訊號處理(例如:過濾高低頻率雜訊、傅立葉頻譜分析、時頻分析)及資料視覺化功能。
黑蛋播放會議錄影片段,PM貳婰舞在畫面中說明工作任務需求:「這位新客戶喜歡我們最近推出的『太陽系外行星資料分析app 』版型,有資料介紹頁面、資料表格篩選頁面 、資料統計頁面以及資料分析頁面,他委託我們以同樣版型來開發『重力波資料分析app』,他想要先知道有哪些重力波事件,所以我們要先開發資料表格篩選頁面。」
黑蛋望著他初探重力波開放科學中心網站時所整理的筆記,思考著如何藉由Streamlit實做出類似該網站的重力波事件列表頁面,他瀏覽GWOSC和GWpy的文件,了解到可以分別用以下程式碼取得重力波事件清單,而且GWpy的結果較為符合需求。
# 以GWOSC套件取得重力波事件名稱清單
from gwosc import datasets
gw_events = datasets.find_datasets(type='events')
# 以GWpy套件取得重力波事件列表
from gwpy.table import EventTable
gw_events = EventTable.fetch_open_data('GWTC').to_pandas()
此系列文由蘇羿豪撰寫,以「創用CC 姓名標示 4.0(CC BY 4.0)國際版授權條款」釋出。