main_poster_EVAN2019.py 3.62 KiB
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \
    Altitude_Hypercube_Year_Visualizer, AltitudeHypercubeVisualizerWithoutTrendType
from experiment.trend_analysis.univariate_test.gev_trend_test_one_parameter import GevScaleTrendTest, \
    GevLocationTrendTest
from experiment.trend_analysis.univariate_test.gev_trend_test_two_parameters import GevLocationAndScaleTrendTest
from experiment.paper1_steps.utils import get_full_altitude_visualizer

POSTER_ALTITUDES = [900, 1800, 2700]
import matplotlib as mpl

mpl.rcParams['hatch.linewidth'] = 0.3


def main_poster_A_non_stationary_model_choice():
    nb = 1
    for altitude in POSTER_ALTITUDES[:nb]:
        for trend_test_class in [GevLocationTrendTest, GevScaleTrendTest, GevLocationAndScaleTrendTest][-nb:]:
            vizualiser = get_full_altitude_visualizer(Altitude_Hypercube_Year_Visualizer, altitude=altitude,
                                                      exact_starting_year=1958, reduce_strength_array=False,
                                                      trend_test_class=trend_test_class,
                                                      )
            # vizualiser.save_to_file = False
            vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=False)


def main_poster_B_starting_years_analysis():
    nb = 3
    for altitude in POSTER_ALTITUDES[2:]:
        for trend_test_class in [GevLocationAndScaleTrendTest]:
            # 1958 as starting year
            vizualiser = get_full_altitude_visualizer(Altitude_Hypercube_Year_Visualizer, altitude=altitude,
                                                      exact_starting_year=1958, reduce_strength_array=False,
                                                      trend_test_class=trend_test_class,
                                                      )
            # vizualiser.save_to_file = False
            vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=False)
            # Optimal common starting year
            vizualiser = get_full_altitude_visualizer(AltitudeHypercubeVisualizerWithoutTrendType, altitude=altitude,
                                                      reduce_strength_array=True,
                                                      trend_test_class=trend_test_class,
                                                      offset_starting_year=20)
            res = vizualiser.visualize_year_trend_test(subtitle_specified='CrocusSwe3Days')
            best_year = res[0][1]
            vizualiser = get_full_altitude_visualizer(Altitude_Hypercube_Year_Visualizer, altitude=altitude,
                                                      exact_starting_year=best_year, reduce_strength_array=False,
                                                      trend_test_class=trend_test_class)
            vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=False)
            # Individual most likely starting year for each massif
            vizualiser = get_full_altitude_visualizer(Altitude_Hypercube_Year_Visualizer, altitude=altitude,
                                                      reduce_strength_array=False,
                                                      trend_test_class=trend_test_class,
                                                      offset_starting_year=20)
            vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=True)


if __name__ == '__main__':
    # main_poster_A_non_stationary_model_choice()
    main_poster_B_starting_years_analysis()