diff options
Diffstat (limited to 'lib/parameters.py')
-rw-r--r-- | lib/parameters.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/parameters.py b/lib/parameters.py index 1cad7a5..aedb6cd 100644 --- a/lib/parameters.py +++ b/lib/parameters.py @@ -607,6 +607,17 @@ class ModelAttribute: } return ret + @staticmethod + def from_json(cls, name, attr, data): + param_names = data["paramNames"] + arg_count = data["argCount"] + + self = cls(name, attr, None, None, param_names, arg_count) + + self.model_function = df.ModelFunction.from_json(data["modelFunction"]) + + return self + def get_static(self, use_mean=False): if use_mean: return self.mean @@ -782,7 +793,9 @@ class ModelAttribute: for param_value, child in child_by_param_value.items(): child.set_data_from_paramfit(paramfit, prefix + (param_value,)) function_child[param_value] = child.model_function - self.model_function = df.SplitFunction(split_param_index, function_child) + self.model_function = df.SplitFunction( + self.median, split_param_index, function_child + ) def set_data_from_paramfit_this(self, paramfit, prefix): fit_result = paramfit.get_result((self.name, self.attr) + prefix) @@ -790,7 +803,11 @@ class ModelAttribute: if self.function_override is not None: function_str = self.function_override x = df.AnalyticFunction( - function_str, self.param_names, self.arg_count, fit_by_param=fit_result + self.median, + function_str, + self.param_names, + self.arg_count, + fit_by_param=fit_result, ) x.fit(self.by_param) if x.fit_success: @@ -801,6 +818,7 @@ class ModelAttribute: x = df.analytic.function_powerset( fit_result, self.param_names, self.arg_count ) + x.value = self.median x.fit(self.by_param) if x.fit_success: |