黑蛋在背包客棧頂樓附有高腳桌椅的共同空間,吹著涼風配瓶啤酒,將Lightkurve的功能初步整合到「太陽系外行星資料分析app」中。
他先在「太陽系外行星資料簡介」頁面加入Lightkurve套件的簡介及範例程式,作為取得系外行星資料的第四種方法。然後,他逐步實做出「系外行星凌日分析」頁面第一版要有的功能:
使用者輸入「系外行星所屬恆星名稱」並選擇「太空望遠鏡觀測任務」後,會搜尋並回傳符合條件的光變曲線資料表。文字輸入框及下拉式選單分別用st.text_input和st.selectbox元件組裝而成,並將使用者輸入、選擇的值傳入Lightkurve的search_lightcurve()函式中,以便回傳光變曲線資料表。
為了美觀並提供能在表格勾選項目的功能,光變曲線資料表會以之前有用過的streamlit-aggrid來呈現,並只顯示光變曲線資料所屬的「觀測任務」及「觀測年份」這兩個欄位。
使用者在表格中勾選某個觀測任務後,會下載相應的光變曲線資料,這是透過search_lightcurve()函式所回傳的SearchResult物件的download()功能。
最後顯示相應的光變曲線圖,上一步驟download()所回傳的LightCurve物件,有plot()功能可以Matplotlib畫出圖,然後再透過st.pyplot元件,將Matplotlib的圖顯示在Streamlit app頁面上。
此系列文由蘇羿豪撰寫,以「創用CC 姓名標示 4.0(CC BY 4.0)國際版授權條款」釋出。此系列文也同步在Matters及Mirror平台連載。另外附上此文所提及的太陽系外行星資料分析app以及完整程式碼連結。