Source code for astrophot.param.module

import numpy as np
from math import prod
from caskade import (
    Module as CModule,
    ActiveStateError,
    ParamConfigurationError,
    FillParamsArrayError,
)
from ..backend_obj import backend


[docs] class Module(CModule):
[docs] def build_params_array_identities(self): identities = [] for param in self.dynamic_params: numel = max(1, np.prod(param.batch_shape + param.shape)) for i in range(numel): identities.append(f"{id(param)}_{i}") return identities
[docs] def build_params_array_uncertainty(self): uncertainties = [] for param in self.dynamic_params: if param.uncertainty is None: uncertainties.append(backend.zeros_like(param.value.flatten())) else: uncertainties.append(param.uncertainty.flatten()) return backend.concatenate(tuple(uncertainties), dim=-1)
[docs] def build_params_array_names(self): names = [] for param in self.dynamic_params: numel = max(1, np.prod(param.batch_shape + param.shape)) if numel == 1: names.append(param.name) else: for i in range(numel): names.append(f"{param.name}_{i}") return names
[docs] def build_params_array_units(self): units = [] for param in self.dynamic_params: numel = max(1, np.prod(param.batch_shape + param.shape)) for _ in range(numel): units.append(param.units) return units