Potato 在瀏覽器中顯示 FITS 影像,標註者可以根據科學影像、參考影像和差分影像的裁切圖以及光變曲線,把 ZTF 和 Rubin 等巡天的暫現源候選體甄別為真實或虛假,也可以用 Galaxy Zoo 式的問題樹為星系形態分類。Potato 免費開源,執行在你自己的伺服器上,並把每位標註者的標籤分開匯出,用於訓練真假甄別分類器。
差分影像是經過定標的科學曝光減去同一天區的參考影像(模板)得到的影像,真實的暫現源在差分影像中表現為一個新出現的點源。在真假甄別中,標註者把每個檢測判為天體物理源,或宇宙線之類的偽跡。ZTF 的 Braai 分類器用 32,640 組已標註的科學、參考和差分影像三聯圖訓練,這些標籤來自 Zwickyverse,一個簡單的基於網頁的開源工具(Duev et al., 2019)。同一篇論文發現,對於早先的隨機森林分類器給出低分的候選體,Zooniverse 志願者標為虛假的標籤中約有 30% 實際上是真實的。被誤標的候選體大多是變星,而志願者沒有看到光變曲線。在一項 Pan-STARRS1 超新星搜尋中,志願者分類與神經網路分類相結合,效果優於任何一方單獨使用(Wright et al., 2017)。Potato 在裁切圖下方顯示光變曲線,並把每個候選體發給你設定人數的標註者。
Potato 中的天文學任務
下表每一行都使用 Potato 2.13 新增的 fits_cutout 顯示類型,並用 radio 和 multiselect 方案提問。
| 任務 | Potato 的做法 | 文件 |
|---|---|---|
| 甄別暫現源候選體 | 科學、參考和差分裁切圖並排顯示,R、B、U 三個鍵分別選擇 Real、Bogus 和 Unsure | 天文學 |
| 記錄候選體為何是虛假的 | 一道詢問原因的 multiselect 問題,只在標註者選擇 Bogus 之後顯示 | 天文學 |
| 檢視光變曲線 | 候選體的光變曲線顯示在裁切圖下方,上限畫成空心三角形 | 天文學 |
| 星系形態分類 | 每個條目一幅影像,樹的每個節點一道 radio 問題,display_logic 寫明通往每個後續問題的路徑 | 天文學 |
| 把 Zooniverse 工作流轉到內部執行 | potato import -f zooniverse 把工作流中的任務轉換為方案,並可保留志願者的分類結果 | 數位人文 |
| 甄別標籤的一致性 | 在甄別問題上計算百分比一致率、Cohen's kappa、Fleiss' kappa 和 Krippendorff's alpha | 標註者間一致性 |
一項由三名標註者完成的 ZTF 甄別研究
下面的配置讓三名標註者甄別每個 ZTF 候選體,按 ZTF 的列名讀取光變曲線,並詢問每個虛假檢測的原因。天文學頁面給出了條目格式。
annotation_task_name: "ZTF candidate vetting"
task_dir: .
media_directory: media
output_annotation_dir: annotation_output
data_files: [data/candidates.json] # each item names three cutouts and a light curve
item_properties: {id_key: id, text_key: summary}
user_config:
allow_all_users: true
num_annotators_per_item: 3
instance_display:
fields:
- key: candidate
type: fits_cutout
label: "Cutouts"
display_options:
panels:
- {key: science, label: Science}
- {key: reference, label: Reference}
- {key: difference, label: Difference, stretch: asinh}
light_curve_columns: {time: jd, band: fid, mag: magpsf, err: sigmapsf, limit: diffmaglim}
time_label: JD
annotation_schemes:
- annotation_type: radio
name: vetting
description: "Is this a real astrophysical transient?"
humanize_labels: false
labels:
- {name: "Real", key_value: "r"}
- {name: "Bogus", key_value: "b"}
- {name: "Unsure", key_value: "u"}
label_requirement: {required: true}
- annotation_type: multiselect
name: bogus_reason
description: "What makes the candidate bogus?"
humanize_labels: false
labels: ["Subtraction residual (dipole)", "Cosmic ray or hot pixel", "Satellite or asteroid trail", "Bad column or image edge", "Other"]
display_logic:
show_when:
- {schema: vetting, operator: equals, value: "Bogus"}num_annotators_per_item: 3 把每個候選體發給三名標註者。Potato 的光變曲線讀取器查詢 mag 和 magerr 這類列名,light_curve_columns 把 ZTF 的 magpsf 和 sigmapsf 對映到 mag 和 err 兩個角色。不做對映時,每個帶 diffmaglim 值的行都會被畫成上限。設定 humanize_labels: false 後,螢幕上的“Bogus”與 display_logic 條件中的值一致。
匯入裁切圖與匯出標籤
Potato 在伺服器上用 astropy 讀取 FITS 檔案,astro 可選依賴會安裝 astropy(pip install 'potato-annotation[astro]')。每個條目給出相對於媒體目錄的 FITS 檔案和光變曲線:
- 裁切圖。
.fits、.fit、.fts以及 gzip 壓縮的.fits.gz檔案。 - 位置。 條目可以用赤經和赤緯(RA 和 Dec)或 FITS 畫素給出中心,用畫素數或
"40 arcsec"這樣的角度給出尺寸;沒有位置的條目顯示整幅影像。 - 光變曲線。 CSV、TSV 或 JSON 檔案,或直接寫在條目中的點列表。
顯示類型從媒體目錄讀取每個檔案,並拒絕 URL。consensus 匯出把每個候選體的最高票答案、得票比例以及 retired 或 needs_review 狀態寫入 consensus_questions.csv:
python -m potato.export -c config.yaml -f consensus -o exports/consensus使用預設的 agreement_threshold(0.8)和三名標註者時,只有三名標註者意見一致,候選體才會定案(retired),其餘候選體進入 needs_review。標註者把 Bogus 改為 Real 之後,原因問題的答案仍保留在儲存的標註中,匯出和一致性指標都不會把這個答案標為已隱藏。用這些標籤訓練之前,請根據甄別答案篩選 bogus_reason。
與 Zooniverse、SkyPortal 及警報代理的分工
Zooniverse 託管免費的公民科學項目,項目經過稽核後公開上線,適合面向公眾的志願者群體,例如 Galaxy Zoo 和 Zwicky's Quirky Transients。SkyPortal 是一個顯示天文資料集、供標註、分析和發現使用的網頁應用,帶有候選體掃描頁面,用於檢視經過篩選的警報流中的源。Fritz 是 ZTF 的科學資料平臺,基於 SkyPortal 構建,適合巡天合作組的日常掃描和後續觀測。ALeRCE 和 Lasair 等警報代理(alert broker)對完整的警報流進行篩選和分類,Lasair 的 SQL 篩選器可以在即時警報流上執行。當一個私有團隊或一個班級標註一組固定的候選體或星系時,Potato 更合適,因為 Potato 把每個條目分配給設定人數的標註者,在正式條目之前用練習條目培訓標註者,並把每位標註者的標籤分開匯出。一種做法是把從警報代理獲取的候選體裁切圖儲存為 .fits.gz 檔案,在 Potato 中甄別這些候選體,再用已定案的標籤訓練。
藉助程式設計智慧體搭建研究
potato-skill 1.2.0 認得 fits_cutout 這個顯示類型名稱,並指導 Claude Code、Codex 或 Cursor 完成研究設計這一側的工作,例如向標註者問什麼、每個候選體由幾名標註者甄別、培訓和注意力檢查,以及匯出。這個技能目前還沒有記錄 FITS 條目格式、顯示選項和 astro 可選依賴。請讓智慧體參考天文學頁面及其 Markdown 副本 https://www.potatoannotator.com/docs/annotation-types/astronomy.md,以瞭解格式和選項。
常見問題
標註者能否並排檢視一條警報的科學、模板和差分裁切圖?
能。fits_cutout 顯示類型把每個候選體的科學、參考(模板)和差分裁切圖顯示在同一行,三個面板共享縮放和平移,並共用一個十字準線。以 .fits.gz 名稱儲存到磁碟的 ZTF 警報裁切圖無需解壓即可開啟,每個面板可以設定不同的拉伸,例如在差分影像上使用 asinh。
不同觀測之間朝向不一的裁切圖會被旋轉成北朝上嗎?
不會。Potato 按 FITS 檔案儲存的朝向顯示每幅裁切圖,並根據每個面板的 WCS 在面板上畫出北向和東向箭頭。各面板不在同一個畫素網格上時,面板下方會有一條說明指出這一點,十字準線則按天球位置放到每個面板上。
標註者能否從 FITS 影像的 WCS 讀出赤經和赤緯?
能。面板下方的讀數以六十進位制和度兩種形式顯示指標所在位置的赤經和赤緯,並給出原始影像的 FITS 畫素。讀數對 astropy 在伺服器上計算的天球位置網格做插值,因此能跟隨 astropy 能讀取的任何投影,包括 SIP 畸變。
延伸閱讀
- 天文學:所有顯示選項和條目鍵
- 單選與多選:提出甄別問題和樹問題的方案
- 你需要多少位標註者?:選擇每個候選體的標註者人數
- 品質控制:金標準候選體和注意力檢查
- 氣隙與離線部署:在沒有對外路由的網路中執行 Potato
- 數位人文:本站關於 Zooniverse 匯入和 IIIF 影像的頁面
參考文獻
- Duev et al. (2019). Real-bogus classification for the Zwicky Transient Facility using deep learning. Monthly Notices of the Royal Astronomical Society 489(3). https://doi.org/10.1093/mnras/stz2357
- Wright et al. (2017). A transient search using combined human and machine classifications. Monthly Notices of the Royal Astronomical Society 472(2). https://doi.org/10.1093/mnras/stx1812