Give every planet with a distance a star, from the archive where the catalogue has none
After matching, 4 237 planets still had no star: their hosts are too faint for either Gaia query (fainter than G 12 past 50 pc) or too far (past 250 pc), Kepler-186 at 177.6 pc among them. fetchExoplanets now adds one star per such host from the archive's own figures, 3 277 of them, whenever the archive gives a position and a distance: - position carried back from J2016, where the archive publishes it (741 of the 746 matched hosts moving over 100 mas/yr sit nearer their star carried back, a median 0.11" against 3.47" as published), and placed at sy_dist; - magnitude in V (2 999 hosts), else Gaia G (13), the band the catalogue's Gaia stars are already in; 265 have neither, 128 KMT, 95 OGLE and 32 MOA microlensing hosts at a median 6.2 kpc among them, and take the ETL's faint stand-in of 15; - colour as B-V from the archive's B and V, else from st_teff through a new temperatureToColorIndex (Ballesteros 2012, inverted; the Sun's 5 772 K gives 0.65), else left to st_spectype; - ids from 1 070 000 000, past Gaia's two ranges and under the 2^30 validateStars enforces; source "exoplanet-archive". Hosts past 250 pc are included: 399 of the 3 277 are within 250 pc, 1 962 between 250 pc and 1 kpc, 916 beyond. The drawn budget still chooses what is drawn (70 000 of 455 608). Planets with a star: 2 090 -> 6 327 of 6 354. The other 27 have no distance in either table (Luhman 16 A, mu2 Sco, PSR B1620-26 among them). Systems in the Solar Neighbourhood readout: 1 450 -> 4 736. validateExoplanets now refuses a catalogue where fewer than 99.5 % of planets have a host (measured 99.58 %); dropping the added stars fails it at 2 090, and dropping the composite fill at 6 227. No added star sits within an arcsecond of a catalogue star (validateMerge's twins stay at 23); 5 of the 399 within 250 pc have one within a minute of arc, VHS J125601.92-125723.9 (archive 12.7 pc) 5.8" from a Gaia entry at 21.2 pc the likeliest duplicate. In the app, searching TRAPPIST-1 or Kepler-186 and picking the star enters a system with its seven and five planets drawn. gzip -9: stars.bin 5 030 741 -> 5 067 864 B, stars-meta.bin 2 784 614 -> 2 804 064, stars-index.json 4 003 584 -> 4 015 882, exoplanets.json 342 467 -> 446 532 (host parameters, both commits). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+13
-1
@@ -155,6 +155,14 @@ function validateBodies(bodies: BodyRecord[]): void {
|
||||
assertCondition(planetCount === 8, `Expected 8 planets, found ${planetCount}.`);
|
||||
}
|
||||
|
||||
/**
|
||||
* The share of planets that must have a star on the map: 6 327 of 6 354 did when the ETL began
|
||||
* adding the hosts the catalogue lacks from the archive's own figures, up from 2 071. The other
|
||||
* 27 have no distance in either archive table, so nothing can place them; the floor leaves room
|
||||
* for a few more of those, not for the matching or the additions to stop working.
|
||||
*/
|
||||
const MIN_HOSTED_SHARE = 0.995;
|
||||
|
||||
function validateExoplanets(exoplanets: ExoplanetRecord[], stars: StarRecord[]): void {
|
||||
assertCondition(exoplanets.length > 0, 'No exoplanets were produced.');
|
||||
const starsById = new Map(stars.map((star) => [star.id, star]));
|
||||
@@ -189,6 +197,10 @@ function validateExoplanets(exoplanets: ExoplanetRecord[], stars: StarRecord[]):
|
||||
}
|
||||
|
||||
console.log(` ${crossReferenced}/${exoplanets.length} exoplanets have a host star on the map.`);
|
||||
assertCondition(
|
||||
crossReferenced >= exoplanets.length * MIN_HOSTED_SHARE,
|
||||
`Only ${crossReferenced} of ${exoplanets.length} exoplanets have a host star (at least ${MIN_HOSTED_SHARE * 100} % expected) — hosts are no longer being matched or added.`
|
||||
);
|
||||
|
||||
// How many can be propagated at their real rate rather than as if the host were the Sun.
|
||||
const withPeriod = exoplanets.filter((exoplanet) => exoplanet.periodDays !== undefined).length;
|
||||
@@ -266,7 +278,7 @@ async function build(): Promise<void> {
|
||||
console.log();
|
||||
const bodies = await fetchSolarSystem();
|
||||
console.log();
|
||||
// Names the Gaia designations that host planets, so it is this list, not the one above, that is published.
|
||||
// Adds the hosts the catalogue lacks, so it is this list, not the one above, that is published.
|
||||
const { exoplanets, stars } = await fetchExoplanets(catalogueStars);
|
||||
console.log();
|
||||
const deepSky = await fetchDeepSky();
|
||||
|
||||
Reference in New Issue
Block a user