Warm a host's planets by the luminosity the archive publishes for it, not one derived beside it
The ETL has carried each host's st_lum since 494fb56 and nothing read it: the card, the system
view's planet temperatures and the body pages all derived a luminosity from the star's magnitude
and colour. For 757 of the 4 440 hosts the archive gives one for, the two differ by more than
1.5 times, 667 of them stars the ETL placed from the archive's own V and B−V. Proxima read
8.9×10⁻⁴ L☉ beside the archive's radius and temperature, which imply 1.27×10⁻³; the archive gives
1.51×10⁻³, as Ribas et al. 2017 do.
starSurfaceOf now returns the luminosity with the radius and temperature, taken from the first of
the host's planets that gives one, as st_rad and st_teff already are, and derived only otherwise.
The system view lights its planets with it, the body page uses the same host rule, and the card
marks it derived only when it is. The derived radius still comes from the derived luminosity, so
its "from colour and brightness" stays true; only 3 hosts have st_lum and no st_rad.
Measured on the shipped catalogue against the parent commit: 544 of 3 639 planets with an
equilibrium temperature move by more than 10 %, and 98 change class. Kepler-186 f goes from a 292 K
rocky world to a 175 K icy one, LHS 1140 b from 152 K icy to 206 K temperate, LTT 1445 A b from
298 K rocky to 402 K scorched, Proxima Cen b from 200 to 228 K and d from 259 to 296 K.
starReadouts now takes the surface alone, which carries the luminosity. Controls, each failing its
named test: the archive's luminosity ignored (2 of 778 failed), called derived, the body page
warmed by the derived one, the body page reading the planet's own row only, and the card marking
a published luminosity derived (1 of 778 each).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -57,7 +57,7 @@ import {
|
||||
type ScaleBar,
|
||||
} from '../../shared/format/scale-bar';
|
||||
import { BodyDetailViewModel } from '../body-detail/body-detail.model';
|
||||
import { buildBodyViewModel, luminosityOf, starSurfaceOf, StarSurface } from '../body-detail/body-view-model';
|
||||
import { buildBodyViewModel, starSurfaceOf, StarSurface } from '../body-detail/body-view-model';
|
||||
import {
|
||||
DEFAULT_HUD_DISPLAY,
|
||||
HudDisplay,
|
||||
@@ -1784,7 +1784,7 @@ export class GalaxySystemSceneComponent implements AfterViewInit, OnDestroy {
|
||||
label: 'Bodies',
|
||||
value: moonCount > 0 ? `${planetCount} + ${moonCount} moons` : `${planetCount}`,
|
||||
},
|
||||
...starReadouts(star, luminosityOf(star), this.currentStarSurface),
|
||||
...starReadouts(star, this.currentStarSurface),
|
||||
]);
|
||||
this.hudNote.set(this.time.atNow() ? 'Orbits propagated from published elements to the current date.' : 'Orbits propagated from published elements to the date on the clock.');
|
||||
this.hudRange.set(
|
||||
@@ -2220,19 +2220,18 @@ export class GalaxySystemSceneComponent implements AfterViewInit, OnDestroy {
|
||||
// The star's own position is the line of sight to it, which is the plane the archive
|
||||
// measures exoplanet inclinations against. The Sun sits at the origin and has no
|
||||
// exoplanets, so it has no meaningful direction and the renderer falls back.
|
||||
// The star's luminosity, derived from its own catalogued magnitude and distance, is what
|
||||
// decides how hot each body in the system is — and so what each of them looks like.
|
||||
const hostLuminosity = luminosityOf(star);
|
||||
// Every star at its own radius: the archive's for a planet host, otherwise derived from its
|
||||
// colour and brightness — or the Sun's, for the 3 077 stars with no measured magnitude or with
|
||||
// neither a colour nor a type, which the card then gives no radius. Its temperature is the
|
||||
// colour of its disc and of the light it casts.
|
||||
// colour of its disc and of the light it casts, and its luminosity — the archive's, or else
|
||||
// derived from its magnitude and distance — decides how hot each body in the system is, and
|
||||
// so what each of them looks like.
|
||||
this.currentStarSurface = starSurfaceOf(star, systemExoplanets);
|
||||
this.systemRenderer = new SystemOrbitsRenderer(
|
||||
systemBodies,
|
||||
systemExoplanets,
|
||||
{ x: star.x, y: star.y, z: star.z },
|
||||
hostLuminosity,
|
||||
this.currentStarSurface.luminositySolar,
|
||||
this.currentStarSurface.temperatureK,
|
||||
);
|
||||
this.systemGroup.add(this.systemRenderer.object);
|
||||
|
||||
Reference in New Issue
Block a user