Newer
Older
Le Roux Erwan
committed
import datetime
import time
Le Roux Erwan
committed
from typing import List
import matplotlib
Le Roux Erwan
committed
from extreme_fit.model.result_from_model_fit.result_from_extremes.abstract_extract_eurocode_return_level import \
AbstractExtractEurocodeReturnLevel
matplotlib.use('Agg')
import matplotlib as mpl
Le Roux Erwan
committed
from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal, CrocusSnowLoad3Days
from extreme_fit.model.utils import set_seed_for_test
Le Roux Erwan
committed
from projects.altitude_spatial_model.altitudes_fit.plots.plot_coherence_curves import plot_coherence_curves
Le Roux Erwan
committed
from projects.altitude_spatial_model.altitudes_fit.plots.plot_histogram_altitude_studies import \
plot_histogram_all_models_against_altitudes, plot_histogram_all_trends_against_altitudes, \
Le Roux Erwan
committed
plot_shoe_plot_changes_against_altitude, plot_shoe_plot_changes_against_altitude_for_maxima_and_total, \
plot_shoe_plot_ratio_interval_size_against_altitude
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
from projects.altitude_spatial_model.altitudes_fit.utils_altitude_studies_visualizer import load_visualizer_list
from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.altitude_group import altitudes_for_groups
from projects.altitude_spatial_model.altitudes_fit.one_fold_analysis.plot_total_aic import plot_individual_aic
Le Roux Erwan
committed
from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day, SafranSnowfall3Days, \
SafranSnowfall5Days, SafranSnowfall7Days, SafranDateFirstSnowfall, SafranPrecipitation1Day, SafranPrecipitation3Days
from extreme_data.meteo_france_data.scm_models_data.utils import Season
def main():
study_classes = [SafranSnowfall1Day, SafranSnowfall3Days, SafranSnowfall5Days, SafranSnowfall7Days][:1]
seasons = [Season.annual, Season.winter, Season.spring, Season.automn][:1]
set_seed_for_test()
Le Roux Erwan
committed
fast = True
if fast is None:
massif_names = None
altitudes_list = altitudes_for_groups[2:3]
elif fast:
Le Roux Erwan
committed
AbstractExtractEurocodeReturnLevel.NB_BOOTSTRAP = 10
massif_names = ['Vanoise', 'Haute-Maurienne', 'Vercors'][2:]
altitudes_list = altitudes_for_groups[:1]
else:
massif_names = None
altitudes_list = altitudes_for_groups[:]
Le Roux Erwan
committed
start = time.time()
main_loop(altitudes_list, massif_names, seasons, study_classes)
Le Roux Erwan
committed
end = time.time()
duration = str(datetime.timedelta(seconds=end - start))
print('Total duration', duration)
Le Roux Erwan
committed
def main_loop(altitudes_list, massif_names, seasons, study_classes):
assert isinstance(altitudes_list, List)
assert isinstance(altitudes_list[0], List)
for season in seasons:
for study_class in study_classes:
print('Inner loop', season, study_class)
visualizer_list = load_visualizer_list(season, study_class, altitudes_list, massif_names
)
plot_visualizers(massif_names, visualizer_list)
Le Roux Erwan
committed
for visualizer in visualizer_list:
plot_visualizer(massif_names, visualizer)
del visualizer_list
time.sleep(2)
Le Roux Erwan
committed
def plot_visualizers(massif_names, visualizer_list):
Le Roux Erwan
committed
# plot_histogram_all_trends_against_altitudes(massif_names, visualizer_list)
# plot_shoe_plot_ratio_interval_size_against_altitude(massif_names, visualizer_list)
# for relative in [True, False]:
# plot_shoe_plot_changes_against_altitude(massif_names, visualizer_list, relative=relative)
Le Roux Erwan
committed
# plot_coherence_curves(massif_names, visualizer_list)
Le Roux Erwan
committed
# plot_coherence_curves(['Vanoise'], visualizer_list)
pass
Le Roux Erwan
committed
def plot_visualizer(massif_names, visualizer):
Le Roux Erwan
committed
# Plot time series
Le Roux Erwan
committed
# visualizer.studies.plot_maxima_time_series(massif_names)
Le Roux Erwan
committed
# visualizer.studies.plot_maxima_time_series(['Vanoise'])
Le Roux Erwan
committed
Le Roux Erwan
committed
# Plot the results for the model that minimizes the individual aic
plot_individual_aic(visualizer)
Le Roux Erwan
committed
Le Roux Erwan
committed
# Plot the results for the model that minimizes the total aic
# plot_total_aic(model_classes, visualizer)
Le Roux Erwan
committed
pass
if __name__ == '__main__':