Source code for pydox.calibration.methods.climatology

from typing import Any, Self
from collections import OrderedDict

from pydox.utils.casting import to_list
from pydox._config.utils import format_value_txt
from pydox.commodities import ConfigsDict, ParameterSet, ParamsClimatology, Data
from pydox.calibration.method import Method


[docs] class MethodClimatology(Method): """Quick and dirty implementation for dev purposes Warnings -------- This is a dummy implementation """ rcgroup = "climatology"
[docs] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # Check if we have everything we need in the configuration to run the method: ...
def _repr_params(self) -> list[str]: """Return a description of parameters for the 'climatology' method""" summary = [] for param in ["min_pressure", "max_pressure"]: value = self._mparam(param) summary += [f" {param}: {format_value_txt(value)}"] [summary.append(line) for line in self._repr_dataset()] return summary def _flatten_configs(self) -> ConfigsDict: """Define the entire configuration space to explore with the 'climatology' method""" configs: ConfigsDict = OrderedDict() icfg: int = 0 for fit_drift in to_list(self._sparam("fit_drift")): for min_pressure in to_list(self._mparam("min_pressure")): for max_pressure in to_list(self._mparam("max_pressure")): for ds in to_list(self._mparam("dataset")): p: ParameterSet = ParamsClimatology( fit_drift=fit_drift, cycles=self._sparam("cycles"), initial_gain=Data(self._sparam("initial_guess.gain"), 1.0), initial_drift=Data( self._sparam("initial_guess.drift"), 0.0 ), min_pressure=min_pressure, max_pressure=max_pressure, dataset=ds, src=self._mparam(f"data.{ds}.src"), dummy=icfg + 1000, # For dev. to track config number down to coefs results ) configs[icfg] = p icfg += 1 return configs
[docs] def fit(self, data: Any) -> Self: raise NotImplementedError
def load_input_data( self, *args, **kwargs, ): raise NotImplementedError