Place a naked-eye star HYG gives no distance for by its Hipparcos parallax, where that is 2.5 times its error
c64eea0 left out 41 naked-eye stars "because neither survey gives them a distance". Hipparcos does:
HYG's distances are 1 000 over van Leeuwen's 2007 parallaxes, which the ETL already downloads for
their errors, but HYG writes its 100 000 pc placeholder for every parallax under 1 mas whatever its
error, while keeping far less certain ones above it (Alnilam at 1.65 ± 0.45 mas is drawn). 30 of
the 41 have a positive parallax in the new reduction and 7 have one at least 2.5 times its error:
HD 74180 at 0.67 ± 0.16 mas (4.2 σ), Mu Cep at 0.55 ± 0.20.
hipparcosDistancePc (star-merge.ts, with HYG's placeholder constant moved beside it) keeps HYG's
distance and, where it gives the placeholder, takes 1 000 over the parallax when that is 2.5 times
its error; fetchHipparcosParallaxErrors now returns the parallax with its error. From cache the ETL
keeps 73 563 HYG rows against 73 556 and publishes 455 571 stars; the seven are Alp Cam (1.4 to 3.0
kpc), Psi-1 Aur, HD 74180 (1.2 to 2.0 kpc), HD 86352, HD 96918, Mu Cep (1.3 to 2.9 kpc) and HD
217476, each printed as the range its parallax's error gives. The other 34 stay out: no parallax,
or one within 2.5 times its error of zero. Parallax distances printed as ranges go from 1 109 to
1 116; the validators hold.
Controls, each failing its named test: placeholder rows given no distance, and any parallax 1.25
times its error placing a star (1 of 807 each).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -295,25 +295,25 @@ export async function fetchGaiaDistancesByHip(): Promise<Map<number, { distanceP
|
||||
const MIN_HIPPARCOS_ERRORS = 110_000;
|
||||
|
||||
/**
|
||||
* The relative error of every Hipparcos parallax, keyed by HIP number: to choose between it and
|
||||
* Every Hipparcos parallax with its relative error, keyed by HIP number: to choose between it and
|
||||
* Gaia's, and for the stars that keep their Hipparcos distance — Rigel and Deneb, which Gaia has
|
||||
* no usable parallax for, and the few hundred bright stars where Gaia's is the less precise.
|
||||
*
|
||||
* From van Leeuwen's 2007 reduction, which the ESA archive hosts beside Gaia and HYG's distances
|
||||
* are the inverse of. HYG publishes the distance and not its error.
|
||||
*/
|
||||
export async function fetchHipparcosParallaxErrors(): Promise<Map<number, number>> {
|
||||
export async function fetchHipparcosParallaxErrors(): Promise<Map<number, { parallaxMas: number; relativeError: number }>> {
|
||||
const url = `${GAIA_TAP_URL}?REQUEST=doQuery&LANG=ADQL&FORMAT=csv&QUERY=${encodeURIComponent('select top 200000 hip, plx, e_plx from public.hipparcos_newreduction order by hip')}`;
|
||||
console.log('Fetching Hipparcos parallax errors (new reduction)...');
|
||||
const rows = parseCsvObjects(await fetchTextCached(url, `hipparcos-errors-${createHash('sha1').update(url).digest('hex').slice(0, 8)}.csv`));
|
||||
|
||||
const errors = new Map<number, number>();
|
||||
const errors = new Map<number, { parallaxMas: number; relativeError: number }>();
|
||||
for (const row of rows) {
|
||||
const hip = parseOptionalNumber(row['hip']);
|
||||
const parallaxMas = parseOptionalNumber(row['plx']);
|
||||
const errorMas = parseOptionalNumber(row['e_plx']);
|
||||
if (hip !== undefined && parallaxMas !== undefined && parallaxMas > 0 && errorMas !== undefined) {
|
||||
errors.set(hip, errorMas / parallaxMas);
|
||||
errors.set(hip, { parallaxMas, relativeError: errorMas / parallaxMas });
|
||||
}
|
||||
}
|
||||
if (errors.size < MIN_HIPPARCOS_ERRORS) {
|
||||
|
||||
Reference in New Issue
Block a user