先解压独立科学包
下载本页的科学ZIP,核对SHA-256后解压到新目录,在该目录打开终端。README列出实际测试环境:Python3.9.6、NumPy2.0.2、SciPy1.13.1。使用其他兼容版本时,也应记录自己的版本;优化停止点的末几位可能变化。
包里有独立Python、自己的合成输入、单位与源文件身份说明。默认计算不访问网络。浏览器Lab的交互引擎、原论文、原始SPARC表与实测散点图都不在包内。下面先走一条完全离线的计算链。
对应阅读:Independent saved-observation rotation-curve calculation
先保存观测,再让拟合程序读取它
第一条命令从薄指数恒星盘、气体盘和规定的NFW引力生成48个半径的合成速度,再加入预先固定的随机噪声,写成JSON。生成程序在终端说明注入条件;保存给拟合程序的观测文件不含注入参数。
第二条命令重新打开这个文件,用其中的速度、误差与分量列拟合。它不会读取生成程序的真值。NFW条件最优质量光度比约为 ,与注入的 不完全相同:加过噪声后,最优值也发生了移动。
程序对NFW和平核晕各用六个起点,并保存全部停止状态、函数调用次数与代价。合成平核例子的若干起点得到 ,另一个得到更低的 。这两个结果都满足停止条件,仍要逐一起点比较代价。
python science/generate_observation.py --output results/own-observation.json
python science/analyze.py --input results/own-observation.json --output results/own-analysis对应阅读:Independent saved-observation rotation-curve calculation
从同一份结果重算检查与图
验证程序先重算球晕的正密度积分和薄盘的圆环势参照,再检查距离与倾角的数值导数,以及两个似然坐标的Jacobian关系。它还逐项重算已保存的预测,检查拟合结果指向同一份输入。
输出保留了错误算法对照:把指数盘当球、把接近的浮点数直接相减,以及把共同误差当独立误差。正确算法的原门槛与错误对照分别报告,不把一个失败项混进“全部都对”的标题。
作图程序读取保存的观测和分析结果,给出总速度、分项、误差棒及条件轮廓。示例图采用本页自己的合成数据。平核族在这份特意由NFW生成的数据上拟合较差,这是检查方法的一种对照,不能拿来判断真实星系。
python science/validate.py --input results/own-observation.json --analysis results/own-analysis --output results/own-validation.json
python science/plot.py --input results/own-observation.json --analysis results/own-analysis --output results/own-figures对应阅读:Independent saved-observation rotation-curve calculation
只取得两个固定上游文件
若要进入真实对象分支,运行下面的显式联网命令。程序访问SPARC官方Table1和小型Rotmod压缩包,合计只接收138,996字节;固定大小、SHA-256与成员CRC全部通过,才取出NGC2403那一个成员。其余174个对象不解压、不用于分析。文件身份改变时停止,不自动重试或换镜像。
本轮作者在2026年11月5日实际从空目录取得这两份200响应;这次新取源与后面的离线冷复算分别留有收条。将来服务器是否仍提供相同版本,需要读者自己的请求结果说明。
Table1的固定文件身份是28,259字节;压缩包是110,737字节。完整哈希见科学包的source元数据与下载程序。公开材料保留可执行的取源步骤,原件留在读者电脑。
python science/fetch_named_source.py --online --http-budget-bytes 138996 --output local-sparc对应阅读:Lelli, McGaugh & Schombert (2016), SPARC, AJ152,157 · Independent saved-observation rotation-curve calculation
把原生列转成可追溯的保存观测
所选对象是质量标记为1、无核球的NGC2403。Table1给出 、;共 个径向样点。保存命令先核对原文件哈希、具名行的19个字段和无核球条件,再写出这一组观测。
八列依次为半径、总观测圆轨速度、速度误差、气体等效速度、单位质量光度比恒星速度、核球速度、恒星盘面亮度与核球面亮度。半径单位为千秒差距,速度列为千米每秒。原生速度误差不包含倾角系统项,也不是一张完整的协方差矩阵。
气体列的负号标记径向力方向;恒星列保留原生有限厚度盘。保存记录不是原始二维速度场,因而这套程序没有重新测翘曲、非圆运动或光度去投影。
python science/save_native.py --source local-sparc --output results/native-observation.json对应阅读:Lelli, McGaugh & Schombert (2016), SPARC, AJ152,157 · Independent saved-observation rotation-curve calculation
让真实数据经过同一套优化与敏感性分析
对保存的真实观测运行同一个analyze程序。优化范围为质量光度比0.05至1.5、晕密度每立方千秒差距1000至一百亿太阳质量、尺度半径0.05至200千秒差距。它比交互演示的参数窗更宽;范围本身仍是分析条件。
程序另外固定十个质量光度比,分别优化晕参数;还把全局距离和倾角各取中心及正负一倍元数据误差,形成九种共同几何场景。每种场景都重新拟合,不把九种情况当成后验样本,也不把元数据误差自动变成已知联合先验。
本次重新计算的NFW质量光度比约 、尺度 ;平核结果约 与 。工作约化卡方分别为 与 。两者都明显偏差,原始误差与全部选中样点保持不变。
python science/analyze.py --input results/native-observation.json --output results/native-analysis
python science/validate.py --input results/native-observation.json --analysis results/native-analysis --output results/native-validation.json对应阅读:Independent saved-observation rotation-curve calculation · Lelli, McGaugh & Schombert (2016), SPARC, AJ152,157
实测派生图由读者在本地生成
下面的显式选项确认你正在生成本地实测派生图。图与输出留在自己的电脑,用于查看哪些半径偏离、哪些参数抵到边界,以及残差是否连续同向。公开正文的示例图仍全部使用自有合成输入。
早期开发曾遇到三类失败:Table1固定字节切列与实际空白分隔不符;NumPy布尔量无法直接写成JSON;小半径平核相减及似然坐标审查没有通过原数值门。改过的解析或等价算法和旧失败各自留存;本包重新算出数学负例,不把早期退出成功当成全部物理范围已经验证。
python science/plot.py --allow-local-observations --input results/native-observation.json --analysis results/native-analysis --output results/local-measured-figures对应阅读:Independent saved-observation rotation-curve calculation
读下一份数据时也能沿用的检查
先记文件身份与选择条件,再确认每列的单位和正负号。保存观测后才拟合,检查六起点与边界,再把共同几何变化和点误差分别处理。最后同时读残差和模型条件:一个较低的分数仍需解释它怎样处理了物理与误差。
本教程已经实际重算固定对象的条件模型;它没有给出暗物质粒子鉴别、校准后的概率区间或完整原始速度场分析。下一篇把这些习惯带到一份更新的多模型论文,比较作者换了哪些观测与假设。
对应阅读:Independent saved-observation rotation-curve calculation · Lelli, McGaugh & Schombert (2016), SPARC, AJ152,157