diff --git a/extreme_fit/model/abstract_model.py b/extreme_fit/model/abstract_model.py index 28e19653d23939caf41b5dd849e67c946752ff75..9aed76a7714e6d07122cd95b6f7c9dc7db1b50a5 100644 --- a/extreme_fit/model/abstract_model.py +++ b/extreme_fit/model/abstract_model.py @@ -1,19 +1,18 @@ class AbstractModel(object): def __init__(self, use_start_value=False, params_start_fit=None, params_sample=None): - self.default_params_start_fit = None - self.default_params_sample = None + self.default_params = None self.use_start_value = use_start_value self.user_params_start_fit = params_start_fit self.user_params_sample = params_sample @property def params_start_fit(self) -> dict: - return self.merge_params(default_params=self.default_params_start_fit, input_params=self.user_params_start_fit) + return self.merge_params(default_params=self.default_params, input_params=self.user_params_start_fit) @property def params_sample(self) -> dict: - return self.merge_params(default_params=self.default_params_sample, input_params=self.user_params_sample) + return self.merge_params(default_params=self.default_params, input_params=self.user_params_sample) @staticmethod def merge_params(default_params, input_params): diff --git a/extreme_fit/model/margin_model/linear_margin_model/linear_margin_model.py b/extreme_fit/model/margin_model/linear_margin_model/linear_margin_model.py index 68166e993ea5ad4eb655e583f5691afdd740968c..bce0d46a162fa075ed85d223ff4bf3febf2bf894 100644 --- a/extreme_fit/model/margin_model/linear_margin_model/linear_margin_model.py +++ b/extreme_fit/model/margin_model/linear_margin_model/linear_margin_model.py @@ -19,8 +19,7 @@ class LinearMarginModel(ParametricMarginModel): 'load_margin_functions needs to be implemented in child class' # Load default params (with a dictionary format to enable quick replacement) # IMPORTANT: Using a dictionary format enable using the default/user params methodology - self.default_params_sample = self.default_param_name_and_dim_to_coef - self.default_params_start_fit = self.default_param_name_and_dim_to_coef + self.default_params = self.default_param_name_and_dim_to_coef # Load sample coef coef_sample = self.param_name_to_linear_coef(param_name_and_dim_to_coef=self.params_sample) diff --git a/extreme_fit/model/max_stable_model/abstract_max_stable_model.py b/extreme_fit/model/max_stable_model/abstract_max_stable_model.py index 3d6a4f61412a6cd5f6c2e234cec1880a723f16f0..d1942525fc617270ca395e20f33ef2b36b9f06ad 100644 --- a/extreme_fit/model/max_stable_model/abstract_max_stable_model.py +++ b/extreme_fit/model/max_stable_model/abstract_max_stable_model.py @@ -110,7 +110,7 @@ class AbstractMaxStableModelWithCovarianceFunction(AbstractMaxStableModel): super().__init__(use_start_value, params_start_fit, params_sample) assert covariance_function is not None self.covariance_function = covariance_function - self.default_params_sample = { + self.default_params = { 'range': 3, 'smooth': 0.5, 'nugget': 0.5 diff --git a/extreme_fit/model/max_stable_model/max_stable_models.py b/extreme_fit/model/max_stable_model/max_stable_models.py index 410f9d3f24e50aa59dedd2383d758586758fea38..e0a973cc47c624e26c8498d3d517f8109dd801eb 100644 --- a/extreme_fit/model/max_stable_model/max_stable_models.py +++ b/extreme_fit/model/max_stable_model/max_stable_models.py @@ -9,13 +9,12 @@ class Smith(AbstractMaxStableModel): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.cov_mod = 'gauss' - self.default_params_start_fit = { + self.default_params = { 'var': 1, 'cov11': 1, 'cov12': 0, 'cov22': 1 } - self.default_params_sample = self.default_params_start_fit.copy() def remove_unused_parameters(self, start_dict, fitmaxstab_with_one_dimensional_data): if fitmaxstab_with_one_dimensional_data: @@ -30,23 +29,17 @@ class BrownResnick(AbstractMaxStableModel): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.cov_mod = 'brown' - self.default_params_start_fit = { + self.default_params = { 'range': 3, 'smooth': 0.5, } - self.default_params_sample = { - 'range': 3, - 'smooth': 0.5, - } - class Schlather(AbstractMaxStableModelWithCovarianceFunction): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.cov_mod = self.covariance_function.name - self.default_params_sample.update({}) - self.default_params_start_fit = self.default_params_sample.copy() + self.default_params.update({}) class Geometric(AbstractMaxStableModelWithCovarianceFunction): @@ -54,8 +47,7 @@ class Geometric(AbstractMaxStableModelWithCovarianceFunction): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.cov_mod = 'g' + self.covariance_function.name - self.default_params_sample.update({'sigma2': 0.5}) - self.default_params_start_fit = self.default_params_sample.copy() + self.default_params.update({'sigma2': 0.5}) class ExtremalT(AbstractMaxStableModelWithCovarianceFunction): @@ -63,8 +55,7 @@ class ExtremalT(AbstractMaxStableModelWithCovarianceFunction): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.cov_mod = 't' + self.covariance_function.name - self.default_params_sample.update({'DoF': 2}) - self.default_params_start_fit = self.default_params_sample.copy() + self.default_params.update({'DoF': 2}) class ISchlather(AbstractMaxStableModelWithCovarianceFunction): @@ -72,5 +63,4 @@ class ISchlather(AbstractMaxStableModelWithCovarianceFunction): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.cov_mod = 'i' + self.covariance_function.name - self.default_params_sample.update({'alpha': 0.5}) - self.default_params_start_fit = self.default_params_sample.copy() + self.default_params.update({'alpha': 0.5}) diff --git a/test/test_unitary_r_packages/test_spatial_extreme/test_fitmaxstab/test_fitmaxstab_with_margin.py b/test/test_unitary_r_packages/test_spatial_extreme/test_fitmaxstab/test_fitmaxstab_with_margin.py index a435d09f09863cb2a33e349546d3a4eb9bfcf299..5bde5dfa36f2fc8b662a32049a6c503d892d7e60 100644 --- a/test/test_unitary_r_packages/test_spatial_extreme/test_fitmaxstab/test_fitmaxstab_with_margin.py +++ b/test/test_unitary_r_packages/test_spatial_extreme/test_fitmaxstab/test_fitmaxstab_with_margin.py @@ -87,7 +87,7 @@ class TestMaxStableFitWithLinearMargin(TestUnitaryAbstract): # @property # def python_output(self): # dataset = TestRMaxStabWithMarginConstant.python_code() -# max_stable_model = Schlather(covariance_function=CovarianceFunction.whitmat, use_start_value=False) +# max_stable_model = Schlather(covariance_function=CovarianceFunction.whitmat) # margin_model = LinearMarginModelExample(dataset.coordinates) # full_estimator = FullEstimatorInASingleStepWithSmoothMargin(dataset, margin_model, # max_stable_model)