---
title: "把三维星流投到天空，再谈拟合"
description: "定义星流坐标、自行与太阳反射运动；用已知真值和留出样本区分积分正确、轨道拟合与真实星流。"
canonical_url: "https://sandboxphysics.com/zh/stories/stellar-streams/observing-and-fitting-a-stellar-stream/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/stellar-streams/observing-and-fitting-a-stellar-stream/"
last_modified: "2026-11-05"
---

[星流、引力掠过与观测投影](https://sandboxphysics.com/zh/stories/stellar-streams/)

星流与掠过 · L3

# 把三维星流投到天空，再谈拟合

Sandbox Physics · 2026-11-05

天空上的细线不是一条已经量好的三维轨道。相同角位置可以对应不同距离；相同自行也可以对应不同横向速度。拟合之前，先问每个数据列究竟保留了什么。

## 开始前需要什么

接前两章的力与轨道。需要向量投影和最小二乘直觉；本章再引入稳健损失、留出样本与条件模型。

## 三个投影，不能直接拼成六维

星流坐标用$\phi_1$沿带延伸，$\phi_2$横跨主带。Valluri固定产品有七百一十五个沿流位置，分别配横向角位置与两个自行分量。三份原始经度数组逐项相同，可以配成这三个投影量。

但这不等于每一点都有距离、径向速度、误差和协方差。另一张二百六十一行DESI表是不同的光谱区域样本；没有可用的共同身份依据，就不能按行号把径向速度接到七百一十五点上。

对应阅读：Valluri et al. (2025), GD-1 Stellar Stream and Cocoon in the DESI Early Data Release, arXiv:2407.06336v2 · Gala v1.12.0: fixed official GD1Koposov10 coordinate source · Sandbox Physics standalone stellar-stream scientific reader v1

## 自行是角速度，先把球面的尺子摆正

沿经度自行采用带余弦的定义。纬度越高，同样经度变化对应的实际天空弧长越短。若漏掉这个因子，投影速度会系统性错。

$$
\mu_{\phi_1*}=\dot\phi_1\cos\phi_2,\qquad v_{\phi_1}=4.74047\,d\mu_{\phi_1*}
$$

距离用千秒差距，自行用毫角秒每年，沿经度切向的速度分量就用千米每秒；跨带分量同理。要得到总横向速度，还要合成这两个正交分量。

对应阅读：Valluri et al. (2025), GD-1 Stellar Stream and Cocoon in the DESI Early Data Release, arXiv:2407.06336v2 · Gala v1.12.0: fixed official GD1Koposov10 coordinate source

## 例题：同样两毫角秒，可能不是同样速度

在纬度六十度处，经度每年变化两毫角秒，对应的带余弦自行只有一毫角秒每年。若距离为八千秒差距，沿经度切向速度分量约三十七点九千米每秒。若把两毫角秒直接代入，会得到约七十五点八，足足大一倍。另一方面，距离翻倍而角自行不变，横向速度也翻倍；这就留下了距离与物理速度的退化，需要独立距离信息才能分开。

对应阅读：Gala v1.12.0: fixed official GD1Koposov10 coordinate source · Sandbox Physics standalone stellar-stream scientific reader v1

## 太阳在动，校正也有距离约定

太阳自身的运动投影到天球上，会给恒星叠加一项视运动，称为太阳反射运动。原七百一十五点的产品已经使用原文距离轨迹作过太阳反射校正。比较模型时，必须按同一约定投影，不能把校正再做一次，也不能悄悄换成每次优化出的模型距离。

本教程采用官方固定版本GD-1旋转矩阵，并保留其发表的小数精度；不拿观测点重新拟合一个更好看的旋转。正反变换的微小舍入，与原DESI表中大得多的坐标不一致分列。两种来源的差异分别保留，下一项该核实哪段源定义也更清楚。

$$
\mathrm{DM}_{\rm ref}=18.82+\left(\frac{\phi_{1,\rm deg}+50}{64}\right)^2-4.45,\qquad d_{\rm ref}=10^{(\mathrm{DM}_{\rm ref}-10)/5}\,\mathrm{kpc}
$$

原文参考距离的固定关系；沿流经度代入度数值，距离模数是把距离写成对数的星等记法，再由它转成千秒差距。锚点经度负三十五度处约为七点六七三千秒差距，仍与优化的模型距离分开。

对应阅读：Valluri et al. (2025), GD-1 Stellar Stream and Cocoon in the DESI Early Data Release, arXiv:2407.06336v2 · Gala v1.12.0: fixed official GD1Koposov10 coordinate source · Sandbox Physics standalone stellar-stream scientific reader v1

## 先用已知真值问程序能不能找回来

我们先自造一份保存的投影测量，隐藏真值，让拟合器只消费保存结果。从附近初值开始，固定宿主中的轨道能重新预测留出的角位置与自行，这检验的是有限条件下计算链是否接通。

再换真实产品。用沿流经度分块留出，避免训练点与验证点只是紧邻的重复信息；所有点保留，不靠删掉难看的数据改善分数。一个三次多项式也在相同训练块上拟合，作为描述性对照。

真实比较中，训练选出的轨道在留出数据上的工作尺度损失约零点六零八，三次曲线约零点四四五；其中横跨星流自行的残差尤其明显。数值积分很准确，并没有让一个过于简单的轨道模型自动成为好的星流模型。

对应阅读：Sandbox Physics standalone stellar-stream scientific reader v1 · Valluri et al. (2025), GD-1 Stellar Stream and Cocoon in the DESI Early Data Release, arXiv:2407.06336v2

## 工作尺度不是观测误差

对每个残差，除以一个事先声明的单位尺度，再使用Huber损失：小残差近似平方，大残差近似线性。角位置尺度为零点二度，自行各为零点五毫角秒每年。这是在决定比较各项的相对权重，不是在补造源产品缺失的误差。

$$
\ell(r)=\begin{cases}r^2/2,&|r|\le2,\\2(|r|-1),&|r|>2,\end{cases}\qquad\mathcal L=\frac1{N_{\rm train}}\sum_i\sum_j\ell\!\left(\frac{y_{ij}^{\rm model}-y_{ij}^{\rm source}}{s_j}\right)
$$

样本指标对应不同经度点，分量指标对应横向角位置与两个自行；每个分量先除以自己的工作尺度，再对训练点取平均。没有完整误差与选择模型，这项损失不能当作校准卡方，优化器曲率也不能制造可信后验。

对应阅读：Sandbox Physics standalone stellar-stream scientific reader v1

## 练习与解释性答案

1. 能把真实数据七百一十五行的位置和二百六十一行的径向速度按行号配上吗？

   展开解释

   不能。它们不是同一列表，行号也不是共同恒星身份。必须有可靠交叉匹配和观测约定，才能合并测量；当前方法明确不作这项拼接。

2. 合成数据拟合通过，真实数据也会通过吗？

   展开解释

   不会。合成输入来自同一个条件模型，适合暴露代码和投影错误。真实星流有轨道分布、释放历史与更复杂宿主，可能超出该模型；留出结果和简单描述性对照能让这种不足显现。

## 动手检验预测

### [认清每幅图的坐标](https://sandboxphysics.com/zh/labs/stellar-stream-encounter/)

1. 在实验中转动显示相机，确认保存数据没有随相机变成另一份物理记录。
2. 比较同一颗星的位置与速度；不要把二维投影间距直接叫真实距离。
3. 进入下一篇离线教程，先重算合成恢复，再读真实留出结果与三次曲线对照。

[上一篇：从一次引力掠过，到很久以后的缺口](https://sandboxphysics.com/zh/stories/stellar-streams/from-a-flyby-force-to-a-stream-gap/) [下一篇：亲手重算GD-1投影轨道比较](https://sandboxphysics.com/zh/stories/stellar-streams/recompute-gd1-projected-orbit-fit/)

## 来源与计算范围

1. [Valluri et al. (2025), GD-1 Stellar Stream and Cocoon in the DESI Early Data Release, arXiv:2407.06336v2](https://arxiv.org/abs/2407.06336v2)

   固定2025年1月30日v2，完整二十五页已读，原页7、12、14、21实际查看。对应第3—5节、图2及7—12、表3与附录A；与本教程条件轨道比较分开。DOI 10.3847/1538-4357/ada690；不再发布原文、原图或观测行。

2. [Gala v1.12.0: fixed official GD1Koposov10 coordinate source](https://github.com/adrn/gala/blob/bebac7d728478c5122a568e12175ef894d1c1516/src/gala/coordinates/gd1.py)

   MIT源代码固定commit bebac7d728478c5122a568e12175ef894d1c1516。保留字面舍入矩阵与转置反向，规范化方向及自行；可选教程获取完整源并核SHA，不安装Gala。

3. [Sandbox Physics standalone stellar-stream scientific reader v1](https://sandboxphysics.com/stories/stellar-streams/materials/stellar-streams-reader-science-v1.zip)

   自有Python新算二十五个有限点、独立高阶参照、半步、解析极限与保存计数。默认零网络，可选原件galpy练习保留拟合不足、不收敛、覆盖失败。ZIP不含交互引擎、完成轨道、原件或真实观测派生图。
