Commit 92086b71 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[projections] add test_one_fold_fit.py and clustered_ensemble.py

parent 27193d8d
No related merge requests found
Showing with 71 additions and 0 deletions
+71 -0
"""Instead of creating one big group, with all the ensemble together,
and assuming a common temporal trend to all the group.
We could create smaller groups, with an importance proportional to the number of GCM/RCM couples considered
in the group.
For instance, we could group them by GCM, or group them by RCM.
Or we could try to find a metric to group them together.
This is the idea of finding of sweet spot between:
-only independent fits with few assumptions
-one common fit with too much assumption
it links with the idea of "climate model subset".
Generally people try to find one model subset,
the idea here, would be to find group of model subsets
"""
\ No newline at end of file
import unittest
from extreme_data.meteo_france_data.adamont_data.adamont.adamont_snowfall import AdamontSnowfall
from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
from extreme_fit.model.margin_model.polynomial_margin_model.gev_altitudinal_models import StationaryAltitudinal
from extreme_fit.model.margin_model.polynomial_margin_model.models_based_on_pariwise_analysis.gev_with_constant_shape_wrt_altitude import \
AltitudinalShapeConstantTimeLocationLinear, AltitudinalShapeConstantTimeScaleLinear, \
AltitudinalShapeConstantTimeLocScaleLinear
from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.one_fold_fit import OneFoldFit
from spatio_temporal_dataset.coordinates.temporal_coordinates.abstract_temporal_covariate_for_fit import \
TimeTemporalCovariate
class TestOneFoldFit(unittest.TestCase):
pass
def setUp(self) -> None:
super().setUp()
self.altitudes = [1200, 1500, 1800]
self.massif_name = "Vanoise"
self.model_classes = [StationaryAltitudinal,
AltitudinalShapeConstantTimeLocationLinear,
AltitudinalShapeConstantTimeScaleLinear,
AltitudinalShapeConstantTimeLocScaleLinear
][:]
def load_dataset(self, study_class):
self.studies = AltitudesStudies(study_class, self.altitudes)
dataset = self.studies.spatio_temporal_dataset(massif_name=self.massif_name)
return dataset
def test_without_temporal_covariate(self):
for study_class in [SafranSnowfall1Day, AdamontSnowfall][:]:
dataset = self.load_dataset(study_class)
one_fold_fit = OneFoldFit(self.massif_name, dataset,
models_classes=self.model_classes, temporal_covariate_for_fit=None)
print(type(one_fold_fit.best_estimator.margin_model))
self.assertTrue(True)
def test_with_temporal_covariate_for_time(self):
for study_class in [SafranSnowfall1Day, AdamontSnowfall][:]:
dataset = self.load_dataset(study_class)
one_fold_fit = OneFoldFit(self.massif_name, dataset,
models_classes=self.model_classes,
temporal_covariate_for_fit=TimeTemporalCovariate)
print(type(one_fold_fit.best_estimator.margin_model))
self.assertTrue(True)
if __name__ == '__main__':
unittest.main()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment