skyscapes.scene#
Scene hierarchy: AbstractStar + Planet + System + Scene wiring.
Submodules#
Classes#
Field-of-view container: planetary system + named background sources. |
|
Composed planet: intrinsic params + orbit dynamics + physical-model physics. |
|
Abstract stellar source. |
|
Flat-spectrum star -- constant flux independent of wavelength or time. |
|
Time- and wavelength-dependent star backed by an interpax 2D spline. |
|
Astrophysical scene: star + tuple of planets + optional disk. |
Package Contents#
- class skyscapes.scene.Scene[source]#
Bases:
equinox.ModuleField-of-view container: planetary system + named background sources.
- Attributes:
system: The planetary system (star + planets + disk). zodi: Optional zodiacal-light background (any
skyscapes.backgroundzodi variant).
- system: skyscapes.scene.system.System#
- zodi: skyscapes.background.Zodi | None = None#
- property star#
Convenience accessor for the host star.
- property planets#
Convenience accessor for the planet tuple.
- property disk#
Convenience accessor for the system’s disk (may be
None).
- class skyscapes.scene.Planet[source]#
Bases:
equinox.ModuleComposed planet: intrinsic params + orbit dynamics + physical-model physics.
All stellar-context-dependent methods take a
starkeyword argument rather than holding a reference internally. This keepsSystemas the single source of truth for the host star.- Attributes:
Rp_Rearth: Planet radius [Earth radii], shape
(K,). Mp_Mearth: Planet mass [Earth masses], shape(K,). orbit: Orbital dynamics (trajectory parameterization). physical_model: Spectral physics (reflectivity / emission).
- Rp_Rearth: jaxtyping.Array#
- Mp_Mearth: jaxtyping.Array#
- orbit: orbix.system.orbit.AbstractOrbit#
- physical_model: skyscapes.physical_model.AbstractPhysicalModel#
- mean_anomaly(t_jd, *, star)[source]#
Mean anomaly mod 360 [deg], shape
(K, T).t_jdmust be shape(T,)– no rank polymorphism. Callers that hold a scalar should wrap it injnp.asarray([t])at the call site.- Parameters:
t_jd (jaxtyping.Array)
- Return type:
jaxtyping.Array
- propagate(trig_solver, t_jd, *, star)[source]#
Delegate to
orbit.propagate; returns(r_AU, phase_rad, dist_AU).- Parameters:
t_jd (jaxtyping.Array)
- position_arcsec(trig_solver, t_jd, *, star)[source]#
On-sky position, shape
(2, K, T)– (dRA, dDec) in arcsec.- Parameters:
t_jd (jaxtyping.Array)
- Return type:
jaxtyping.Array
- alpha_dMag(trig_solver, t_jd, *, star, wavelength_nm=600.0)[source]#
Projected separation [arcsec] and delta-mag, each
(K, T).For
LambertianPhysicalModel(grey), the chosenwavelength_nmis irrelevant and the output matchesorbix.Planets.alpha_dMagby construction. ForGridPhysicalModel/ future wavelength- dependent models,dMagis evaluated atwavelength_nm; pick a value within the model’s spectral grid.
- contrast(trig_solver, wavelength_nm, t_jd, *, star)[source]#
Planet-to-star contrast at (wavelength, time), shape
(K, T).- Parameters:
wavelength_nm (jaxtyping.Array)
t_jd (jaxtyping.Array)
- Return type:
jaxtyping.Array
- class skyscapes.scene.AbstractStar[source]#
Bases:
equinox.ModuleAbstract stellar source.
- Attributes:
Ms_kg: Stellar mass in kilograms. dist_pc: Distance to the star in parsecs.
- class skyscapes.scene.FlatStar[source]#
Bases:
AbstractStarFlat-spectrum star – constant flux independent of wavelength or time.
- class skyscapes.scene.Star(*, Ms_kg, dist_pc, wavelengths_nm, times_jd, flux_density_jy, ra_deg=0.0, dec_deg=0.0, diameter_arcsec=0.0, luminosity_lsun=1.0)[source]#
Bases:
AbstractStarTime- and wavelength-dependent star backed by an interpax 2D spline.
- Parameters:
- _wavelengths_nm: jaxtyping.Array#
- _times_jd: jaxtyping.Array#
- _flux_density_phot: jaxtyping.Array#
- _flux_interp: interpax.Interpolator2D#
- class skyscapes.scene.System[source]#
Bases:
equinox.ModuleAstrophysical scene: star + tuple of planets + optional disk.
- Attributes:
star: Host star (
AbstractStar). planets: Variable-length tuple ofPlanet. trig_solver: Scalar Kepler-trig solver (static; seeorbix.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 thebarycentric -> 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_exovistafrom the FITS star header. After load, frame rotation has already been baked into eachPlanet’s orbital elements.- midplane_pa_deg: System midplane position angle [deg]. Same
semantics as
midplane_inc_deg.
- planets: tuple[skyscapes.scene.planet.Planet, Ellipsis]#
- trig_solver: collections.abc.Callable#
- disk: skyscapes.disk.AbstractDisk | None = None#
- 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