skyscapes.disk._los
===================

.. py:module:: skyscapes.disk._los

.. autoapi-nested-parse::

   Shared LOS-around-midplane integration kernel for parametric disks.

   Lifted out of ``GraterDisk.surface_brightness`` so multiple disk classes
   (GraterDisk, ExovistaParametricDisk, ...) can plug in their own density
   profiles and phase functions while sharing the geometric integration.



Attributes
----------

.. autoapisummary::

   skyscapes.disk._los.DensityFn
   skyscapes.disk._los.PhaseFn


Functions
---------

.. autoapisummary::

   skyscapes.disk._los.los_integrate_scattered


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

.. py:data:: DensityFn

.. py:data:: PhaseFn

.. py:function:: los_integrate_scattered(density_fn, phase_fn, *, incl_deg, pa_deg, rmin_AU, rmax_AU, zmax_AU, nx, ny, pixel_scale_arcsec, dist_pc, n_slices_los)

   Integrate scattered light along LOS around the disk midplane.

   Sky frame: ``+x`` right, ``+y`` toward N, observer along ``+z``.
   ``pa_deg`` is measured from N toward the disk's projected major
   axis (CCW). ``incl_deg`` is the angle between the disk normal and
   the observer's line of sight (0 = pole-on).

   Args:
       density_fn: ``(r_AU, z_AU, valid) -> rho``. The kernel ensures
           ``r_AU`` is finite everywhere (sqrt is masked) but the
           caller must substitute density-safe values at invalid
           points (e.g. avoid ``r=0`` for ``r^alpha`` profiles).
       phase_fn: ``cos_phi -> phase`` evaluated at every LOS sample.
       incl_deg: Disk inclination [deg].
       pa_deg: Disk position angle [deg] from N, CCW.
       rmin_AU: Inner truncation radius [AU].
       rmax_AU: Outer truncation radius [AU].
       zmax_AU: LOS half-extent in disk-frame z [AU]. Should comfortably
           exceed the disk's largest scale height (for flared disks,
           evaluate the scale-height formula at ``rmax_AU``).
       nx: Output image width [pixels] (static).
       ny: Output image height [pixels] (static).
       pixel_scale_arcsec: Pixel scale [arcsec/pixel] (static).
       dist_pc: System distance [pc] (static).
       n_slices_los: Number of LOS integration slices (static).

   Returns:
       LOS-integrated scattered-light map, shape ``(ny, nx)``.
       Caller multiplies by an albedo / normalization to get contrast.


