Commit 883aa3eb authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[HYPERCUBE] create example plot for the starting year

parent 2de146e9
No related merge requests found
Showing with 35 additions and 13 deletions
+35 -13
...@@ -151,8 +151,9 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): ...@@ -151,8 +151,9 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
else: else:
ax.set_title(plot_title) ax.set_title(plot_title)
ax.legend() ax.legend()
ax.set_xlabel(xlabel) # Common things to all the graph
plt.setp(ax.get_yticklabels(), visible=False) ax.set_xlabel(xlabel)
plt.setp(ax.get_yticklabels(), visible=False)
specific_title = 'Evolution of {} trends wrt to the {} with {}'.format(subtitle, xlabel, specific_title = 'Evolution of {} trends wrt to the {} with {}'.format(subtitle, xlabel,
self.trend_test_name) self.trend_test_name)
...@@ -279,7 +280,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): ...@@ -279,7 +280,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
def visualize_year_trend_test(self, axes=None, marker='o', add_detailed_plots=False, plot_title=None, def visualize_year_trend_test(self, axes=None, marker='o', add_detailed_plots=False, plot_title=None,
isin_parameters=None, isin_parameters=None,
show_or_save_to_file=True): show_or_save_to_file=True,
subtitle_specified=None):
if axes is None: if axes is None:
axes = self.load_trend_test_evolution_axes(self.nb_rows) axes = self.load_trend_test_evolution_axes(self.nb_rows)
else: else:
...@@ -287,7 +289,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): ...@@ -287,7 +289,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
results = [] results = []
for subtitle, reduction_function in self.subtitle_to_reduction_function(self.year_reduction, for subtitle, reduction_function in self.subtitle_to_reduction_function(self.year_reduction,
add_detailed_plot=add_detailed_plots).items(): add_detailed_plot=add_detailed_plots,
subtitle=subtitle_specified).items():
specific_title, best_year = self.visualize_trend_test_evolution( specific_title, best_year = self.visualize_trend_test_evolution(
reduction_function=reduction_function, reduction_function=reduction_function,
xlabel=STARTING_YEARS_XLABEL, xlabel=STARTING_YEARS_XLABEL,
......
...@@ -122,7 +122,9 @@ class AltitudeHypercubeVisualizerWithoutTrendExtended(AltitudeHypercubeVisualize ...@@ -122,7 +122,9 @@ class AltitudeHypercubeVisualizerWithoutTrendExtended(AltitudeHypercubeVisualize
AltitudeHypercubeVisualizerWithoutTrendType): AltitudeHypercubeVisualizerWithoutTrendType):
def df_loglikelihood(self, isin_parameters=None): def df_loglikelihood(self, isin_parameters=None):
return self.isin_slicing(df=super().df_loglikelihood(), isin_parameters=isin_parameters) df = super().df_loglikelihood()
df = self.isin_slicing(df=df, isin_parameters=isin_parameters)
return df
# Extension # Extension
......
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \
QuantityHypercubeWithoutTrend, AltitudeHypercubeVisualizerBisExtended QuantityHypercubeWithoutTrend, AltitudeHypercubeVisualizerBisExtended, \
AltitudeHypercubeVisualizerWithoutTrendExtended
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_fast_hypercube_one_altitudes import \ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_fast_hypercube_one_altitudes import \
get_fast_parameters, get_fast_quantity_visualizer get_fast_parameters, get_fast_quantity_visualizer, get_fast_altitude_visualizer
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_full_hypercube import \ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_full_hypercube import \
get_full_quantity_visualizer, get_full_altitude_visualizer get_full_quantity_visualizer, get_full_altitude_visualizer
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.utils_hypercube import \ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.utils_hypercube import \
load_altitude_visualizer load_altitude_visualizer
from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \ from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
SCM_STUDIES SCM_STUDIES, altitude_massif_name_and_study_class_for_poster
from utils import get_display_name_from_object_type
POSTER_ALTITUDES = [900, 1800, 2700] POSTER_ALTITUDES = [900, 1800, 2700]
def fast_poster(): def fast_poster():
for altitude in POSTER_ALTITUDES[:1]: for altitude in POSTER_ALTITUDES[:1]:
study_classes = SCM_STUDIES[:2] study_classes = SCM_STUDIES[:2]
results = get_fast_quantity_visualizer(QuantityHypercubeWithoutTrend, results = get_fast_quantity_visualizer(QuantityHypercubeWithoutTrend,
altitude=altitude, altitude=altitude,
study_classes=study_classes).visualize_year_trend_test(add_detailed_plots=True) study_classes=study_classes).visualize_year_trend_test(
add_detailed_plots=True)
study_class_to_year = dict(zip(study_classes, [t[1] for t in results])) study_class_to_year = dict(zip(study_classes, [t[1] for t in results]))
for study_class, exact_year in study_class_to_year.items(): for study_class, exact_year in study_class_to_year.items():
altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters( altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters(
...@@ -36,12 +41,24 @@ def full_poster(): ...@@ -36,12 +41,24 @@ def full_poster():
study_classes = SCM_STUDIES[:] study_classes = SCM_STUDIES[:]
results = get_full_quantity_visualizer(QuantityHypercubeWithoutTrend, results = get_full_quantity_visualizer(QuantityHypercubeWithoutTrend,
altitude=altitude, altitude=altitude,
study_classes=study_classes).visualize_year_trend_test(add_detailed_plots=True) study_classes=study_classes).visualize_year_trend_test(
add_detailed_plots=True)
study_class_to_year = dict(zip(study_classes, [t[1] for t in results])) study_class_to_year = dict(zip(study_classes, [t[1] for t in results]))
for study_class, exact_year in study_class_to_year.items(): for study_class, exact_year in study_class_to_year.items():
spatial_visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, [study_class], exact_starting_year=exact_year, altitude=altitude) spatial_visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, [study_class],
exact_starting_year=exact_year, altitude=altitude)
spatial_visualizer.visualize_massif_trend_test_one_altitude() spatial_visualizer.visualize_massif_trend_test_one_altitude()
def example_for_the_starting_years():
for altitude, massif_name, study_class in altitude_massif_name_and_study_class_for_poster[:]:
visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerWithoutTrendExtended, altitude=altitude,
study_classes=[study_class])
isin_parameters = [(False, [massif_name], visualizer.massif_index_level)]
visualizer.visualize_year_trend_test(isin_parameters=isin_parameters,
subtitle_specified=get_display_name_from_object_type(study_class))
if __name__ == '__main__': if __name__ == '__main__':
full_poster() # full_poster()
example_for_the_starting_years()
...@@ -595,7 +595,7 @@ class StudyVisualizer(VisualizationParameters): ...@@ -595,7 +595,7 @@ class StudyVisualizer(VisualizationParameters):
ax.xaxis.set_ticks(x[2::10]) ax.xaxis.set_ticks(x[2::10])
# self.visualize_massif_graphs(self.visualize_mean_and_max_graph, # self.visualize_massif_graphs(self.visualize_mean_and_max_graph,
# specified_massif_ids=specified_massif_ids) # specified_massif_ids=specified_massif_ids)
plot_name = 'Annual maxima of {} in {} at {}'.format(snow_abbreviation, massif_name, altitude) plot_name = 'Annual maxima of {} in {} at {}m'.format(snow_abbreviation, massif_name, altitude)
self.plot_name = plot_name self.plot_name = plot_name
self.show_or_save_to_file(add_classic_title=False) self.show_or_save_to_file(add_classic_title=False)
ax.clear() ax.clear()
......
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