Failed to fetch fork details. Try again later.
-
Olivier Kaufmann authorede29497f2
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import time
from collections import OrderedDict
from experiment.eurocode_data.eurocode_visualizer import plot_model_name_to_dep_to_ordered_return_level_uncertainties
from experiment.eurocode_data.massif_name_to_departement import DEPARTEMENT_TYPES
from experiment.eurocode_data.utils import EUROCODE_ALTITUDES, LAST_YEAR_FOR_EUROCODE
from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSwe3Days
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \
AltitudeHypercubeVisualizer
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.utils_hypercube import \
load_altitude_visualizer
from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel, \
NonStationaryLocationAndScaleTemporalModel
from root_utils import get_display_name_from_object_type
# Model class
import matplotlib as mpl
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
def dep_to_ordered_return_level_uncertainties(model_class, last_year_for_the_data, altitudes):
model_type = get_display_name_from_object_type(model_class).split('Stationary')[0] + 'Stationary'
# model_name += ' 1958-' + str(last_year_for_the_data)
is_non_stationary = model_type == 'NonStationary'
model_symbol = '{\mu_1, \sigma_1}' if is_non_stationary else '0'
parameter = ', 2017' if is_non_stationary else ''
model_name = ' $ \widehat{q_{\\textrm{GEV}}(\\boldsymbol{\\theta_{\mathcal{M}_'
model_name += model_symbol
model_name += '}}'
model_name += parameter
model_name += ')}_{ \\textrm{MMSE}} $ ' + '({})'.format(model_type)
# Load altitude visualizer
altitude_visualizer = load_altitude_visualizer(AltitudeHypercubeVisualizer, altitudes=altitudes,
last_starting_year=None, nb_data_reduced_for_speed=False,
only_first_one=False, save_to_file=False,
exact_starting_year=1958,
first_starting_year=None,
study_classes=[CrocusSwe3Days],
trend_test_class=None)
# Loop on the data
assert isinstance(altitude_visualizer.tuple_to_study_visualizer, OrderedDict)
dep_to_ordered_return_level_uncertainty = {dep: [] for dep in DEPARTEMENT_TYPES}
for altitude, visualizer in altitude_visualizer.tuple_to_study_visualizer.items():
print('{} processing altitude = {} '.format(model_name, altitude))
dep_to_return_level_uncertainty = visualizer.dep_class_to_eurocode_level_uncertainty(model_class,
last_year_for_the_data)
for dep, return_level_uncertainty in dep_to_return_level_uncertainty.items():
dep_to_ordered_return_level_uncertainty[dep].append(return_level_uncertainty)
return {model_name: dep_to_ordered_return_level_uncertainty}
def main_drawing():
# Select parameters
fast_plot = [True, False][1]
model_class_and_last_year = [
(StationaryTemporalModel, LAST_YEAR_FOR_EUROCODE),
(StationaryTemporalModel, 2017),
(NonStationaryLocationAndScaleTemporalModel, 2017),
][1:]
altitudes = EUROCODE_ALTITUDES[:]
if fast_plot:
model_class_and_last_year = model_class_and_last_year[:2]
altitudes = altitudes[:2]
model_name_to_dep_to_ordered_return_level = {}
for model_class, last_year_for_the_data in model_class_and_last_year:
start = time.time()
model_name_to_dep_to_ordered_return_level.update(
dep_to_ordered_return_level_uncertainties(model_class, last_year_for_the_data, altitudes))
duration = time.time() - start
print(model_class, duration)
# Transform the dictionary into the desired format
dep_to_model_name_to_ordered_return_level_uncertainties = {}
for dep in DEPARTEMENT_TYPES:
d2 = {model_name: model_name_to_dep_to_ordered_return_level[model_name][dep] for model_name in
model_name_to_dep_to_ordered_return_level.keys()}
dep_to_model_name_to_ordered_return_level_uncertainties[dep] = d2
# Plot graph
plot_model_name_to_dep_to_ordered_return_level_uncertainties(
dep_to_model_name_to_ordered_return_level_uncertainties, altitudes, show=True)
if __name__ == '__main__':
main_drawing()