Give an archive star's distance error as the error on the distance it is, not as a parallax range
formatDistance printed any error of a fifth or more as the range a parallax's error makes, d/(1+e) to d/(1−e). A star the ETL places from the Exoplanet Archive carries the mean of sy_disterr1 and 2 instead, which the archive defines as one-sided errors on sy_dist in parsecs, and many of those distances come from a lensing model with no parallax behind them. 129 of the 3 195 archive stars with an error were printed as ranges the archive does not give: KMT-2016-BLG-1836L as 5.8 to 9.2 kpc, where the archive publishes 7 100 +800 −2 400 pc, and AT2021ueyL as 664 pc to 2.4 kpc against 1 040 +740 −440. The card now tells formatDistance when the error is on the distance (source exoplanet-archive), and it keeps the ± at any size. Measured on the shipped catalogue: KMT-2016-BLG-1836L reads 7.1 ± 1.6 kpc, AT2021ueyL 1.0 ± 0.6 kpc, EPIC 201170410 134 ± 43 pc, KMT-2016-BLG-0212L 6.3 ± 1.3 kpc. The ETL keeps only the mean, so a lopsided interval such as KMT-2016-BLG-1836L's is shown symmetric; carrying both errors would take a second column in stars-meta.bin. The doc comments on formatDistance and on distanceError no longer say an archive distance is an inverted parallax. Controls, each failing its named test: the error on the distance read as a parallax's (2 of 790 failed), and the card not saying it is on the distance (1 of 790). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,13 @@ describe('starReadouts', () => {
|
||||
expect(value(starReadouts(GAIA_STAR), 'Distance')).toBe('117 ± 12 pc');
|
||||
});
|
||||
|
||||
it("gives an archive star's distance error as the archive does, on the distance, not as a parallax range", () => {
|
||||
// KMT-2016-BLG-1836L, 7 100 +800 −2 400 pc: a mean of 22.5 %.
|
||||
const lens = { ...GAIA_STAR, x: 7100, magnitudeBand: undefined, colorIndex: null, colorSystem: undefined, distanceError: 0.2254, distanceFromGaia: false, source: 'exoplanet-archive' };
|
||||
expect(value(starReadouts(lens), 'Distance')).toBe('7.1 ± 1.6 kpc');
|
||||
expect(value(starReadouts({ ...lens, source: 'hyg' }), 'Distance')).toBe('5.8 kpc to 9.2 kpc');
|
||||
});
|
||||
|
||||
it('names the catalogue a star comes from, and whose distance it has', () => {
|
||||
expect(value(starReadouts(GAIA_STAR), 'Source')).toBe('Gaia DR3');
|
||||
expect(value(starReadouts(HYG_STAR), 'Source')).toBe('HYG');
|
||||
|
||||
@@ -43,7 +43,7 @@ export function starReadouts(star: StarRecord, surface?: StarSurface): HudReadou
|
||||
return [
|
||||
// Suppressed for the Sun rather than printed as `0.00 pc`, which is arithmetically right
|
||||
// and reads as a bug: the distance from here to here is not a measurement.
|
||||
...(distancePc > 0 ? [{ label: 'Distance', value: formatDistance(distancePc, star.distanceError) }] : []),
|
||||
...(distancePc > 0 ? [{ label: 'Distance', value: formatDistance(distancePc, star.distanceError, star.source === 'exoplanet-archive') }] : []),
|
||||
// A G magnitude and a V one are not comparable: a red dwarf is up to three brighter in G.
|
||||
{ label: 'Magnitude', value: star.magnitudeBand ? `${star.magnitudeBand} ${star.magnitude.toFixed(2)}` : 'Not measured' },
|
||||
...(star.colorIndex !== null
|
||||
|
||||
Reference in New Issue
Block a user