「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[23]:再版重力波事件列表頁面,新增轉換時間格式、去除缺值事件、分頁表格及匯出CSV/JSON檔等功能

PM貳婰舞向黑蛋說明功能新增任務:「客戶看了初版的『重力波事件列表』頁面後,列了四個想新增的功能。第一,他希望能在頁面中切換表格中的時間格式,將GPS時間系統切換成世界協調時間UTC,以便知道重力波事件是何年何月何日何時被觀測到。第二,他希望能一鍵去除欄位缺值的事件。第三,他希望能將表格分頁,預設每頁顯示10筆事件,但能自行調整顯示筆數。第四,他希望能在頁面上選擇將事件表以CSV或JSON格式匯出檔案。」

針對第一個需求,黑蛋從GWpy套件中找到能方便將GPS時間系統轉換成UTC時間的功能gwpy.time.from_gps(),並且用st.radio元件讓使用者可以在頁面上做切換。接著,他以st.checkbox元件搭配Pandas DataFrame的dropna()功能,讓使用者可以在左側邊欄一鍵去除欄位缺值的事件。

為了完成第三個需求,黑蛋在streamlit-aggrid的說明文件中,找到能設定表格分頁的功能configure_pagination(),並且加上st.number_input元件,讓使用者可以自行調整表格每頁要顯示的事件筆數。最後,他將Pandas DataFrame的to_csv()to_json()功能,結合st.radiost.download_button這兩個元件,讓使用者可以選擇把重力波事件表匯出成CSV檔或是JSON檔。

此系列文由蘇羿豪撰寫,以「創用CC 姓名標示 4.0(CC BY 4.0)國際版授權條款」釋出。另外附上此文所提及的重力波資料分析app以及完整程式碼連結。

Subscribe to 天文背包黑客
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.