petitRADTRANS.sbi.preprocessing#

Preprocessing helpers and normalization metadata for SBI observation blocks.

Classes#

BlockNormalizationStats

Normalization statistics for one observation block family.

TaskPreprocessingMetadata

Serializable preprocessing metadata for an SBI task family.

Functions#

compute_block_normalization_stats(→ dict[str, ...)

Compute per-block normalization statistics from training observations.

fit_task_preprocessing(→ TaskPreprocessingMetadata)

Fit preprocessing statistics from training observation blocks.

normalize_observation_block(...)

Normalize one observation block with fitted preprocessing statistics.

normalize_observation_blocks(...)

Normalize a list of observation blocks.

normalize_spectral_block_matrix(→ dict[str, numpy.ndarray])

Vectorized spectral normalization for a (batch, n_wl) value matrix.

Module Contents#

class petitRADTRANS.sbi.preprocessing.BlockNormalizationStats#

Normalization statistics for one observation block family.

name: str#
modality: str#
value_mean: float#
value_std: float#
uncertainty_mean: float | None = None#
uncertainty_std: float | None = None#
coordinate_mean: float | None = None#
coordinate_std: float | None = None#
n_samples: int = 0#
n_values: int = 0#
value_median: float | None = None#
value_iqr: float | None = None#
uncertainty_median: float | None = None#
uncertainty_iqr: float | None = None#
value_median_per_wl: list[float] | None = None#
value_iqr_per_wl: list[float] | None = None#
uncertainty_median_per_wl: list[float] | None = None#
uncertainty_iqr_per_wl: list[float] | None = None#
log_median_flux: float | None = None#
to_payload() dict[str, Any]#
class petitRADTRANS.sbi.preprocessing.TaskPreprocessingMetadata#

Serializable preprocessing metadata for an SBI task family.

version: str#
blocks: Mapping[str, BlockNormalizationStats]#
metadata: Mapping[str, Any]#
to_payload() dict[str, Any]#
classmethod from_payload(payload: Mapping[str, Any]) TaskPreprocessingMetadata#
petitRADTRANS.sbi.preprocessing.compute_block_normalization_stats(blocks: list[petitRADTRANS.sbi.observation.ObservationBlock]) dict[str, BlockNormalizationStats]#

Compute per-block normalization statistics from training observations. Calculates the robust per-wavelength median/IQR, global scale, and log_median_flux from the simulated training set.

petitRADTRANS.sbi.preprocessing.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.

petitRADTRANS.sbi.preprocessing.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.

petitRADTRANS.sbi.preprocessing.normalize_observation_blocks(blocks: list[petitRADTRANS.sbi.observation.ObservationBlock], preprocessing_metadata: TaskPreprocessingMetadata) list[petitRADTRANS.sbi.observation.ObservationBlock]#

Normalize a list of observation blocks.

petitRADTRANS.sbi.preprocessing.normalize_spectral_block_matrix(values: Any, uncertainties: Any, mask: Any, stats: BlockNormalizationStats) dict[str, numpy.ndarray]#

Vectorized spectral normalization for a (batch, n_wl) value matrix.

Mirrors the spectral branch of normalize_observation_block() (same per-wavelength robust arcsinh z-transform — falling back to the global-scale arcsinh when per-wavelength statistics are absent — uncertainty rescaling, per-sample relative shape channel, and log-amplitude scalar) but operates on a dense batch at once. Used by the training-time noise-resampling path, which redraws observational noise per batch and therefore must re-normalize on the fly; a batch normalized here is numerically identical to normalizing each sample individually.

Parameters#

values:

(batch, n_wl) raw (physical-units) spectral values.

uncertainties:

(batch, n_wl) raw uncertainties, or None.

mask:

(batch, n_wl) boolean invalid-point mask (True = masked), or None.

stats:

Fitted BlockNormalizationStats for this block family.

Returns#

dict[str, np.ndarray]

values / uncertainties / relative_values of shape (batch, n_wl) and log_spectrum_scale / global_spectrum_scale of shape (batch,) — the fields consumed by the pre-stacked training representation.