coronalyze.interfaces.coronagraphoto
====================================

.. py:module:: coronalyze.interfaces.coronagraphoto

.. autoapi-nested-parse::

   Interface for coronagraphoto simulation outputs.

   Provides adapters to extract analysis-ready data from coronagraphoto
   Exposure and simulation outputs.



Functions
---------

.. autoapisummary::

   coronalyze.interfaces.coronagraphoto.extract_image
   coronalyze.interfaces.coronagraphoto.get_fwhm
   coronalyze.interfaces.coronagraphoto.analyze_observation


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

.. py:function:: extract_image(detector_readout)

   Convert detector readout to an analysis-ready image.

   Currently a pass-through, but can be extended to handle:
   - Multiple detector planes
   - Unit conversions
   - Bad pixel masking

   Args:
       detector_readout: Raw detector output from coronagraphoto simulation.

   Returns:
       2D image array suitable for analysis.


.. py:function:: get_fwhm(wavelength_nm, diameter_m = 6.0, pixel_scale_mas = 21.8)

   Calculate the FWHM of the PSF in pixels.

   Uses the diffraction limit: FWHM ≈ λ/D

   Args:
       wavelength_nm: Observation wavelength in nanometers.
       diameter_m: Primary aperture diameter in meters.
       pixel_scale_mas: Pixel scale in milliarcseconds per pixel.

   Returns:
       FWHM in pixels.


.. py:function:: analyze_observation(image, planet_pos, wavelength_nm, diameter_m = 6.0, pixel_scale_mas = 21.8, max_apertures = 200)

   High-level analysis: compute Mawet SNR for a planet detection.

   Convenience wrapper that combines FWHM calculation with SNR computation.

   Args:
       image: 2D detector image.
       planet_pos: Planet position (y, x) in pixels.
       wavelength_nm: Observation wavelength in nanometers.
       diameter_m: Primary aperture diameter in meters.
       pixel_scale_mas: Pixel scale in milliarcseconds per pixel.
       max_apertures: Maximum buffer size for static array shapes.

   Returns:
       Signal-to-noise ratio using Mawet 2014 methodology.


