skyscapes.disk#
Disk hierarchy: extended-source surface brightness maps.
Submodules#
Classes#
Extended-source surface brightness map. |
|
Sum of multiple disk components rendered on a shared grid. |
|
Wavelength-interpolated 3D contrast cube loaded from ExoVista FITS. |
|
ExoVista-style disk component (faithful per-component reproduction). |
|
Augereau 1999 scattered-light disk. |
Package Contents#
- class skyscapes.disk.AbstractDisk[source]#
Bases:
equinox.ModuleExtended-source surface brightness map.
Subclasses return contrast (flux ratio relative to the host star) per pixel. The concrete
Systemmultiplies bystar.spec_flux_densityto turn that into ph/s/m^2/nm per pixel.incl_deg/pa_degare supplied at render time rather than stored on the disk so the System’s midplane orientation drives every disk component consistently. Disks whose geometry is pre-baked into their representation (e.g.ExovistaDisk’s contrast cube) may ignore the arguments; parametric disks (GraterDisk,ExovistaParametricDisk) consume them.
- class skyscapes.disk.CompositeDisk[source]#
Bases:
skyscapes.disk.base.AbstractDiskSum of multiple disk components rendered on a shared grid.
- Attributes:
- components: Tuple of
AbstractDiskinstances. At least one component is required. All components must report the same
spatial_extent()so their rendered(ny, nx)arrays sum elementwise.
- components: Tuple of
- components: tuple[skyscapes.disk.base.AbstractDisk, Ellipsis]#
- surface_brightness(wavelength_nm, time_jd, incl_deg, pa_deg)[source]#
Return the per-pixel sum of all component contrast maps.
- Parameters:
wavelength_nm (jaxtyping.Array)
time_jd (jaxtyping.Array)
incl_deg (jaxtyping.Array)
pa_deg (jaxtyping.Array)
- Return type:
jaxtyping.Array
- class skyscapes.disk.ExovistaDisk(pixel_scale_arcsec, wavelengths_nm, contrast_cube)[source]#
Bases:
skyscapes.disk.base.AbstractDiskWavelength-interpolated 3D contrast cube loaded from ExoVista FITS.
- Attributes:
pixel_scale_arcsec: Pixel scale [arcsec/pixel]. wavelengths_nm: 1-D wavelength grid [nm], shape
(n_wl,). contrast_cube: Contrast cube, shape(n_wl, ny, nx).
- Parameters:
pixel_scale_arcsec (float)
wavelengths_nm (jaxtyping.Array)
contrast_cube (jaxtyping.Array)
- wavelengths_nm: jaxtyping.Array#
- contrast_cube: jaxtyping.Array#
- _contrast_interp: interpax.CubicSpline#
- surface_brightness(wavelength_nm, time_jd, incl_deg, pa_deg)[source]#
Contrast map at the requested wavelength, shape
(ny, nx).time_jd,incl_deg, andpa_degare part of the AbstractDisk interface but ignored here: the cube is a single time snapshot with disk geometry already baked in by the loader.- Parameters:
wavelength_nm (jaxtyping.Array)
time_jd (jaxtyping.Array)
incl_deg (jaxtyping.Array)
pa_deg (jaxtyping.Array)
- Return type:
jaxtyping.Array
- class skyscapes.disk.ExovistaParametricDisk[source]#
Bases:
skyscapes.disk.base.AbstractDiskExoVista-style disk component (faithful per-component reproduction).
- Attributes (PyTree leaves, fittable):
r0_AU: Ring center radius [AU]. dror: Ring fractional width
Delta r / r0(dimensionless). rinner_AU: Inner truncation radius [AU]; below this the densityis suppressed by
(r/rinner_AU)^3. Set to a value smaller thanrmin_AUto disable.hor: Opening angle (Gaussian vertical scale / radius). nzodis: Density normalization in zodi units. eta: PR-drag / collision-timescale ratio at
r0 - dr. g0, g1, g2: Three-component HG asymmetry parameters. w0, w1, w2: Three-component HG weights. Should sum to 1; notenforced.
rmin_AU: LOS-integration inner bound [AU]. rmax_AU: LOS-integration outer bound [AU]. wavelengths_nm: 1-D wavelength grid for
Ag_grid. Queriesoutside this range return NaN.
Ag_grid: Phenomenological albedo scaling vs wavelength.
- Static attributes:
nx, ny: Output image shape. pixel_scale_arcsec: Pixel scale [arcsec/pixel]. dist_pc: System distance [pc]. n_slices_los: Number of LOS integration slices. n_scale_heights: LOS half-extent in units of the scale height at
rmax_AU(default 6.0).
- r0_AU: jaxtyping.Array#
- dror: jaxtyping.Array#
- rinner_AU: jaxtyping.Array#
- hor: jaxtyping.Array#
- nzodis: jaxtyping.Array#
- eta: jaxtyping.Array#
- g0: jaxtyping.Array#
- g1: jaxtyping.Array#
- g2: jaxtyping.Array#
- w0: jaxtyping.Array#
- w1: jaxtyping.Array#
- w2: jaxtyping.Array#
- rmin_AU: jaxtyping.Array#
- rmax_AU: jaxtyping.Array#
- wavelengths_nm: jaxtyping.Array#
- Ag_grid: jaxtyping.Array#
- _zmax_AU()[source]#
LOS half-extent in disk-frame z, evaluated at the ring center.
For ExoVista-style disks the mass is concentrated near
r0_AU(ring + nearby halo + inward profile), and the radial profile decays asr^-1.5outside. Usingr0_AUrather than the LOS-boundrmax_AUgives an LOS extent matched to where the density actually lives, so per-slice dz scales with the scale height at the ring rather than with the (much larger) LOS-bound.- Return type:
jaxtyping.Array
- class skyscapes.disk.GraterDisk[source]#
Bases:
skyscapes.disk.base.AbstractDiskAugereau 1999 scattered-light disk.
- Attributes (PyTree leaves, fittable):
sma_AU: Reference radius [AU] (radial profile peak). alpha_in: Inner power-law slope (positive). alpha_out: Outer power-law slope (negative). ksi0_AU: Vertical scale height at
sma_AU[AU]. gamma: Vertical profile exponent (2 = Gaussian). beta: Flaring index (0 = none, 1 = linear). rmin_AU: Inner truncation radius [AU]. rmax_AU: Outer truncation radius [AU]. wavelengths_nm: 1-D wavelength grid forg_HG_grid/Ag_grid, shape(n_wave,)[nm]. Must be sorted.surface_brightnesscalls outside this range return NaN.g_HG_grid: Henyey-Greenstein asymmetry at each grid wavelength. Ag_grid: Albedo-like scaling at each grid wavelength.
- Static attributes (compilation-time constants):
nx, ny: Output image shape. pixel_scale_arcsec: Pixel scale [arcsec/pixel]. dist_pc: System distance [pc]. n_slices_los: Number of LOS integration slices. n_scale_heights: LOS half-extent in units of the local scale
height at
rmax_AU(default 6.0).
- sma_AU: jaxtyping.Array#
- alpha_in: jaxtyping.Array#
- alpha_out: jaxtyping.Array#
- ksi0_AU: jaxtyping.Array#
- gamma: jaxtyping.Array#
- beta: jaxtyping.Array#
- rmin_AU: jaxtyping.Array#
- rmax_AU: jaxtyping.Array#
- wavelengths_nm: jaxtyping.Array#
- g_HG_grid: jaxtyping.Array#
- Ag_grid: jaxtyping.Array#
- _zmax_AU()[source]#
LOS half-extent in disk-frame z, evaluated at
rmax_AU.For a flared disk, the scale height grows with radius, so the LOS depth that captures the vertical tails at the outer edge is larger than
n_scale_heights * ksi0_AUatsma_AU.- Return type:
jaxtyping.Array
- surface_brightness(wavelength_nm, time_jd, incl_deg, pa_deg)[source]#
Render the Augereau 1999 scattered-light disk on a sky-plane grid.
wavelength_nmselectsg_HGandAgvia cubic-spline interpolation overwavelengths_nm/g_HG_grid/Ag_grid. Queries outside the grid return NaN.time_jdis part of the AbstractDisk interface but ignored (static disk).- Parameters:
wavelength_nm (jaxtyping.Array)
time_jd (jaxtyping.Array)
incl_deg (jaxtyping.Array)
pa_deg (jaxtyping.Array)
- Return type:
jaxtyping.Array