先固定天空,再谈成员
目标是M67附近一个半径1度的ICRS锥区,中心赤经132.85度、赤纬11.81度,先限制G视星等小于18.5。材料包source-recipes.json保存完整ADQL,明确读取gaiadr3.gaia_source,并按source_id排序。这个锥区里有前景、背景和星团成员,不能把“在这片天空里”直接叫作“属于星团”。
实际固定响应有7494行。source_id要当字符串保存,避免把长整数经过浮点数后丢掉末位。位置单位是度;视差是毫角秒,自行是每年毫角秒。Gaia的pmra已经含赤纬余弦,不能再乘一次。表内2016.0是天体测量参考历元,不表示所有平均星等都在那一天拍成。
上游Gaia专用许可页与网页图片页脚是两件事。这里提供具名获取步骤,不把Gaia原行、逐行派生表或真实散点图放进公开材料。你本地生成的文件应按源条款使用;这也让每一次筛选都能追溯回实际收到的响应。
对应阅读:Gaia DR3 documentation and archive · Official Gaia data license
把五条命令真正跑一遍
下载本页的完整ZIP,解压并进入cluster-populations-local-science目录。在自己管理的Python环境中准备requirements.txt列出的精确版本。先核包内文件,再获取输入,生成可导入模型,运行实际生产链,最后独立核账。默认输出放在当前目录的独立子目录,不回写项目文档。
python verify_package.py
python fetch_inputs.py --out inputs
python prepare_modelsets.py --inputs inputs --out local-modelsets
python reproduce.py --inputs inputs --out results
python validate.py --inputs inputs --results results第一条命令只证明包内成员与清单一致,不证明科学结论都成立。fetch_inputs用原站固定入口和精确POST配方取源;prepare_modelsets从实际原生行生成两份JSON,同时从作者ISOA CSV重新选出公开98节点,核对它们的身份。reproduce重新计算成员、模型比较和独立检验;validate再直接读原CSV与保存分量,核查身份、几何和光通量。
已有原始缓存时,可以把获取命令换成下方形式,多个缓存目录就重复cache参数。这是离线缓存体重放,不是一次新的网络获取。缓存仍必须通过源哈希或完整模型数值哈希,脚本不会因为文件名正确就放行。
python fetch_inputs.py --out inputs --cache /path/to/original-cache对应阅读:PARSEC/CMD3.8 official input help and phase labels · MIST official isochrone interface and user documentation · Reyes et al. (2024), a precise M67 isochrone; native ISOA data
留下哪些点,由条件明确决定
质量筛选要求关键天体测量与三波段星等有限,三项天体测量误差为正,visibility_periods_used至少9,G通量信噪比大于50,BP与RP分别大于10。固定响应留下7371行。这里没有先按颜色贴近某条理论线来挑星。
主筛选以自行约为每年赤经负11、赤纬负2.9毫角秒为中心,取半径0.7的圆;原始视差取1.15上下0.12毫角秒。结果1064行。另一条独立声明的敏感性路线使用三维误差相关矩阵,并加入给定内在宽度,得到1243行。两者是条件不同的候选集合,不是两份都已知纯净的成员目录。
34个RUWE大于1.4的点仍保留。474个候选有径向速度,其中13个超出20.4至47.6 km/s也只标记,不自动删除。双星可能影响天体测量或速度;把这些点一删再声称样本证明单星图很窄,会把问题先从样本里筛掉。脚本不施加全局视差零点校正,也不把原始视差直接倒数当作无偏距离估计。
临时下载地址不是模型身份
CMD和MIST服务会生成临时结果地址。地址过期以后,唯一可执行的入口仍应是记录版本、成分、年龄、通带和消光的POST配方,而不是祈祷某个旧文件名一直活着。PARSEC配方实际返回十二个对数年龄节点8.6至9.7;原请求上端9.8并没有变成第十三个节点。
MIST请求同样显式列出这十二个节点。脚本先读ZIP中央目录,只获取光度成员的精确压缩字节区间,要求HTTP 206、Content-Range与体长一致,再核解压长度和CRC。服务器忽略Range就停止,不退回整库下载。理论成员不需要取得。
原响应体哈希与数值表哈希分开保存。日期头、随机文件名或ZIP包装可以改变;所有原列与原行按声明的float64字节规则规范化后,完整数值仍须精确匹配。这里不四舍五入再说“一样”。版本、通带、节点或数值发生变化,应明确失败并重新审输入。
把local-modelsets中的parsec-native12.json或mist-native12.json选入Lab。文件只进入当前浏览器内存,不上传,也不触发外站请求。只有验证完成后才出现年龄选择;通带标签变成EDR3。公开3.95 Gyr的DR2默认是另一份模型,不拿它覆盖真实DR3散点。
对应阅读:PARSEC/CMD3.8 official input help and phase labels · MIST official isochrone interface and user documentation · Reyes et al. (2024), a precise M67 isochrone; native ISOA data
看结果,也看留下来的失败
results/summary.json给聚合结果,selected-gaia-local-only.csv和real-gaia-local-only.png只在本地生成。颜色残差0.05星等、G残差0.2星等是描述坐标尺度,不是测量误差。年龄和距离搜索碰到边界时,结果明确保留边界标志,不转写成年龄区间。
另外三个失败也应看见。原生年龄插值没有通过;公开ISOA的连续光度留出误差超探索门,默认改用离散节点;种子20261104的20万个Plummer点在原定99.9% DKW界外。最后一项还保留了原随机输入。同一输入下,独立积分与几何求解吻合;原失败样本照样留在结果中。
另一个事前写下的独立种子集合,使用两类生成器、各16个种子,检查128条累计分布,并单列多重检验的家族置信界。它能给原异常提供背景,不能回头把原失败改成通过。终端退出码为零,表示生产链正确保留并核验这些结果,不等于每个科学门都过了。
这份复算重新处理真实源行和原生数值表,但不重新运行恒星演化,不重建受保护Engine,也不从八颗巨星的原光谱重拟合丰度。把已算、没算和拒绝的部分放在一起,下一位读者才知道可以从哪里继续。