Skip to main content
Sandbox Physics
Stellar streams, encounters and observed projections

Stellar streams · L3

Project a stellar stream before fitting it

A narrow line on the sky is not an already measured three-dimensional orbit. The same direction can hide different distances, and the same proper motion can correspond to different transverse speeds. Before fitting anything, ask what each data column actually preserves.

Three projections do not make six-dimensional data

Stream longitude ϕ1\phi_1 follows the band; latitude ϕ2\phi_2 crosses it. The fixed Valluri products provide 715 longitudes paired with latitude and two proper-motion components. Their three native longitude arrays are exactly equal, so those three projected quantities can be paired.

They do not provide a distance, radial velocity, uncertainty and covariance for each point. A separate 261-row DESI table contains spectroscopic region targets. Row numbers are not common stellar identities: appending its velocities to the 715 points would manufacture data.

Reading: 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

Proper motion needs the spherical ruler

Longitude proper motion includes a latitude cosine. Near higher latitude, the same change in longitude covers less angular distance on the sky. Dropping the cosine systematically changes a projected velocity.

μϕ1∗=ϕ˙1cos⁡ϕ2,vϕ1=4.74047 dμϕ1∗\mu_{\phi_1*}=\dot\phi_1\cos\phi_2,\qquad v_{\phi_1}=4.74047\,d\mu_{\phi_1*}
With distance in kiloparsecs and proper motion in milliarcseconds per year, the along-longitude velocity component is in kilometres per second. The cross-stream component follows similarly; total transverse speed combines both orthogonal components.

Reading: 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

Worked example: the hidden factor of two

At latitude sixty degrees, longitude changing by two milliarcseconds per year corresponds to a cosine-weighted motion of one milliarcsecond per year. At eight kiloparsecs, the along-longitude component is approximately 37.9 kilometres per second.

Inserting two directly gives about 75.8, twice the correct value. A separate ambiguity remains: doubling distance at fixed angular proper motion also doubles transverse speed. Independent distance information is needed to resolve that velocity ambiguity.

Reading: Gala v1.12.0: fixed official GD1Koposov10 coordinate source · Sandbox Physics standalone stellar-stream scientific reader v1

The Sun moves, and the correction has a distance convention

The observer’s Galactic motion contributes apparent solar-reflex motion. The author’s 715-point product has already been corrected using the distance relation in the paper. Model predictions must use that same convention: do not correct twice or silently substitute the distance currently preferred by an optimizer.

The reader uses a fixed official GD-1 matrix at its published precision, not a rotation fitted to make these data agree. Its small forward–transpose rounding effect is reported separately from a much larger native Table-4 coordinate inconsistency. Keeping the two sources of disagreement separate identifies which upstream convention still needs checking.

DMref=18.82+(ϕ1,deg+5064)2−4.45,dref=10(DMref−10)/5 kpc\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}
The source’s fixed reference-distance relation uses longitude as a numerical value in degrees. The logarithmic distance modulus converts back to kiloparsecs; at minus thirty-five degrees the reference is about 7.673 kiloparsecs. It remains separate from the fitted model distance.

Reading: 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

Ask a known-truth question before a real-data question

First generate and save synthetic projected measurements. The fitter consumes those measurements, without a truth argument, and starts nearby. Predicting the held-out positions and motions checks whether the conditional computation is connected correctly.

For the real exercise, hold out longitude blocks rather than scattered near-duplicates. Keep all original points. Fit a descriptive cubic to the same training blocks so that an orbit has a simple predictive comparison.

The training-selected real orbit has a held-out working-scale loss of about 0.608, versus 0.445 for the cubic. Its cross-stream proper-motion residual is particularly conspicuous. Accurate integration has not made this simple orbit a good model of a distributed stream.

Reading: 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

Working scales are not measurement errors

Divide each residual by a declared unit scale before applying a Huber loss: quadratic for small residuals and linear for larger ones. Here the scales are 0.2 degrees and 0.5 milliarcseconds per year for each proper-motion component. They specify relative weighting; they do not fill in missing observational uncertainties.

ℓ(r)={r2/2,∣r∣≤2,2(∣r∣−1),∣r∣>2,L=1Ntrain∑i∑jℓ ⁣(yijmodel−yijsourcesj)\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)
The sample index runs over longitudes and the component index over latitude and the two proper motions. Divide each by its own working scale, then average over training samples. Without a complete error and selection model, this is not calibrated chi-square, and optimizer curvature is not a validated physical posterior.

Reading: Sandbox Physics standalone stellar-stream scientific reader v1

Exercises and explanations

  1. Can the 261 radial-velocity rows be attached to the 715 projected positions by row number?

    Read the explanation

    No. They are different lists and row numbers are not common object identifiers. A trustworthy cross-match and consistent observational conventions would be required; this method does not perform that join.

  2. Does synthetic recovery guarantee a good real-data fit?

    Read the explanation

    No. Synthetic measurements follow the chosen conditional model and are useful for exposing implementation errors. Real stars can have release histories, orbital distributions and host effects absent from that model. Held-out prediction and a descriptive baseline expose that limitation.

Try the prediction

Check what each view measures

  1. Rotate the display camera and verify that it does not change the saved physical record.
  2. Compare a star’s position and velocity rather than treating projected separation as physical distance.
  3. In the next tutorial, run synthetic recovery before interpreting the real residuals and cubic comparison.

Sources and calculation scope

  1. Valluri et al. (2025), GD-1 Stellar Stream and Cocoon in the DESI Early Data Release, arXiv:2407.06336v2

    Fixed 30 January 2025 v2, 25 pages fully read; original pages 7/12/14/21 actually viewed. Sections 3–5, Figures 2/7–12, Table 3 and Appendix A are distinguished from our conditional orbit exercise. DOI 10.3847/1538-4357/ada690; no original paper, figure or observed row redistributed.

  2. Gala v1.12.0: fixed official GD1Koposov10 coordinate source

    MIT source, fixed commit bebac7d728478c5122a568e12175ef894d1c1516. Literal rounded R and transpose reverse, normalized direction/proper-motion definitions; optional reader fetches and hashes the exact source without installing Gala.

  3. Sandbox Physics standalone stellar-stream scientific reader v1

    Own Python integrates 25 finite cases anew, checks an independent high-order reference, half steps, analytic limits and saved-record counts. Default zero network. Optional exact-source galpy exercise retains poor fit/nonconvergence/no-coverage failures. No App/Engine, completed tracks, originals or observed-derived figures in the ZIP.

FeedbackSomething broken, confusing, or missing on this page?Tell us
What kind of feedback?

Sent with this page’s address, its Lab ID, the site language and your device type. Please leave out personal details. Feedback is kept for up to 12 months.Privacy policy