From 98082a0460de6ec619d13de7c235d2d1a1245299 Mon Sep 17 00:00:00 2001 From: Senrokai Date: Wed, 30 Sep 2026 21:28:29 +0200 Subject: [PATCH] Keep Gaia's colour on a star HYG describes without one combine took the described entry's colour whole, null included. So a HYG row with no B-V, merged into its Gaia source, lost the BP-RP Gaia measured for it: HD 45951, HD 45291 and HD 124953, three naked-eye giants Gaia has at BP-RP 1.25, 1.19 and 0.37, showed no colour on their card. HD 45951's point had its colour at 280159d, as a bare Gaia designation. combine now takes the colour, in its own system, from the other entry where the description has none. The fallback the review proposed, `described.colorIndex ?? other.colorIndex`, reads the same empty row here, since the Gaia entry is inserted first and so is `kept`, and the HYG row is both `other` and `described`; it is one of the mutants below. The fold into a source whose HYG star SIMBAD puts elsewhere keeps the Gliese row's own colour or none, not that other star's. Published catalogue: 931 stars gain a Gaia BP-RP, all HYG-described entries on a Gaia source with a V magnitude. 298 of them had neither type nor colour and are now drawn with a temperature and a radius. 621 dwarfs read their temperature off that colour rather than their type's row, 290 of them by more than 500 K. The colour is the one every other dwarf on the map is read from, and it agrees with the brightness where the type does not: HIP 1546, "K:" at V 12.46 and 33.5 pc (M_V 9.8), was 5 270 K and 0.126 R, and is 3 732 K and 0.42 R at BP-RP 2.01. The three giants keep the temperature and radius their type gives. Star count and every ETL figure unchanged. Guarded mutants: no fallback, and the review's fallback to `other`, each fail only "keeps Gaia's colour where the description has none"; the misplaced fold falling back to the other star's colour fails only "describes the entry by the Gliese row where SIMBAD names the HYG star already there as another source" (1 of 837 each). Co-Authored-By: Claude Opus 5.5 (1M context) --- src/app/shared/astro/star-merge.spec.ts | 11 +++++++++++ src/app/shared/astro/star-merge.ts | 10 +++++++++- src/assets/data/stars-meta.bin | Bin 7743823 -> 7743823 bytes 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/app/shared/astro/star-merge.spec.ts b/src/app/shared/astro/star-merge.spec.ts index 3858bcd..16ac695 100644 --- a/src/app/shared/astro/star-merge.spec.ts +++ b/src/app/shared/astro/star-merge.spec.ts @@ -192,6 +192,15 @@ describe('mergeStarCatalogues', () => { expect(merged).toMatchObject({ magnitude: 11.01, magnitudeBand: 'V', colorIndex: 1.807, colorSystem: 'B-V', distanceError: 0.000065, distanceFromGaia: true }); }); + it("keeps Gaia's colour where the description has none", () => { + // HD 45951: HYG gives V 6.20 and K2III but no B−V; Gaia DR3 3369454521490604416 has BP−RP 1.248. + const hyg = at(119622, 97.79164, 16.93863, 112, { name: 'HD 45951', magnitude: 6.2, magnitudeBand: 'V', spectralType: 'K2III', colorIndex: null }); + const gaia = at(1000004369, 97.79164, 16.93863, 112, { name: 'Gaia DR3 3369454521490604416', magnitude: 5.898, magnitudeBand: 'G', colorIndex: 1.248, colorSystem: 'BP-RP', source: 'gaia' }); + const [merged] = mergeStarCatalogues([{ ...HIPPARCOS, stars: [hyg] }, { ...GAIA, stars: [gaia] }]).stars; + + expect(merged).toMatchObject({ name: 'HD 45951', magnitude: 6.2, magnitudeBand: 'V', colorIndex: 1.248, colorSystem: 'BP-RP' }); + }); + it("takes a Hipparcos distance more precise than the Gaia entry it folds into, along Gaia's direction", () => { // Schedar: 71.0 pc ±3.5 % in Gaia, which saturates on it, and 70.0 pc ±1.0 % in Hipparcos. const hyg = at(3179, 10.1268, 56.5373, 70.0, { name: 'Schedar', magnitude: 2.24, distanceError: 0.0105, distanceFromGaia: false }); @@ -366,6 +375,8 @@ describe('foldByIdentity', () => { expect(stars).toHaveLength(1); expect(stars[0]).toMatchObject({ id: 119589, name: 'Gl 905.2B', spectralType: 'DA4', magnitude: 12.9, colorIndex: 0.15, source: 'gaia' }); expect(Math.hypot(stars[0].x, stars[0].y, stars[0].z)).toBeCloseTo(18.6, 9); + // Nor the M5's B−V where the row has no colour of its own (Gl 225.2C, beside HD 40887's). + expect(foldByIdentity([...merged, { ...gl905b, colorIndex: null }], identities).stars[0].colorIndex).toBeNull(); }); it('leaves a star with a Hipparcos error alone, and one of another brightness than the HYG star already there', () => { diff --git a/src/app/shared/astro/star-merge.ts b/src/app/shared/astro/star-merge.ts index bcbe699..2c0ee01 100644 --- a/src/app/shared/astro/star-merge.ts +++ b/src/app/shared/astro/star-merge.ts @@ -262,14 +262,21 @@ export function isSameStar(kept: StarRecord, entry: StarRecord): boolean { * unless the other entry's distance is the more precise, as the Hipparcos one of a bright star * `placementDistancePc` keeps at it is, which then sets the distance along Gaia's direction. * `described` overrides that choice where an identity settles it (see {@link foldByIdentity}). + * + * A colour the description lacks comes from the other entry, in its own system: HYG has none for + * HD 45951, HD 45291 and HD 124953, three naked-eye giants Gaia measures at BP−RP 1.25, 1.19 and + * 0.37, and each card showed no colour at all. */ function combine(kept: StarRecord, other: StarRecord, described = isDesignation(kept) && !isDesignation(other) ? other : kept): StarRecord { const otherBetter = other.distanceError !== undefined && kept.distanceError !== undefined && other.distanceError < kept.distanceError; const placed = otherBetter ? other : kept; const scale = otherBetter ? distanceOf(other) / distanceOf(kept) : 1; const gaiaDesignation = kept.gaiaDesignation ?? other.gaiaDesignation; + const coloured = described.colorIndex !== null ? described : described === kept ? other : kept; return { ...described, + colorIndex: coloured.colorIndex, + colorSystem: coloured.colorSystem, x: kept.x * scale, y: kept.y * scale, z: kept.z * scale, @@ -339,9 +346,10 @@ export function foldByIdentity(stars: readonly StarRecord[], gaiaDesignationById } const describer = gaiaDesignationById.get(result[target].id); const { magnitude, magnitudeBand, colorIndex, colorSystem } = result[target]; + // Where the Gliese row is the star, its colour too, or none: not the one of the star SIMBAD puts elsewhere. result[target] = describer !== undefined && describer !== designation - ? combine(result[target], star, star) + ? { ...combine(result[target], star, star), colorIndex: star.colorIndex, colorSystem: star.colorSystem } : { ...combine(result[target], star), magnitude, magnitudeBand, colorIndex, colorSystem }; // One star each: a second Gliese row naming the same source is another star SIMBAD has not split. byDesignation.delete(designation!); diff --git a/src/assets/data/stars-meta.bin b/src/assets/data/stars-meta.bin index a8bea5acc45ad9260134855e656032bd94704c46..5e04ad614e5998cb0d2ca20cc4eb5671c182f37d 100644 GIT binary patch delta 21636 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 LTP|Dp{J#GOs5#M5 delta 20164 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