petitRADTRANS.sbi.preprocessing
===============================

.. py:module:: petitRADTRANS.sbi.preprocessing

.. autoapi-nested-parse::

   Preprocessing helpers and normalization metadata for SBI observation blocks.



Classes
-------

.. autoapisummary::

   petitRADTRANS.sbi.preprocessing.BlockNormalizationStats
   petitRADTRANS.sbi.preprocessing.TaskPreprocessingMetadata


Functions
---------

.. autoapisummary::

   petitRADTRANS.sbi.preprocessing.compute_block_normalization_stats
   petitRADTRANS.sbi.preprocessing.fit_task_preprocessing
   petitRADTRANS.sbi.preprocessing.normalize_observation_block
   petitRADTRANS.sbi.preprocessing.normalize_observation_blocks


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

.. py:class:: BlockNormalizationStats

   Normalization statistics for one observation block family.


   .. py:attribute:: name
      :type:  str


   .. py:attribute:: modality
      :type:  str


   .. py:attribute:: value_mean
      :type:  float


   .. py:attribute:: value_std
      :type:  float


   .. py:attribute:: uncertainty_mean
      :type:  float | None
      :value: None



   .. py:attribute:: uncertainty_std
      :type:  float | None
      :value: None



   .. py:attribute:: coordinate_mean
      :type:  float | None
      :value: None



   .. py:attribute:: coordinate_std
      :type:  float | None
      :value: None



   .. py:attribute:: n_samples
      :type:  int
      :value: 0



   .. py:attribute:: n_values
      :type:  int
      :value: 0



   .. py:attribute:: value_median
      :type:  float | None
      :value: None



   .. py:attribute:: value_iqr
      :type:  float | None
      :value: None



   .. py:attribute:: uncertainty_median
      :type:  float | None
      :value: None



   .. py:attribute:: uncertainty_iqr
      :type:  float | None
      :value: None



   .. py:attribute:: value_median_per_wl
      :type:  list[float] | None
      :value: None



   .. py:attribute:: value_iqr_per_wl
      :type:  list[float] | None
      :value: None



   .. py:attribute:: uncertainty_median_per_wl
      :type:  list[float] | None
      :value: None



   .. py:attribute:: uncertainty_iqr_per_wl
      :type:  list[float] | None
      :value: None



   .. py:attribute:: log_median_flux
      :type:  float | None
      :value: None



   .. py:method:: to_payload() -> dict[str, Any]


.. py:class:: TaskPreprocessingMetadata

   Serializable preprocessing metadata for an SBI task family.


   .. py:attribute:: version
      :type:  str


   .. py:attribute:: blocks
      :type:  Mapping[str, BlockNormalizationStats]


   .. py:attribute:: metadata
      :type:  Mapping[str, Any]


   .. py:method:: to_payload() -> dict[str, Any]


   .. py:method:: from_payload(payload: Mapping[str, Any]) -> TaskPreprocessingMetadata
      :classmethod:



.. py:function:: compute_block_normalization_stats(blocks: list[petitRADTRANS.sbi.observation.ObservationBlock]) -> dict[str, BlockNormalizationStats]

   Compute per-block normalization statistics from training observations.


.. py:function:: fit_task_preprocessing(training_observations: list[list[petitRADTRANS.sbi.observation.ObservationBlock]], version: str = '0.5.0', metadata: Mapping[str, Any] | None = None) -> TaskPreprocessingMetadata

   Fit preprocessing statistics from training observation blocks.


.. py:function:: normalize_observation_block(block: petitRADTRANS.sbi.observation.ObservationBlock, preprocessing_metadata: TaskPreprocessingMetadata) -> petitRADTRANS.sbi.observation.ObservationBlock

   Normalize one observation block with fitted preprocessing statistics.

   Uses robust (median/IQR) normalization for values and uncertainties when
   available, falling back to mean/std for backward compatibility with older
   preprocessing metadata.  Coordinates always use mean/std normalization.


.. py:function:: normalize_observation_blocks(blocks: list[petitRADTRANS.sbi.observation.ObservationBlock], preprocessing_metadata: TaskPreprocessingMetadata) -> list[petitRADTRANS.sbi.observation.ObservationBlock]

   Normalize a list of observation blocks.


