diff --git a/extreme_fit/model/margin_model/polynomial_margin_model/__init__.py b/extreme_fit/model/margin_model/polynomial_margin_model/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/extreme_fit/model/margin_model/polynomial_margin_model.py b/extreme_fit/model/margin_model/polynomial_margin_model/polynomial_margin_model.py similarity index 100% rename from extreme_fit/model/margin_model/polynomial_margin_model.py rename to extreme_fit/model/margin_model/polynomial_margin_model/polynomial_margin_model.py diff --git a/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py b/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py index 8af1113395d3cc75e9c86a30bf2f98db8e896753..6e0ac523859c9a044a9820bb8a136174fb6fdbb3 100644 --- a/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py +++ b/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py @@ -1,4 +1,4 @@ -from extreme_fit.model.margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \ +from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \ NonStationaryQuadraticScaleModel from extreme_fit.model.margin_model.utils import \ MarginFitMethod diff --git a/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py b/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py index 794e2b33589f130e1a916ef5b30533920b2f84dc..223490ff50fa1e0137a52d8916b06eafde24c55e 100644 --- a/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py +++ b/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py @@ -1,5 +1,5 @@ from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE -from extreme_fit.model.margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \ +from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \ NonStationaryQuadraticScaleModel from extreme_trend.abstract_gev_trend_test import AbstractGevTrendTest from extreme_trend.trend_test_one_parameter.gev_trend_test_one_parameter import \ diff --git a/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py b/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py index f4a9db114979606f95f62ac72f4f2df98ec8b041..e62ccdac75d9f0699cc4d141cb85ada0ffc06f9b 100644 --- a/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py +++ b/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py @@ -1,5 +1,5 @@ from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE -from extreme_fit.model.margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \ +from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import \ NonStationaryQuadraticLocationGumbelModel, NonStationaryQuadraticScaleGumbelModel from extreme_trend.trend_test_two_parameters.gev_trend_test_two_parameters import \ GevTrendTestTwoParameters diff --git a/projects/altitude_spatial_model/altitudes_fit/two_fold_fit.py b/projects/altitude_spatial_model/altitudes_fit/two_fold_fit.py index 5f5371e3307f206f263910a52e31131d0955ff97..b5593f4670584f36d2f3254abde2761cfe9ec7d7 100644 --- a/projects/altitude_spatial_model/altitudes_fit/two_fold_fit.py +++ b/projects/altitude_spatial_model/altitudes_fit/two_fold_fit.py @@ -13,8 +13,7 @@ class TwoFoldFit(object): def __init__(self, two_fold_datasets_generator: TwoFoldDatasetsGenerator, model_family_name_to_model_classes: Dict[str, List[type]], - fit_method=MarginFitMethod.extremes_fevd_mle, - ): + fit_method=MarginFitMethod.extremes_fevd_mle): self.two_fold_datasets_generator = two_fold_datasets_generator self.fit_method = fit_method self.model_family_name_to_model_classes = model_family_name_to_model_classes diff --git a/test/test_extreme_fit/test_estimator/test_temporal_estimator/__init__.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_bayesian.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_bayesian.py similarity index 100% rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_bayesian.py rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_bayesian.py diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_gumbel.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_gumbel.py similarity index 100% rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_gumbel.py rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_gumbel.py diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_l_moments.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_l_moments.py similarity index 100% rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_l_moments.py rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_l_moments.py diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_mle.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_mle.py similarity index 100% rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_mle.py rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_mle.py diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_is_mev.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_is_mev.py similarity index 100% rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_is_mev.py rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_is_mev.py diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_polynomial_extremes_mle.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py similarity index 93% rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_polynomial_extremes_mle.py rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py index a5b09acf5de5649f60eb13f8881cbb65d0f1f40d..1f8a50ed5df4fa9011765160647723b83516fedc 100644 --- a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_polynomial_extremes_mle.py +++ b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py @@ -4,13 +4,11 @@ import numpy as np import pandas as pd from extreme_fit.distribution.gev.gev_params import GevParams -from extreme_fit.model.margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \ +from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \ NonStationaryQuadraticScaleModel, NonStationaryQuadraticLocationGumbelModel, NonStationaryQuadraticScaleGumbelModel from extreme_trend.abstract_gev_trend_test import fitted_linear_margin_estimator from extreme_fit.model.margin_model.utils import \ MarginFitMethod -from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel, \ - NonStationaryLocationTemporalModel, NonStationaryLocationAndScaleTemporalModel from extreme_fit.model.utils import r, set_seed_r from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates from spatio_temporal_dataset.coordinates.temporal_coordinates.abstract_temporal_coordinates import \ diff --git a/test/test_projects/test_contrasting/test_two_fold_fit.py b/test/test_projects/test_contrasting/test_two_fold_fit.py index 5f45ac3947fe3aec5873939700ac4bc2005a0325..eb49b9b6135029606032b00b178a3a44d21f5a3e 100644 --- a/test/test_projects/test_contrasting/test_two_fold_fit.py +++ b/test/test_projects/test_contrasting/test_two_fold_fit.py @@ -14,34 +14,35 @@ from projects.altitude_spatial_model.altitudes_fit.utils import Score from spatio_temporal_dataset.slicer.split import Split +def load_two_fold_fit(fit_method, year_max): + altitudes = [900, 1200] + study_class = SafranSnowfall1Day + studies = AltitudesStudies(study_class, altitudes, year_max=year_max) + two_fold_datasets_generator = TwoFoldDatasetsGenerator(studies, nb_samples=1, massif_names=['Vercors']) + model_family_name_to_model_class = {'Stationary': [ConstantMarginModel]} + return TwoFoldFit(two_fold_datasets_generator=two_fold_datasets_generator, + model_family_name_to_model_classes=model_family_name_to_model_class, + fit_method=fit_method) + + class TestTwoFoldFit(unittest.TestCase): def setUp(self) -> None: super().setUp() set_seed_for_test() - def load_two_fold_fit(self, fit_method, year_max): - self.altitudes = [900, 1200] - self.study_class = SafranSnowfall1Day - studies = AltitudesStudies(self.study_class, self.altitudes, year_max=year_max) - self.two_fold_datasets_generator = TwoFoldDatasetsGenerator(studies, nb_samples=1, massif_names=['Vercors']) - self.model_family_name_to_model_class = {'Stationary': [ConstantMarginModel]} - return TwoFoldFit(two_fold_datasets_generator=self.two_fold_datasets_generator, - model_family_name_to_model_classes=self.model_family_name_to_model_class, - fit_method=fit_method) - def test_determinism_dataset_generation(self): - two_fold_fit = self.load_two_fold_fit(fit_method=MarginFitMethod.spatial_extremes_mle, year_max=1963) + two_fold_fit = load_two_fold_fit(fit_method=MarginFitMethod.spatial_extremes_mle, year_max=1963) massif_fit = two_fold_fit.massif_name_to_massif_fit['Vercors'] - model_fit = massif_fit.sample_id_to_sample_fit[0].model_class_to_model_fit[ - ConstantMarginModel] # type: TwoFoldModelFit + sample_fit = massif_fit.sample_id_to_sample_fit[0] + model_fit = sample_fit.model_class_to_model_fit[ConstantMarginModel] # type: TwoFoldModelFit dataset_fold1 = model_fit.estimator_fold_1.dataset index_train = list(dataset_fold1.coordinates.coordinates_index(split=Split.train_temporal)) self.assertEqual([2, 3, 8, 9], index_train) self.assertEqual(110.52073192596436, np.sum(dataset_fold1.maxima_gev(split=Split.train_temporal))) def test_determinism_fit_spatial_extreme(self): - two_fold_fit = self.load_two_fold_fit(fit_method=MarginFitMethod.spatial_extremes_mle, year_max=2019) + two_fold_fit = load_two_fold_fit(fit_method=MarginFitMethod.spatial_extremes_mle, year_max=2019) massif_fit = two_fold_fit.massif_name_to_massif_fit['Vercors'] model_fit = massif_fit.sample_id_to_sample_fit[0].model_class_to_model_fit[ ConstantMarginModel] # type: TwoFoldModelFit