天文背包黑客

@astrobackhacker

透過Consensus和ScholarAI了解Python如何用於探索天文現象

Python是目前天文學家在探索天文資料述說的故事時常用的程式語言。在「Astrohackers-TW: Python在天文領域的應用」FB社團中,成員們票選對於「天文學家是如何在他們的研究工作中使用Python?」以及「如何用Python取得、分析、視覺化天文資料?

歡迎來到《獵星者旅店》!用ChatGPT製作的RPG來學習天文和Python

歡迎來到《獵星者旅店》!一個充滿魔法與冒險的奇幻世界。在這裡,星體不僅是遙遠的光點,而是充滿故事的魔物,等待著獵星者們的探索與捕捉。你,一位立志成為獵星者的菜鳥,剛踏入這個溫暖的旅店……我以前剛開始學程式時,看的書籍及線上課程多半是按照程式語言的語法來安排章節內容。

「跟著黑蛋用天文資料創作數位體驗」用pygame及NASA系外行星資料庫的資料創作密室逃脫遊戲(3):系外行星資料表載入功能

任職於「天文數智」的黑蛋在公司部落格發表完「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文章後,收到PM貳婰舞指派的新任務:「我們的老闆,來自喵星的『月影』,發現之前的文章內容對於不懂資料分析的大眾還是有點距離,因此想啟動一個新專案『天文的資料再創作』,希望我...

「跟著黑蛋用天文資料創作數位體驗」用pygame及NASA系外行星資料庫的資料創作密室逃脫遊戲(2):密室場景畫面

任職於「天文數智」的黑蛋在公司部落格發表完「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文章後,收到PM貳婰舞指派的新任務:「我們的老闆,來自喵星的『月影』,發現之前的文章內容對於不懂資料分析的大眾還是有點距離,因此想啟動一個新專案『天文的資料再創作』,希望我...

「跟著黑蛋用天文資料創作數位體驗」用pygame及NASA系外行星資料庫的資料創作密室逃脫遊戲(1):遊戲開始畫面

任職於「天文數智」的黑蛋在公司部落格發表完「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文章後,收到PM貳婰舞指派的新任務:「我們的老闆,來自喵星的『月影』,發現之前的文章內容對於不懂資料分析的大眾還是有點距離,因此想啟動一個新專案『天文的資料再創作』,希望我...

「天聞的資料科學」如何用Lightkurve取得系外行星的觀測資料?

「天聞的資料科學」專欄以臺北天文館、臺南南瀛天文館等網站的天文新聞為題材,介紹相關的開放資料及開源軟體,並引導讀者使用Python程式來取得、前處理、分析及視覺化這些資料。透過上述資料科學步驟,讓群眾能夠藉由動手體驗天文知識的發現過程,拉近與星空的距離。

「天聞的資料科學」如何用Astroquery取得韋伯太空望遠鏡的觀測資料?

「天聞的資料科學」專欄以臺北天文館、臺南南瀛天文館等網站的天文新聞為題材,介紹相關的開放資料及開源軟體,並引導讀者使用Python程式來取得、前處理、分析及視覺化這些資料。透過上述資料科學步驟,讓群眾能夠藉由動手體驗天文知識的發現過程,拉近與星空的距離。

「天聞的資料科學」如何用Astroquery取得Minor Planet Center提供的彗星觀測資料?

「天聞的資料科學」專欄以臺北天文館、臺南南瀛天文館等網站的天文新聞為題材,介紹相關的開放資料及開源軟體,並引導讀者使用Python程式來取得、前處理、分析及視覺化這些資料。透過上述資料科學步驟,讓群眾能夠藉由動手體驗天文知識的發現過程,拉近與星空的距離。

「天聞的資料科學」如何用SunPy取得太陽觀測資料?

「天聞的資料科學」專欄以臺北天文館等網站的天文新聞為題材,介紹相關的開放資料及開源軟體,並引導讀者使用Python程式來取得、前處理、分析及視覺化這些資料。透過上述資料科學步驟,讓群眾能夠藉由動手體驗天文知識的發現過程,拉近與星空的距離。此外,本專欄也是「天文的資料科學」教育產品...

「天文的資料科學:來用Python拉近我們與星空的距離」教育產品開發調查表單

