skyscapes.disk.composite
========================

.. py:module:: skyscapes.disk.composite

.. autoapi-nested-parse::

   CompositeDisk: sum of multiple ``AbstractDisk`` components.

   Mirrors how ``skyscapes.scene.System`` composes multiple ``Planet`` objects
   via a tuple: a ``CompositeDisk`` holds a tuple of disk components and
   renders their summed ``surface_brightness`` on a shared grid.

   All components must share the same ``spatial_extent()`` so the per-component
   rendered arrays can be added directly without resampling. Mismatched
   geometries are rejected at construction.



Classes
-------

.. autoapisummary::

   skyscapes.disk.composite.CompositeDisk


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

.. py:class:: CompositeDisk

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


   Sum of multiple disk components rendered on a shared grid.

   Attributes:
       components: Tuple of ``AbstractDisk`` instances. At least one
           component is required. All components must report the same
           ``spatial_extent()`` so their rendered ``(ny, nx)`` arrays
           sum elementwise.


   .. py:attribute:: components
      :type:  tuple[skyscapes.disk.base.AbstractDisk, Ellipsis]


   .. py:method:: __check_init__()

      Reject empty composites and mismatched component extents.



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

      Return the per-pixel sum of all component contrast maps.



   .. py:method:: spatial_extent()

      Return the shared ``(width_arcsec, height_arcsec)``.



   .. py:method:: __repr__()

      Nested summary listing each component disk.



