An error occurred while loading the file. Please try again.
-
Le Roux Erwan authorede59cdcb1
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
import datetime
import time
from extreme_data.meteo_france_data.adamont_data.adamont.adamont_safran import AdamontSnowfall
from extreme_data.meteo_france_data.adamont_data.adamont_scenario import AdamontScenario, get_gcm_rcm_couples
from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
from extreme_data.meteo_france_data.scm_models_data.utils import Season
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_linear_shape_wrt_altitude import \
AltitudinalShapeLinearTimeStationary
from extreme_trend.ensemble_fit.independent_ensemble_fit.independent_ensemble_fit import IndependentEnsembleFit
from extreme_trend.ensemble_fit.visualizer_for_projection_ensemble import VisualizerForProjectionEnsemble
from extreme_trend.one_fold_fit.altitude_group import altitudes_for_groups
from projects.projected_swe.weight_computer.abstract_weight_computer import AbstractWeightComputer
from projects.projected_swe.weight_computer.knutti_weight_computer import KnuttiWeightComputer
from projects.projected_swe.weight_computer.non_stationary_weight_computer import NllhWeightComputer
from spatio_temporal_dataset.coordinates.temporal_coordinates.abstract_temporal_covariate_for_fit import \
TimeTemporalCovariate
def main_weight_computation():
start = time.time()
study_class = AdamontSnowfall
scm_study_class = {
AdamontSnowfall: SafranSnowfall1Day,
}[study_class]
ensemble_fit_classes = [IndependentEnsembleFit]
temporal_covariate_for_fit = TimeTemporalCovariate
# model_classes = ALTITUDINAL_GEV_MODELS_BASED_ON_POINTWISE_ANALYSIS
model_classes = [StationaryAltitudinal, AltitudinalShapeLinearTimeStationary]
remove_physically_implausible_models = True
scenario = AdamontScenario.rcp85_extended
gcm_rcm_couples = get_gcm_rcm_couples(scenario)
year_min = 1982
year_max = 2019
weight_computer_class = [NllhWeightComputer, KnuttiWeightComputer][1]
fast = True
if fast is None:
massif_names = None
altitudes_list = altitudes_for_groups[2:3]
gcm_rcm_couples = gcm_rcm_couples[:]
elif fast:
massif_names = ['Vanoise', 'Pelvoux', 'Chartreuse'][:1]
altitudes_list = altitudes_for_groups[1:2]
gcm_rcm_couples = gcm_rcm_couples[:3]
else:
massif_names = None
altitudes_list = altitudes_for_groups[:]
visualizer = VisualizerForProjectionEnsemble(
altitudes_list, gcm_rcm_couples, study_class, Season.annual, scenario,
model_classes=model_classes,
ensemble_fit_classes=ensemble_fit_classes,
massif_names=massif_names,
temporal_covariate_for_fit=temporal_covariate_for_fit,
remove_physically_implausible_models=remove_physically_implausible_models,
gcm_to_year_min_and_year_max={c[0]: (year_min, year_max) for c in gcm_rcm_couples},
)
weight_computer = weight_computer_class(visualizer, scm_study_class, year_min, year_max,
sigma_D=10) # type:AbstractWeightComputer
weight_computer.compute_weights_and_save_them()
end = time.time()
duration = str(datetime.timedelta(seconds=end - start))
print('Total duration', duration)
if __name__ == '__main__':
main_weight_computation()
# d = load_gcm_rcm_couple_to_weight(['sd', 'sdf'], [23], 1982, 2019, AdamontScenario.rcp85_extended,
# weight_class=NllhWeightComputer, gcm_rcm_couple_missing=None)
# print(d)