Source code for PyHydroGeophysX.inversion.multi_method

"""Unified multi-method geophysical inversion interface."""


[docs]class GeophysicalInversion: """ Unified factory for multi-method geophysical inversion. Dispatches to the correct inversion engine. """ SUPPORTED = {"ert", "srt", "tdem", "fdem", "joint_ert_srt", "joint"} def __init__(self, method: str, **kwargs): method = method.lower().strip() if method == "ert": from .ert_inversion import ERTInversion self._engine = ERTInversion(**kwargs) elif method == "srt": from .srt_inversion import SRTInversion self._engine = SRTInversion(**kwargs) elif method == "tdem": from .tdem_inversion import TDEMInversion self._engine = TDEMInversion(**kwargs) elif method == "fdem": from .fdem_inversion import FDEMInversion self._engine = FDEMInversion(**kwargs) elif method in {"joint_ert_srt", "joint"}: from .joint_ert_srt import JointERTSRTInversion self._engine = JointERTSRTInversion(**kwargs) else: raise ValueError(f"Unknown method '{method}'. Supported: {self.SUPPORTED}") self.method = method
[docs] def run(self, **kwargs): return self._engine.run(**kwargs)
[docs] def setup(self, **kwargs): if hasattr(self._engine, "setup"): return self._engine.setup(**kwargs) return None
@property def engine(self): return self._engine