想用Python來捕獲星星一探其奧秘的島民。此圖是我藉由Midjourney AI創作。每當島民們仰望星空,總幻想能伸手捕獲星星來一探其奧秘,但即使看了科普書籍及新聞報導,他們仍覺得離星空好遠。某天,一位島民在網上搜尋:「如何捕獲星星?」時,跳出一則訊息:「嗨,這是Astroha...

致力於推動開放科學及公民天文學的Astrohackers in Taiwan社群(一):參與兩場黑客松後所得到的啟發

此圖是我藉由Midjourney AI創作,象徵我2015年時背包上肩前往紐約華盛頓廣場公園參加Astro Hack Week天文黑客松「近年來,國外天文學術界開始紛紛提倡改以Python作為解密宇宙所用的程式語言,那為什麼沒有人在台灣成立天文相關的Python社群呢?

「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[29]:結束這回合前先告訴來看熱鬧的鄉民們誰是黑蛋

黑蛋接通PM貳婰舞的來電,這次背景夾雜著「我要一杯Kahlua。」的點酒聲以及Django Reinhardt所彈奏的《Minor Swing》。「嗨,黑蛋,我看到你已將之前研究重力波開放科學中心網站及GWpy套件時的筆記,整理成『重力波資料簡介』頁面,這樣『重力波資料分析app』就可以結案囉。

「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[28]:藉由Q-transform分析重力波訊號的頻率及強度隨時間的變化

「啾~~~」 黑蛋身處啁啾聲環繞的大學校園中,埋首研究「Gravitational Wave Quickview app」的原始碼,試圖了解該app那張標題為Q-transform的圖,究竟是如何畫出來的,又代表什麼意義。「原來是使用GWpy的q_transform()功能來分析重力波訊號呀。

「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[27]:濾除雜訊以揭露重力波訊號

「恩……咦?……恩……」 黑蛋盯著重力波的時間序列觀測資料圖,實在參不透眼前的訊號,為何來自兩個互繞的緻密星體合併時所產生的重力波事件。於是,他回頭查找「Gravitational Wave Quickview app」的原始碼,以及GWpy套件的文件,看看有什麼被他遺漏的地方。

「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[26]:在重力波資料分析頁面呈現重力波事件的時間序列觀測資料

黑蛋實驗性地在Jupyter Notebook上確認可以藉由GWpy套件的TimeSeries.fetch_open_data()功能取得並呈現重力波事件的觀測資料後,便開始著手開發「重力波資料分析app」的「重力波資料分析」頁面。他先在04_Gravitational_wave...

「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[25]:用GWpy套件取得重力波時間序列觀測資料

PM貳婰舞在他的分享螢幕畫面中操作「Gravitational Wave Quickview app」的同時向黑蛋說明任務:「客戶希望『重力波資料分析』頁面能參考這個app,讓使用者用下拉式選單選擇重力波事件,以呈現該事件的時間序列觀測資料,並能操作基本的資料處理及分析。

「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[24]:在重力波事件統計頁面上呈現緻密星體質量分佈圖

黑蛋邊聽著podcast邊看著PM貳婰舞傳來的訊息:「『重力波事件列表』頁面已經符合客戶需求,你可以接續開發『重力波事件統計』頁面了。客戶想要了解重力波事件列表中的這些緻密星體的質量分佈,大概會落在哪個範圍內。」 黑蛋在03_Gravitational_wave_statisti...

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

PM貳婰舞向黑蛋說明功能新增任務:「客戶看了初版的『重力波事件列表』頁面後,列了四個想新增的功能。第一,他希望能在頁面中切換表格中的時間格式,將GPS時間系統切換成世界協調時間UTC,以便知道重力波事件是何年何月何日何時被觀測到。第二,他希望能一鍵去除欄位缺值的事件。

「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[22]:初版一刷重力波事件列表頁面

黑蛋知道可以藉由GWpy套件取得重力波事件列表後,開始著手開發「重力波資料分析app」的「重力波事件列表」頁面。因客戶想要套用相同版型,他先仿照「太陽系外行星資料分析app」的多頁架構 ,在Home.py放置app首頁內容,而其他頁面所屬的Python scripts則放到pages資料夾內。

「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[21]:用GWOSC及GWpy套件取得重力波事件清單

黑蛋得知重力波開放科學中心有提供多種取得重力波觀測資料的方式後,接著研究「Gravitational Wave Quickview app」的程式碼,以了解它是採用哪種方式。是從網站手動下載資料檔案後再經由程式讀取?是從API取得?還是藉由Python套件?