skyscapes.disk.exovista
=======================

.. py:module:: skyscapes.disk.exovista

.. autoapi-nested-parse::

   ExovistaDisk: port of legacy Disk -- wavelength-interpolated contrast cube.



Classes
-------

.. autoapisummary::

   skyscapes.disk.exovista.ExovistaDisk


Module Contents
---------------

.. py:class:: ExovistaDisk(pixel_scale_arcsec, wavelengths_nm, contrast_cube)

   Bases: :py:obj:`skyscapes.disk.base.AbstractDisk`


   Wavelength-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)``.


   .. py:attribute:: pixel_scale_arcsec
      :type:  float


   .. py:attribute:: wavelengths_nm
      :type:  jaxtyping.Array


   .. py:attribute:: contrast_cube
      :type:  jaxtyping.Array


   .. py:attribute:: _contrast_interp
      :type:  interpax.CubicSpline


   .. py:method:: surface_brightness(wavelength_nm, time_jd, incl_deg, pa_deg)

      Contrast map at the requested wavelength, shape ``(ny, nx)``.

      ``time_jd``, ``incl_deg``, and ``pa_deg`` are part of the
      AbstractDisk interface but ignored here: the cube is a single
      time snapshot with disk geometry already baked in by the loader.



   .. py:method:: spatial_extent()

      Return ``(width_arcsec, height_arcsec)``.



   .. py:method:: __repr__()

      One-line summary of cube shape, pixel scale, and wavelength grid.



