天文背包黑客
天文背包黑客

「開放天文 拉近群眾與星空的距離」 公民天文學家/Astrohackers in Taiwan社群的共同創辦人/承接網站開發及資料科學相關案子的遠距工作者 https://astrobackhacker.tw

跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[4]:用NASA系外行星資料庫的API取得資料表

會議中,PM貳婰舞跟黑蛋說:「客戶對於我們之前透過NASA系外行星資料庫網站手動匯出的CSV檔,表示有太多不必要的欄位,希望聚焦幾個欄位且名稱要以中文呈現,他要求的欄位有『行星名稱』、『所屬恆星名稱』、『與地球的距離』、『行星軌道週期』、『行星質量』、『行星半徑』、『發現年份』、『發現方法』。」

黑蛋回說:「看來需要先過濾處理資料表,我會再研究看看是否有相關API可以取得資料,這樣就能以Python程式自動化產出整理過後的報表,若未來資料庫有新增行星資料,也不用透過網站手動下載,排程定期產出CSV檔即可。」

結束視訊會議後,他憶起之前在NASA系外行星資料庫網站首頁左下方有看到新舊版API的說明頁面入口:

新版API是基於Table Access Protocol(TAP)標準,其說明頁面除了描述API的使用方法,也說明各資料表欄位所代表的意義。這個API是使用Astronomical Data Query Language(ADQL)語法來查詢資料表並過濾欄位,該語法是基於SQL。

應客戶需求,黑蛋在API網址中用ADQL的select…from語法,查詢能一行綜觀同個行星所有欄位值的資料表「Planetary Systems Composite Parameters」,並選取所需欄位。他還發現在API中加入format=csv參數,就能在Python script中用Pandas的read_csv()函式,直接將API回傳的資料表讀進DataFrame中,以便將欄位名稱改成中文。最後,他用以下Python script自動匯出客戶此次要求的CSV檔。

此系列文由蘇羿豪撰寫,以「創用CC 姓名標示 4.0(CC BY 4.0)國際版授權條款」釋出。


CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

第一个支持了这篇作品
加载中…
加载中…

发布评论