Commit c90ea1b9 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[POSTER EVAN] add main_C for the orientation visualization of the study

parent a2cc809f
No related merge requests found
Showing with 48 additions and 19 deletions
+48 -19
...@@ -371,6 +371,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): ...@@ -371,6 +371,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
def set_trend_test_reparition_title(self, subtitle, set=True): def set_trend_test_reparition_title(self, subtitle, set=True):
# Global information # Global information
title = 'Repartition of {} trends'.format(subtitle) title = 'Repartition of {} trends'.format(subtitle)
if self.study.has_orientation:
title += ' orientation {} degrees'.format(int(self.study.orientation))
title += ' at altitude={}m \nfor the starting_year={}'.format(self.altitudes[0], self.first_starting_year) title += ' at altitude={}m \nfor the starting_year={}'.format(self.altitudes[0], self.first_starting_year)
if len(self.starting_years) > 1: if len(self.starting_years) > 1:
title += ' until starting_year={}'.format(self.last_starting_year) title += ' until starting_year={}'.format(self.last_starting_year)
......
...@@ -31,10 +31,12 @@ def load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_ ...@@ -31,10 +31,12 @@ def load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_
def load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year, nb_data_reduced_for_speed, def load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year, nb_data_reduced_for_speed,
only_first_one, save_to_file, study_classes, trend_test_class only_first_one, save_to_file, study_classes, trend_test_class
, exact_starting_year=None, first_starting_year=1958): , exact_starting_year=None, first_starting_year=1958,
orientations=None):
visualizers = [StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) visualizers = [StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True)
for study in study_iterator_global(study_classes=study_classes, only_first_one=only_first_one, for study in study_iterator_global(study_classes=study_classes, only_first_one=only_first_one,
altitudes=altitudes)] altitudes=altitudes,
orientations=orientations)]
altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers))
visualizer = altitude_hypercube_class(altitude_to_visualizer, visualizer = altitude_hypercube_class(altitude_to_visualizer,
save_to_file=save_to_file, save_to_file=save_to_file,
......
...@@ -62,36 +62,39 @@ ALL_ALTITUDES_WITH_20_STATIONS_AT_LEAST = ALL_ALTITUDES[3:-6][:] ...@@ -62,36 +62,39 @@ ALL_ALTITUDES_WITH_20_STATIONS_AT_LEAST = ALL_ALTITUDES[3:-6][:]
ALL_STUDIES = SCM_STUDIES + [SafranTemperature, SafranRainfall] ALL_STUDIES = SCM_STUDIES + [SafranTemperature, SafranRainfall]
def study_iterator_global(study_classes, only_first_one=False, verbose=True, altitudes=None, nb_days=None) -> \ def study_iterator_global(study_classes, only_first_one=False, verbose=True, altitudes=None, nb_days=None, orientations=None) -> \
List[AbstractStudy]: List[AbstractStudy]:
for study_class in study_classes: for study_class in study_classes:
for study in study_iterator(study_class, only_first_one, verbose, altitudes, nb_days): for study in study_iterator(study_class, only_first_one, verbose, altitudes, nb_days, orientations=orientations):
yield study yield study
if only_first_one: if only_first_one:
break break
def study_iterator(study_class, only_first_one=False, verbose=True, altitudes=None, nb_consecutive_days=3) -> List[ def study_iterator(study_class, only_first_one=False, verbose=True, altitudes=None, nb_consecutive_days=3,
orientations=None) -> List[
AbstractStudy]: AbstractStudy]:
# Default argument # Default argument
altis = [1800] if altitudes is None else altitudes altis = [1800] if altitudes is None else altitudes
orients = [None] if orientations is None else orientations
if verbose: if verbose:
print('\n\n\n\n\nLoading studies....') print('\n\n\n\n\nLoading studies....')
for alti in altis: for alti in altis:
if verbose: for orient in orients:
print('alti: {}, nb_day: {} '.format(alti, nb_consecutive_days), end='') if verbose:
print('alti: {}, nb_day: {} orient = {} '.format(alti, nb_consecutive_days, orient), end='')
study = study_class(altitude=alti) study = study_class(altitude=alti, orientation=orient)
if verbose: if verbose:
massifs = study.altitude_to_massif_names[alti] massifs = study.altitude_to_massif_names[alti]
print('{} massifs: {} \n'.format(len(massifs), massifs)) print('{} massifs: {} \n'.format(len(massifs), massifs))
yield study yield study
# Stop iterations on purpose # Stop iterations on purpose
if only_first_one: if only_first_one:
break break
def extended_visualization(): def extended_visualization():
......
from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusSweTotal from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusSweTotal, CrocusSwe3Days
from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \
Altitude_Hypercube_Year_Visualizer, AltitudeHypercubeVisualizerWithoutTrendType Altitude_Hypercube_Year_Visualizer, AltitudeHypercubeVisualizerWithoutTrendType
...@@ -57,6 +57,22 @@ def main_poster_B_starting_years_analysis(): ...@@ -57,6 +57,22 @@ def main_poster_B_starting_years_analysis():
vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=True) vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=True)
def main_poster_C_orientation_analysis():
"""By default the slope is equal to 20"""
nb = 0
cardinal_orientations = [0.0, 90.0, 180.0, 270.0]
trend_test_class = GevLocationAndScaleTrendTest
for altitude in POSTER_ALTITUDES[nb:]:
study_class = CrocusSwe3Days
for orientation in cardinal_orientations[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,
study_class=study_class,
orientation=orientation)
vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=False)
def main_poster_D_other_quantities_analysis(): def main_poster_D_other_quantities_analysis():
nb = 3 nb = 3
trend_test_class = GevLocationAndScaleTrendTest trend_test_class = GevLocationAndScaleTrendTest
...@@ -72,4 +88,5 @@ def main_poster_D_other_quantities_analysis(): ...@@ -72,4 +88,5 @@ def main_poster_D_other_quantities_analysis():
if __name__ == '__main__': if __name__ == '__main__':
# main_poster_A_non_stationary_model_choice() # main_poster_A_non_stationary_model_choice()
# main_poster_B_starting_years_analysis() # main_poster_B_starting_years_analysis()
main_poster_D_other_quantities_analysis() main_poster_C_orientation_analysis()
# main_poster_D_other_quantities_analysis()
...@@ -12,7 +12,8 @@ def get_full_altitude_visualizer(altitude_hypercube_class, exact_starting_year=N ...@@ -12,7 +12,8 @@ def get_full_altitude_visualizer(altitude_hypercube_class, exact_starting_year=N
reduce_strength_array=False, reduce_strength_array=False,
trend_test_class = GevLocationTrendTest, trend_test_class = GevLocationTrendTest,
offset_starting_year=10, offset_starting_year=10,
study_class=CrocusSwe3Days): study_class=CrocusSwe3Days,
orientation=None):
altitudes, first_starting_year, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, _ = get_full_parameters( altitudes, first_starting_year, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, _ = get_full_parameters(
altitude=altitude, offset_starting_year=offset_starting_year) altitude=altitude, offset_starting_year=offset_starting_year)
if exact_starting_year is not None: if exact_starting_year is not None:
...@@ -21,6 +22,7 @@ def get_full_altitude_visualizer(altitude_hypercube_class, exact_starting_year=N ...@@ -21,6 +22,7 @@ def get_full_altitude_visualizer(altitude_hypercube_class, exact_starting_year=N
visualizer = load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year, visualizer = load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year,
nb_data_reduced_for_speed, only_first_one, save_to_file, study_classes, nb_data_reduced_for_speed, only_first_one, save_to_file, study_classes,
trend_test_class, first_starting_year=first_starting_year, trend_test_class, first_starting_year=first_starting_year,
exact_starting_year=exact_starting_year) exact_starting_year=exact_starting_year,
orientations=[orientation])
visualizer.reduce_strength_array = reduce_strength_array visualizer.reduce_strength_array = reduce_strength_array
return visualizer return visualizer
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment