Source code for opticks.imaging_model.rw_electronics

# opticks Models and analysis tools for optical system engineering
#
# Copyright (C) Egemen Imre
#
# Licensed under GNU GPL v3.0. See LICENSE.md for more info.

from pydantic import field_validator, model_validator

from opticks.imaging_model.imager_component import ImagerComponent
from opticks.utils.parser_helpers import PydanticQty


[docs] class RWElectronics(ImagerComponent): """ Class containing generic imager parameters. """ name: str pixel_encoding: PydanticQty data_write_overhead: float compression_on: bool | None = None compression_ratio: float | None = None
[docs] @field_validator("data_write_overhead") @classmethod def check_data_write_overhead(cls, v: float) -> float: if not 0.0 <= v <= 1.0: raise ValueError( f"data_write_overhead must be a fraction between 0.0 and 1.0, got {v}" ) return v
[docs] @model_validator(mode="after") def check_compression_ratio(self) -> "RWElectronics": if self.compression_on and self.compression_ratio is None: raise ValueError( "compression_ratio must be set when compression_on is True" ) return self
# ---------- begin modelling functions ----------