Rotation & the –inclination degeneracy (B8)¶
The other demos work on clean 3-D mocks. This one takes the first step toward observational realism: a rotating cluster is viewed at an inclination, and the recovered rotation depends on a line-of-sight projection. The honest result is the headline of the realism axis — the mean line-of-sight velocity measures the product , never the rotation rate alone.
The physics¶
Solid-body rotation about the cluster -axis gives . The demo’s projection helper project_los tilts the cluster by
the inclination (about the sky -axis) and reads the line-of-sight (observer
) velocity. The mean is linear in the sky -coordinate:
A face-on cluster () shows no rotation signature; an edge-on one () shows the full . So the observable rotation amplitude is the slope . The recovered slope (a clean linear fit of the binned ) is
quantity | truth | recovered |
|---|---|---|
1.732 (, ) | (pull -1.34) |
Inputs and assumptions¶
The fit recovers one observable, the slope — not the rotation rate itself (see the degeneracy). The physical and inclination are inputs held at truth.
Table 2:Model inputs
Input | Meaning and role | Status (fiducial) |
|---|---|---|
Slope of vs sky- — what the data actually constrain ( | recovered () | |
Solid-body rotation rate; the physical target, but only the product is measurable from . | known / fixed (2.0 /Myr); degenerate, not recovered | |
Inclination of the spin axis to the line of sight; degenerate with (needs external info, e.g. flattening). | known / fixed (); degenerate | |
, spin axis, masses, | Plummer half-mass radius (1 pc); spin axis tilted about sky- only (no position angle); equal-mass tracers; (STELLAR). | known / fixed |
projection model | The assumed linear forward model from a pure-inclination tilt about one axis. | known / fixed (model assumption) |
, bins, box, MLE, gates | stars; 16 sky- quantile bins (min 30/bin); slope box ; 3 Adam starts; gates self-consistency , recovery , degeneracy cond 108. | numerical choices |
The degeneracy (the headline)¶
Because depends only on the product, and are degenerate: , so the Fisher information is rank 1, with eigenvalues
— one machine-precision zero (condition number ). Every on the curve fits the line-of-sight velocities equally well (panel c). Recovering the rotation rate needs an independent inclination — e.g. from the projected flattening — which line-of-sight velocities alone cannot supply. This is the same rank-deficient inverse-problem structure as the birth-environment demo, now from projection rather than a many-to-one map.
Figure¶

Figure 1:Rotation & the – degeneracy (scripts/demo_rotation.py, ALL PASS).
(a) The projected sky map coloured by : the rotation dipole —
one side approaching (blue), one receding (red). (b) The rotation curve
with the recovered slope .
(c) The degeneracy: every on (purple) fits
equally well; the truth ★ lies on it.
Caveats¶
How to run¶
env -u VIRTUAL_ENV uv run --no-sync python scripts/demo_rotation.pyReferences¶
The Plummer model is Plummer (1911); the rotation overlays
(apply_solid_body_rotation, apply_differential_rotation) and their
non-equilibrium caveats are documented on the
rotation & anisotropy page.
- Plummer, H. C. (1911). On the problem of distribution in globular star clusters. Monthly Notices of the Royal Astronomical Society, 71, 460–470. 10.1093/mnras/71.5.460