Failed to fetch fork details. Try again later.
-
Forquet Nicolas authored009d2209
Forked from
reversaal / OhmPi
Source project has a limited visibility.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import unittest
from experiment.meteo_france_SCM_study.crocus.crocus import CrocusSwe
from experiment.meteo_france_SCM_study.visualization.study_visualization.main_study_visualizer import \
study_iterator_global
from experiment.meteo_france_SCM_study.visualization.study_visualization.non_stationary_trends import \
ConditionalIndedendenceLocationTrendTest
from experiment.meteo_france_SCM_study.visualization.study_visualization.study_visualizer import StudyVisualizer
from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.uniform_normalization import \
BetweenZeroAndOneNormalization, BetweenMinusOneAndOneNormalization, BetweenZeroAndTenNormalization, \
BetweenZeroAndOneNormalizationMinEpsilon, BetweenZeroAndOneNormalizationMaxEpsilon
from utils import get_display_name_from_object_type
class TestCoordinateSensitivity(unittest.TestCase):
DISPLAY = False
def test_coordinate_normalization_sensitivity(self):
altitudes = [300, 600, 900, 1200, 2100, 3000][-1:]
transformation_classes = [None, BetweenZeroAndOneNormalization, BetweenZeroAndOneNormalizationMinEpsilon,
BetweenZeroAndOneNormalizationMaxEpsilon][1:2]
study_classes = [CrocusSwe]
for study in study_iterator_global(study_classes, altitudes=altitudes, verbose=False):
if self.DISPLAY:
print(study.altitude)
for transformation_class in transformation_classes:
study_visualizer = StudyVisualizer(study, transformation_class=transformation_class)
study_visualizer.temporal_non_stationarity = True
trend_test = ConditionalIndedendenceLocationTrendTest(study_visualizer.dataset)
years = [1960, 1990]
mu1s = [trend_test.get_mu_coefs(year)['mu_temporal'] for year in years]
if self.DISPLAY:
print('Stationary')
stationary_est = trend_test.load_estimator(trend_test.stationary_margin_model_class,
starting_point=None)
print(stationary_est.result_from_fit.convergence)
print(stationary_est.margin_function_fitted.coef_dict)
print('Non Stationary')
non_stationary_est = trend_test.load_estimator(trend_test.non_stationary_margin_model_class,
starting_point=1960)
print(non_stationary_est.result_from_fit.convergence)
non_stationary_est = trend_test.load_estimator(trend_test.non_stationary_margin_model_class,
starting_point=1990)
print(non_stationary_est.result_from_fit.convergence)
print(non_stationary_est.margin_function_fitted.coef_dict)
print(get_display_name_from_object_type(transformation_class), 'mu1s: ', mu1s)
print('\n')
self.assertTrue(0.0 not in mu1s)
if __name__ == '__main__':
unittest.main()