skyscapes.scene.system#

scene.System – the top-level PyTree container.

Holds a star, a heterogeneous tuple of planets, an optional disk, and the Kepler-solver callable (static so JIT doesn’t re-trace). The tuple makes the system variadic: a 1-planet system and an 8-planet system have compatible shapes as long as per-planet arrays broadcast correctly.

Classes#

System

Astrophysical scene: star + tuple of planets + optional disk.

Module Contents#

class skyscapes.scene.system.System[source]#

Bases: equinox.Module

Astrophysical scene: star + tuple of planets + optional disk.

Attributes:

star: Host star (AbstractStar). planets: Variable-length tuple of Planet. trig_solver: Scalar Kepler-trig solver (static; see

orbix.kepler.shortcuts.grid.get_grid_solver). Required – callers must provide a built solver, not None.

disk: Optional extended-source disk (AbstractDisk | None). midplane_inc_deg: System midplane inclination [deg] in the

barycentric -> sky frame. Default 0.0 means “midplane = sky” and is intentionally indistinguishable from a real face-on system at this inclination; this ambiguity is acceptable because the field is diagnostic-only after load (no runtime hot path consults it). Populated by io.from_exovista from the FITS star header. After load, frame rotation has already been baked into each Planet’s orbital elements.

midplane_pa_deg: System midplane position angle [deg]. Same

semantics as midplane_inc_deg.

star: skyscapes.scene.star.AbstractStar#
planets: tuple[skyscapes.scene.planet.Planet, Ellipsis]#
trig_solver: collections.abc.Callable#
disk: skyscapes.disk.AbstractDisk | None = None#
midplane_inc_deg: float = 0.0#
midplane_pa_deg: float = 0.0#
property n_planets: int#

Total number of planets across all composed Planet modules.

Return type:

int

positions(t_jd)[source]#

Concatenated on-sky positions, shape (2, K_total, T).

Parameters:

t_jd (jaxtyping.Array)

Return type:

jaxtyping.Array

contrasts(wavelength_nm, t_jd)[source]#

Per-planet contrast, shape (K_total, T).

Parameters:
  • wavelength_nm (jaxtyping.Array)

  • t_jd (jaxtyping.Array)

Return type:

jaxtyping.Array

planet_flux_densities(wavelength_nm, t_jd)[source]#

Per-planet flux density [ph/s/m^2/nm], shape (K_total, T).

Parameters:
  • wavelength_nm (jaxtyping.Array)

  • t_jd (jaxtyping.Array)

Return type:

jaxtyping.Array

alpha_dMag(t_jd)[source]#

Per-planet projected separation + dMag, each shape (K_total, T).

Parameters:

t_jd (jaxtyping.Array)

Return type:

tuple[jaxtyping.Array, jaxtyping.Array]

__repr__()[source]#

Tree-shaped summary: star + planets + disk + midplane geometry.

Return type:

str