main_visualize.py 1.66 KiB
from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy
from experiment.meteo_france_SCM_study.crocus.crocus import CrocusDepth, CrocusSwe, ExtendedCrocusDepth, \
    ExtendedCrocusSwe
from experiment.meteo_france_SCM_study.safran.safran import Safran, ExtendedSafran
from itertools import product

from experiment.meteo_france_SCM_study.safran.safran_visualizer import StudyVisualizer


def load_all_studies(study_class, only_first_one=False):
    all_studies = []
    is_safran_study = study_class == Safran
    nb_days = [3, 1] if is_safran_study else [1]
    for alti, nb_day in product(AbstractStudy.ALTITUDES, nb_days):
        print('alti: {}, nb_day: {}'.format(alti, nb_day))
        study = Safran(alti, nb_day) if is_safran_study else study_class(alti)
        all_studies.append(study)
        if only_first_one:
            break
    return all_studies


def extended_visualization():
    for study_class in [ExtendedSafran, ExtendedCrocusSwe, ExtendedCrocusDepth][:1]:
        for study in load_all_studies(study_class, only_first_one=True):
            study_visualizer = StudyVisualizer(study)
            study_visualizer.visualize_all_kde_graphs()


def normal_visualization():
    for study_class in [Safran, CrocusSwe, CrocusDepth][:1]:
        for study in load_all_studies(study_class, only_first_one=True):
            study_visualizer = StudyVisualizer(study)
            # study_visualizer.visualize_independent_margin_fits(threshold=[None, 20, 40, 60][0])
            # study_visualizer.visualize_smooth_margin_fit()
            study_visualizer.visualize_full_fit()


if __name__ == '__main__':
    normal_visualization()
    # extended_visualization()