diff --git a/experiment/paper_past_snow_loads/paper_main_utils.py b/experiment/paper_past_snow_loads/paper_main_utils.py index f41fb8181f7abf03323e8b5ab7d6bd3f483153f3..17de30ad67be6bc8dc68bd128df747e0912ce2b1 100644 --- a/experiment/paper_past_snow_loads/paper_main_utils.py +++ b/experiment/paper_past_snow_loads/paper_main_utils.py @@ -9,7 +9,7 @@ from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear def load_altitude_to_visualizer(altitudes, massif_names, non_stationary_uncertainty, study_class, uncertainty_methods, study_visualizer_class=StudyVisualizerForNonStationaryTrends, save_to_file=True): - fit_method = TemporalMarginFitMethod.extremes_fevd_gmle + fit_method = TemporalMarginFitMethod.extremes_fevd_mle altitude_to_visualizer = OrderedDict() for altitude in altitudes: altitude_to_visualizer[altitude] = study_visualizer_class( diff --git a/experiment/paper_past_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py b/experiment/paper_past_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py index 5987b7a627c913707b585524afa548c71254d596..ac139f9fef9a855e4ac4c633129b47aa7e1dcfbf 100644 --- a/experiment/paper_past_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py +++ b/experiment/paper_past_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py @@ -94,12 +94,12 @@ def major_result(): if __name__ == '__main__': - major_result() - # intermediate_result(altitudes=[900, 1200], massif_names=['Vercors'], - # uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes, - # ConfidenceIntervalMethodFromExtremes.ci_mle][1:], - # non_stationary_uncertainty=[False, True][1:], - # multiprocessing=True) + # major_result() + intermediate_result(altitudes=[900, 1200], massif_names=['Vercors'], + uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes, + ConfidenceIntervalMethodFromExtremes.ci_mle][1:], + non_stationary_uncertainty=[False, True][1:], + multiprocessing=True) # intermediate_result(altitudes=[900, 1200], massif_names=['Maurienne'], # uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes, # ConfidenceIntervalMethodFromExtremes.ci_mle][1:], @@ -125,4 +125,4 @@ if __name__ == '__main__': # non_stationary_uncertainty=[False, True]) # intermediate_result(altitudes=[300, 600, 900], massif_names=None, # uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.ci_mle], - # non_stationary_uncertainty=[False, True]) + # non_stationary_uncertainty=[False, True]) \ No newline at end of file diff --git a/experiment/paper_past_snow_loads/study_visualizer_for_non_stationary_trends.py b/experiment/paper_past_snow_loads/study_visualizer_for_non_stationary_trends.py index f6bae071d5135512782a769af2e20a60c5fa29fe..4db5de7c26a993d31c5724268ffb8e0d617e2a8d 100644 --- a/experiment/paper_past_snow_loads/study_visualizer_for_non_stationary_trends.py +++ b/experiment/paper_past_snow_loads/study_visualizer_for_non_stationary_trends.py @@ -119,13 +119,10 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer): for massif_name, (x, y) in self.massif_name_to_non_null_years_and_maxima.items(): quantile_level = self.massif_name_to_eurocode_quantile_level_in_practice[massif_name] non_stationary_trend_test = [ - t(years=x, maxima=y, starting_year=starting_year, quantile_level=quantile_level) + t(years=x, maxima=y, starting_year=starting_year, quantile_level=quantile_level, + fit_method=self.fit_method) for t in self.non_stationary_trend_test] # type: List[AbstractGevTrendTest] - # Set appropriate fit method for all objects (#todo: set this parameter directly in the init function) - if self.fit_method is not None: - for t in non_stationary_trend_test: - t.fit_method = self.fit_method - # Extract + # Extract the model with minimized AIC trend_test_that_minimized_aic = sorted(non_stationary_trend_test, key=lambda t: t.aic)[0] massif_name_to_trend_test_that_minimized_aic[massif_name] = trend_test_that_minimized_aic return massif_name_to_trend_test_that_minimized_aic diff --git a/experiment/trend_analysis/univariate_test/extreme_trend_test/abstract_gev_trend_test.py b/experiment/trend_analysis/univariate_test/extreme_trend_test/abstract_gev_trend_test.py index 5411a6ed26f7c6644093f2bfc2ccafe1ef4cf15a..b9047dc1da146b3eba7a7388a8e390391ac200ce 100644 --- a/experiment/trend_analysis/univariate_test/extreme_trend_test/abstract_gev_trend_test.py +++ b/experiment/trend_analysis/univariate_test/extreme_trend_test/abstract_gev_trend_test.py @@ -25,12 +25,12 @@ class AbstractGevTrendTest(AbstractUnivariateTest): def __init__(self, years, maxima, starting_year, unconstrained_model_class, constrained_model_class=StationaryTemporalModel, quantile_level=EUROCODE_QUANTILE, - ): + fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year) - self.quantile_level = quantile_level self.unconstrained_model_class = unconstrained_model_class self.constrained_model_class = constrained_model_class - self.fit_method = TemporalMarginFitMethod.extremes_fevd_mle + self.quantile_level = quantile_level + self.fit_method = fit_method # Load observations, coordinates and datasets self.coordinates, self.dataset = load_temporal_coordinates_and_dataset(maxima, years) # By default crashed boolean is False diff --git a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/abstract_comparison_non_stationary_model.py b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/abstract_comparison_non_stationary_model.py index ee92cf5e080b0d6ab9ee018913bf6e645c6ddb91..8b38e5b43d6eda0ea680a69b5fbc118545d983b6 100644 --- a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/abstract_comparison_non_stationary_model.py +++ b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/abstract_comparison_non_stationary_model.py @@ -3,6 +3,8 @@ from experiment.trend_analysis.univariate_test.extreme_trend_test.abstract_gev_t from experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_one_parameter.gev_trend_test_one_parameter import \ GevTrendTestOneParameter from experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_two_parameters.gev_trend_test_two_parameters import GevLocationAndScaleTrendTest +from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \ + TemporalMarginFitMethod from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import \ NonStationaryLocationTemporalModel, NonStationaryScaleTemporalModel import numpy as np @@ -19,13 +21,13 @@ class AbstractComparisonNonStationaryModelOneParameter(GevTrendTestOneParameter) class ComparisonAgainstMu(AbstractComparisonNonStationaryModelOneParameter, GevLocationAndScaleTrendTest): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, constrained_model_class=NonStationaryLocationTemporalModel, - quantile_level=quantile_level) + quantile_level=quantile_level, fit_method=fit_method) class ComparisonAgainstSigma(AbstractComparisonNonStationaryModelOneParameter, GevLocationAndScaleTrendTest): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, constrained_model_class=NonStationaryScaleTemporalModel, - quantile_level=quantile_level) + quantile_level=quantile_level, fit_method=fit_method) diff --git a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/gev_trend_test_one_parameter.py b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/gev_trend_test_one_parameter.py index b34c2bc7298d06f6c11fa2fa66e538488fd09d1e..6b80b33352d9f373355e45fc5236670ac3f47924 100644 --- a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/gev_trend_test_one_parameter.py +++ b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/gev_trend_test_one_parameter.py @@ -1,5 +1,7 @@ from experiment.eurocode_data.utils import EUROCODE_QUANTILE from experiment.trend_analysis.univariate_test.extreme_trend_test.abstract_gev_trend_test import AbstractGevTrendTest +from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \ + TemporalMarginFitMethod from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import \ NonStationaryLocationTemporalModel, NonStationaryScaleTemporalModel, NonStationaryShapeTemporalModel, \ StationaryTemporalModel @@ -18,11 +20,13 @@ class GevTrendTestOneParameterAgainstStationary(GevTrendTestOneParameter): def __init__(self, years, maxima, starting_year, unconstrained_model_class, gev_param_name, quantile_level=EUROCODE_QUANTILE, - constrained_model_class=StationaryTemporalModel): + constrained_model_class=StationaryTemporalModel, + fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=unconstrained_model_class, quantile_level=quantile_level, - constrained_model_class=constrained_model_class) + constrained_model_class=constrained_model_class, + fit_method=fit_method) self.gev_param_name = gev_param_name @property @@ -32,12 +36,14 @@ class GevTrendTestOneParameterAgainstStationary(GevTrendTestOneParameter): class GevLocationTrendTest(GevTrendTestOneParameterAgainstStationary): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, constrained_model_class=StationaryTemporalModel): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, constrained_model_class=StationaryTemporalModel, + fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=NonStationaryLocationTemporalModel, constrained_model_class=constrained_model_class, gev_param_name=GevParams.LOC, - quantile_level=quantile_level) + quantile_level=quantile_level, + fit_method=fit_method) def _slope_strength(self): return self.unconstrained_estimator_gev_params.time_derivative_of_return_level(p=self.quantile_level, @@ -55,12 +61,14 @@ class GevLocationTrendTest(GevTrendTestOneParameterAgainstStationary): class GevScaleTrendTest(GevTrendTestOneParameterAgainstStationary): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, constrained_model_class=StationaryTemporalModel): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, constrained_model_class=StationaryTemporalModel, + fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=NonStationaryScaleTemporalModel, constrained_model_class=constrained_model_class, gev_param_name=GevParams.SCALE, - quantile_level=quantile_level) + quantile_level=quantile_level, + fit_method=fit_method) def _slope_strength(self): return self.unconstrained_estimator_gev_params.time_derivative_of_return_level( @@ -81,10 +89,11 @@ class GevScaleTrendTest(GevTrendTestOneParameterAgainstStationary): class GevShapeTrendTest(GevTrendTestOneParameterAgainstStationary): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=NonStationaryShapeTemporalModel, gev_param_name=GevParams.SHAPE, - quantile_level=quantile_level) + quantile_level=quantile_level, + fit_method=fit_method) diff --git a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/gumbel_trend_test_one_parameter.py b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/gumbel_trend_test_one_parameter.py index 0d0ff69abfbf7a8024915a0ea254949662563f38..d6e1ba53e5aa9afa81bd6058d56e7ac0c655c215 100644 --- a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/gumbel_trend_test_one_parameter.py +++ b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_one_parameter/gumbel_trend_test_one_parameter.py @@ -3,6 +3,8 @@ from experiment.eurocode_data.utils import EUROCODE_QUANTILE from experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_one_parameter.gev_trend_test_one_parameter import \ GevTrendTestOneParameter, GevTrendTestOneParameterAgainstStationary from extreme_fit.distribution.gev.gev_params import GevParams +from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \ + TemporalMarginFitMethod from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel, \ GumbelTemporalModel, NonStationaryLocationGumbelModel, NonStationaryScaleGumbelModel from root_utils import classproperty @@ -10,11 +12,12 @@ from root_utils import classproperty class GumbelVersusGumbel(GevTrendTestOneParameter): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=GumbelTemporalModel, constrained_model_class=GumbelTemporalModel, - quantile_level=quantile_level) + quantile_level=quantile_level, + fit_method=fit_method) @property def is_significant(self) -> bool: @@ -38,11 +41,13 @@ class GumbelVersusGumbel(GevTrendTestOneParameter): class GevStationaryVersusGumbel(GevTrendTestOneParameter): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, + fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=StationaryTemporalModel, constrained_model_class=GumbelTemporalModel, - quantile_level=quantile_level) + quantile_level=quantile_level, + fit_method=fit_method) @property def total_number_of_parameters_for_unconstrained_model(self) -> int: @@ -62,12 +67,12 @@ class GevStationaryVersusGumbel(GevTrendTestOneParameter): class GumbelLocationTrendTest(GevTrendTestOneParameterAgainstStationary): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=NonStationaryLocationGumbelModel, gev_param_name=GevParams.LOC, quantile_level=quantile_level, - constrained_model_class=GumbelTemporalModel) + constrained_model_class=GumbelTemporalModel, fit_method=fit_method) @property def total_number_of_parameters_for_unconstrained_model(self) -> int: @@ -88,12 +93,14 @@ class GumbelLocationTrendTest(GevTrendTestOneParameterAgainstStationary): class GumbelScaleTrendTest(GevTrendTestOneParameterAgainstStationary): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, + fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=NonStationaryScaleGumbelModel, gev_param_name=GevParams.SCALE, quantile_level=quantile_level, - constrained_model_class=GumbelTemporalModel) + constrained_model_class=GumbelTemporalModel, + fit_method=fit_method) def _slope_strength(self): return self.unconstrained_estimator_gev_params.time_derivative_of_return_level( diff --git a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_three_parameters/gev_trend_test_three_parameters.py b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_three_parameters/gev_trend_test_three_parameters.py index cb951aad3d51746397b5d0a5a9be7a05d08ec390..9f9a7bbbea5a9c690c9198e16193259da55df1b3 100644 --- a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_three_parameters/gev_trend_test_three_parameters.py +++ b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_three_parameters/gev_trend_test_three_parameters.py @@ -1,6 +1,8 @@ from experiment.eurocode_data.utils import EUROCODE_QUANTILE from experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_two_parameters.gev_trend_test_two_parameters import \ GevLocationAndScaleTrendTest +from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \ + TemporalMarginFitMethod from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel from experiment.eurocode_data.utils import EUROCODE_QUANTILE from experiment.trend_analysis.univariate_test.extreme_trend_test.abstract_gev_trend_test import AbstractGevTrendTest @@ -20,11 +22,12 @@ class GevTrendTestThreeParameters(AbstractGevTrendTest): class GevLocationAndScaleTrendTestAgainstGumbel(GevTrendTestThreeParameters): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=NonStationaryLocationAndScaleTemporalModel, constrained_model_class=GumbelTemporalModel, - quantile_level=quantile_level) + quantile_level=quantile_level, + fit_method=fit_method) @property def mu1(self): diff --git a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_two_parameters/gev_trend_test_two_parameters.py b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_two_parameters/gev_trend_test_two_parameters.py index 7ef18928724945ec5fb346d54a4c2abed0abf5ff..56c93e8ce0ba3e39f7fe2d3ec7ec004d918791d9 100644 --- a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_two_parameters/gev_trend_test_two_parameters.py +++ b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_two_parameters/gev_trend_test_two_parameters.py @@ -2,6 +2,8 @@ from experiment.eurocode_data.utils import EUROCODE_QUANTILE from experiment.trend_analysis.univariate_test.extreme_trend_test.abstract_gev_trend_test import AbstractGevTrendTest from experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_one_parameter.gev_trend_test_one_parameter import \ GevLocationTrendTest, GevScaleTrendTest +from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \ + TemporalMarginFitMethod from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import \ NonStationaryLocationAndScaleTemporalModel, StationaryTemporalModel, NonStationaryLocationAndScaleGumbelModel, \ GumbelTemporalModel @@ -19,11 +21,12 @@ class GevTrendTestTwoParameters(AbstractGevTrendTest): class GevLocationAndScaleTrendTest(GevTrendTestTwoParameters): def __init__(self, years, maxima, starting_year, constrained_model_class=StationaryTemporalModel, - quantile_level=EUROCODE_QUANTILE): + quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=NonStationaryLocationAndScaleTemporalModel, constrained_model_class=constrained_model_class, - quantile_level=quantile_level) + quantile_level=quantile_level, + fit_method=fit_method) @property def mu1(self): @@ -51,8 +54,8 @@ class GevLocationAndScaleTrendTest(GevTrendTestTwoParameters): class GevLocationAgainstGumbel(GevTrendTestTwoParameters, GevLocationTrendTest): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): - super().__init__(years, maxima, starting_year, quantile_level, GumbelTemporalModel) + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): + super().__init__(years, maxima, starting_year, quantile_level, GumbelTemporalModel, fit_method=fit_method) @classproperty def label(self): @@ -69,8 +72,8 @@ class GevLocationAgainstGumbel(GevTrendTestTwoParameters, GevLocationTrendTest): class GevScaleAgainstGumbel(GevTrendTestTwoParameters, GevScaleTrendTest): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): - super().__init__(years, maxima, starting_year, quantile_level, GumbelTemporalModel) + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): + super().__init__(years, maxima, starting_year, quantile_level, GumbelTemporalModel, fit_method=fit_method) @classproperty def label(self): diff --git a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_two_parameters/gumbel_test_two_parameters.py b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_two_parameters/gumbel_test_two_parameters.py index 8eced3b2929c0fe8578b17a4a06337a28b95c565..d21fdb7fa41894334cd7074177ac3e102a68d54d 100644 --- a/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_two_parameters/gumbel_test_two_parameters.py +++ b/experiment/trend_analysis/univariate_test/extreme_trend_test/trend_test_two_parameters/gumbel_test_two_parameters.py @@ -2,6 +2,8 @@ from experiment.eurocode_data.utils import EUROCODE_QUANTILE from experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_two_parameters.gev_trend_test_two_parameters import \ GevTrendTestTwoParameters from extreme_fit.distribution.gev.gev_params import GevParams +from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \ + TemporalMarginFitMethod from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import \ NonStationaryLocationAndScaleGumbelModel, GumbelTemporalModel from root_utils import classproperty @@ -9,11 +11,12 @@ from root_utils import classproperty class GumbelLocationAndScaleTrendTest(GevTrendTestTwoParameters): - def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE): + def __init__(self, years, maxima, starting_year, quantile_level=EUROCODE_QUANTILE, fit_method=TemporalMarginFitMethod.extremes_fevd_mle): super().__init__(years, maxima, starting_year, unconstrained_model_class=NonStationaryLocationAndScaleGumbelModel, constrained_model_class=GumbelTemporalModel, - quantile_level=quantile_level) + quantile_level=quantile_level, + fit_method=fit_method) @property def total_number_of_parameters_for_unconstrained_model(self) -> int: