skyscapes.io.exovista#
ExoVista FITS loader – builds a skyscapes.scene.System directly.
Mirrors the legacy skyscapes._legacy.loaders.from_exovista semantics
for Star and Disk, but rebuilds each planet as a 1-planet
KeplerianOrbit + GridAtmosphere pair stored in the
System.planets tuple. No ghost padding – variadic tuples make that
unnecessary.
Functions#
|
Load the FITS star extension into a Star. |
|
Load one planet and return |
|
Load the ExoVista disk extension into an ExovistaDisk. |
Earth-filter logic operating on an already-open HDUList. |
|
|
Identify Earth-like planets in an ExoVista FITS file. |
|
Load an ExoVista FITS file into a |
Module Contents#
- skyscapes.io.exovista._load_star(hdul, fits_ext=4)[source]#
Load the FITS star extension into a Star.
- Parameters:
hdul (astropy.io.fits.HDUList)
fits_ext (int)
- Return type:
- skyscapes.io.exovista._load_single_planet(hdul, idx, star, wavelengths_nm, trig_solver)[source]#
Load one planet and return
(Planet, t0_d).ExoVista stores the planet
(r, v)state vectors already in the on-sky (“bary-sky”) frame – the same frame the disk cube is rendered in – so they are converted to Keplerian elements directly, with NO additional sky rotation. Rotating them again (as an earlier version did) double-applies the system inclination and PA and tilts every planetary system off its disk.The contrast grid is indexed by phase angle beta = arccos(r_z / |r|), computed at load time with the same
trig_solverthe runtimeSystemuses; this stays self-consistent with rendering because the grid is keyed by the sameorbit.propagatebeta used at render time.- Parameters:
hdul (astropy.io.fits.HDUList)
idx (int)
star (skyscapes.scene.Star)
wavelengths_nm (jax.numpy.ndarray)
- Return type:
- skyscapes.io.exovista._load_disk(hdul, fits_ext)[source]#
Load the ExoVista disk extension into an ExovistaDisk.
The contrast cube is already rendered in the on-sky frame by ExoVista; the system midplane angles (I, PA) live on
System.midplane_inc_deg/System.midplane_pa_deg(populated byfrom_exovistafrom the same FITS star header), not on the disk itself.- Parameters:
hdul (astropy.io.fits.HDUList)
fits_ext (int)
- Return type:
- skyscapes.io.exovista._earth_like_planet_indices_from_hdul(hdul)[source]#
Earth-filter logic operating on an already-open HDUList.
- skyscapes.io.exovista.get_earth_like_planet_indices(fits_file)[source]#
Identify Earth-like planets in an ExoVista FITS file.
- Classification criteria:
Scaled semi-major axis: 0.95 <= a / sqrt(L_star) < 1.67 AU
Planet radius: 0.8 / sqrt(a_scaled) <= R < 1.4 R_earth
- skyscapes.io.exovista.from_exovista(fits_file, planet_indices=None, only_earths=False, load_disk=True)[source]#
Load an ExoVista FITS file into a
scene.System.The system’s midplane inclination and position angle (FITS star header keys
IandPA) are applied at load time as a frame rotation of each planet’s state vector before its Keplerian elements are computed. The same angles are stored asSystem.midplane_inc_degandSystem.midplane_pa_degfor downstream diagnostic use.- Args:
fits_file: Path to ExoVista FITS file. planet_indices: Planet indices to load (0-based).
None= all. only_earths: If True and planet_indices is None, auto-filter Earths. load_disk: If False, skip the disk extension entirely and setSystem.disktoNone. Useful when the downstream pipeline cannot render a disk (e.g. a coronagraph without a PSF datacube).- Returns:
scene.Systemwith star, planets (tuple), disk, and midplane metadata.
- Parameters:
fits_file (str)
planet_indices (collections.abc.Sequence[int] | None)
only_earths (bool)
load_disk (bool)
- Return type: