第一步,认出版本与样本选择
输入是 SDSS DR17 SkyServer 公开 SQL 服务返回的六千一百六十二字节文件,原查询与 SHA-256 校验值一起保存。查询把主星系光谱连接到最佳成像对象,要求光谱警告为零、成像干净、光谱红移在零点零二至零点八之间,再按光谱编号取前二十四行。实际样本红移范围为零点零二一二二二二八至零点四四八二一九九。
这是一个明亮、经过光谱选择的小练习样本,还含有巡天中相邻的观测对象。它代表的是这个特定选择。它不能测量暗弱成像总体的红移分布。光谱值参与选样和最终检验,没有进入流量似然,也没有用于训练模板、先验或零点。
objID 与 specObjID 必须保留为字符串。十九位编号超过普通 JavaScript 数值能精确表示的整数范围。原始字节和查询能把每一行对应到真实天体。
mkdir -p galaxy-colors-reproduction
cd galaxy-colors-reproduction
curl -fSLO https://sandboxphysics.com/stories/galaxy-colors/reproduce-sdss.py
curl -fSLO https://sandboxphysics.com/stories/galaxy-colors/sdss-dr17.csv
curl -fSLO https://sandboxphysics.com/stories/galaxy-colors/photometry-grid.json
curl -fSLO https://sandboxphysics.com/stories/galaxy-colors/sdss-results.json
python3 reproduce-sdss.py --reference sdss-results.json
对应阅读:SDSS DR17 imaging fluxes and flux calibration · SDSS public-release use and acknowledgement policy
第二步,读取流量、逆方差与前景消光
每行有五个 modelFlux,单位纳摩吉,以及五个 modelFluxIvar,单位为纳摩吉平方的倒数。SDSS 模型流量在各波段沿用 r 波段选定的形状,便于比较星系颜色。逆方差开平方后取倒数,得到统计标准差;冻结样本的一百二十个逆方差全为正。
extinction 字段给出银河系前景消光的逐波段估计。先用前景改正因子同时乘流量与统计标准差,再套固定近似 AB 零点偏移:u 减零点零四星等,z 加零点零二,其他波段取零。SDSS 将 z 偏移标为尚不确定,这些偏移本身也有约百分之一星等的误差。教程另外保存完全不套这些偏移的敏感性复算。
将改正后流量绝对值的百分之三与统计标准差平方相加,再开平方;此后各个模型都使用同一组误差。这是明确选择的教学误差下限,没有从数据估计 SDSS 协方差,也没有保证后验已得到定标。快照没有跨波段协方差,计算采用对角误差。
对应阅读:SDSS DR17 imaging fluxes and flux calibration · Hogg et al.
第三步,跟着一个负流量算到底
第六行的 objID 为 1237650795146510903,specObjID 为 299491876468189184。原始 u 流量为负零点一九四九四八二纳摩吉,逆方差六点三零三六八九,前景消光零点二五七八五六三星等。两种改正之后,u 流量约为负零点二五六四八五,标准差零点五二四零七三纳摩吉。
它只比零低约半个标准差,与较小的正真实流量相容,应该进入高斯似然。删掉它,或把它当成精确的上限,都会改变问题。第二十二行还有一次负 u 测量,两者都保留。
第六行最高红移峰为零点四一五,中央区间约零点二五六六至零点四六九九。完成流量拟合后读出的光谱红移是零点四四八二一九九,落在区间内。输出保存全部二百四十一个密度值,不打开 Lab 也能检查这项比较。
对应阅读:SDSS DR17 imaging fluxes and flux calibration · Brammer
第四步,先看失败,再看汇总分数
第十八行,objID 1237648721216405657,光谱红移零点零八四一九六五八;光度红移最高峰零点一三零,中央区间零点一零二八至零点一九二二,漏掉了已知红移。第二十三行,objID 1237648720142336237,光谱红移零点零六五一八三零五;最高峰零点一八五,区间零点零九一一至零点一九六二,同样漏掉。
第二十三行还展示了定标怎样影响答案。去掉近似 AB 偏移,最高峰从零点一八五跳到红移网格下边界零。两个红移区域一直在竞争,微小零点改动交换了它们的高低。偏移采用定标文档给出的固定数值,没有为了贴合光谱答案而调节。读单个峰值前,应该先看完整分布和定标敏感性。
有限模型只用一种金属丰度和单次恒星形成史,省略发射线。拟合偏移可能来自这些限制,也可能来自测量或定标;这份小星表无法逐个确定失败原因。输出中的预测流量与残差指出哪些波段不合,后续光谱和更丰富模板可继续检验原因。
| 行号 | 光谱红移 | 最高峰 | 中央 68% 区间 |
|---|---|---|---|
对应阅读:SDSS DR17 imaging fluxes and flux calibration · Bruzual & Charlot
第五步,把样本大小写在汇总结果旁边
二十四个中央百分之六十八区间中,二十二个包含光谱红移,这批对象约为百分之九十二。样本很小、选择特殊,一些分布很宽,误差下限又是一项教学假设,这个比例不能证明区间已经准确校准。包含率高和中位偏移小,也不能说明每条后验都提供了很多信息。
按下式定义归一化红移误差,保存的中位误差为零点零零四四一四,去中位数后的归一化绝对偏差中位数乘一点四八为零点零五四四三。以误差绝对值超过零点一五为灾难性错误,本样本没有对象越线。两个漏掉真值的区间仍然是失败,只是没有达到这个较粗的阈值。
下次拿到新星表,先记录版本、选择、流量与误差单位,再说明前景和零点处理;光谱答案留作检验。查看完整分布、残差与边界概率后,再报告区间包含率和定义清楚的离群指标。若要校准整个巡天的红移分布,验证样本还必须覆盖目标巡天的颜色、亮度与红移选择。
对应阅读:Brammer · SDSS DR17 imaging fluxes and flux calibration