Commit 49e03e7f authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[HYPERCUBE VISUALIZATION] modify first starting year for the full parameters....

[HYPERCUBE VISUALIZATION] modify first starting year for the full parameters. add main starting years to study cluster of starting year for a single altitude for a recent SWE (RSWE). add colormap for display
parent d61ff6d9
No related merge requests found
Showing with 73 additions and 9 deletions
+73 -9
...@@ -22,23 +22,24 @@ def get_full_parameters(altitude=None): ...@@ -22,23 +22,24 @@ def get_full_parameters(altitude=None):
altitudes = [altitude] altitudes = [altitude]
else: else:
altitudes = ALL_ALTITUDES[3:-6] altitudes = ALL_ALTITUDES[3:-6]
last_starting_year = 2007 first_starting_year = 1958 + 10
last_starting_year = 2017 - 10
trend_test_class = GevLocationChangePointTest trend_test_class = GevLocationChangePointTest
return altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class return altitudes, first_starting_year, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class
def get_full_altitude_visualizer(altitude_hypercube_class, study_classes, exact_starting_year=None, altitude=None): def get_full_altitude_visualizer(altitude_hypercube_class, study_classes, exact_starting_year=None, altitude=None):
altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters(altitude=altitude) altitudes, first_starting_year, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters(altitude=altitude)
if exact_starting_year is not None: if exact_starting_year is not None:
last_starting_year = None last_starting_year = None
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, exact_starting_year=exact_starting_year) trend_test_class, exact_starting_year=exact_starting_year, first_starting_year=first_starting_year)
return visualizer return visualizer
def get_full_quantity_visualizer(quantity_hypercube_class, altitude=None, study_classes=None): def get_full_quantity_visualizer(quantity_hypercube_class, altitude=None, study_classes=None):
altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters(altitude=altitude) altitudes, first_starting_year, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters(altitude=altitude)
if study_classes is None: if study_classes is None:
study_classes = SCM_STUDIES[:3] study_classes = SCM_STUDIES[:3]
visualizer = load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_year, visualizer = load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_year,
......
import time
from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusRecentSwe
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \
AltitudeHypercubeVisualizer
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \
AltitudeHypercubeVisualizerBisExtended, QuantityHypercubeWithoutTrendExtended, \
AltitudeHypercubeVisualizerWithoutTrendExtended, QuantityHypercubeWithoutTrend
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \
Altitude_Hypercube_Year_Visualizer
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_fast_hypercube_one_altitudes import \
get_fast_parameters
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_full_hypercube import \
get_full_parameters
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \
QuantityAltitudeHypercubeVisualizer
from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.utils_hypercube import \
load_altitude_visualizer, load_quantity_visualizer
from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
ALL_ALTITUDES, SCM_STUDIES
from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest
def get_fast_altitude_visualizer(altitude_hypercube_class):
altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters()
study_classes = [CrocusRecentSwe]
visualizer = 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)
return visualizer
def main_fast_spatial_repartition():
# Simply the main graph
get_fast_altitude_visualizer(Altitude_Hypercube_Year_Visualizer).visualize_massif_trend_test()
def get_full_altitude_visualizer(altitude_hypercube_class):
altitudes, first_starting_year, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters(altitude=900)
study_classes = [CrocusRecentSwe]
visualizer = 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, first_starting_year=first_starting_year)
return visualizer
def main_full_spatial_repartition():
get_full_altitude_visualizer(Altitude_Hypercube_Year_Visualizer).visualize_massif_trend_test()
def main_run():
main_full_spatial_repartition()
if __name__ == '__main__':
start = time.time()
main_run()
duration = time.time() - start
print('Full run took {}s'.format(round(duration, 1)))
...@@ -31,7 +31,7 @@ def load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_ ...@@ -31,7 +31,7 @@ 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): , exact_starting_year=None, first_starting_year=1958):
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)]
...@@ -41,6 +41,7 @@ def load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_ ...@@ -41,6 +41,7 @@ def load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_
trend_test_class=trend_test_class, trend_test_class=trend_test_class,
nb_data_reduced_for_speed=nb_data_reduced_for_speed, nb_data_reduced_for_speed=nb_data_reduced_for_speed,
last_starting_year=last_starting_year, last_starting_year=last_starting_year,
first_starting_year=first_starting_year,
exact_starting_year=exact_starting_year, exact_starting_year=exact_starting_year,
) )
assert isinstance(visualizer, AltitudeHypercubeVisualizer) assert isinstance(visualizer, AltitudeHypercubeVisualizer)
......
...@@ -6,7 +6,7 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizat ...@@ -6,7 +6,7 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizat
from experiment.trend_analysis.abstract_score import MannKendall from experiment.trend_analysis.abstract_score import MannKendall
from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusTotalSwe, ExtendedCrocusDepth, \ from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusTotalSwe, ExtendedCrocusDepth, \
ExtendedCrocusTotalSwe, CrocusDaysWithSnowOnGround ExtendedCrocusTotalSwe, CrocusDaysWithSnowOnGround, CrocusRecentSwe
from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall, ExtendedSafranSnowfall, \ from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall, ExtendedSafranSnowfall, \
SafranRainfall, \ SafranRainfall, \
SafranTemperature, SafranTotalPrecip SafranTemperature, SafranTotalPrecip
...@@ -23,7 +23,8 @@ SCM_STUDIES_NAMES = [get_display_name_from_object_type(k) for k in SCM_STUDIES] ...@@ -23,7 +23,8 @@ SCM_STUDIES_NAMES = [get_display_name_from_object_type(k) for k in SCM_STUDIES]
SCM_STUDY_NAME_TO_SCM_STUDY = dict(zip(SCM_STUDIES_NAMES, SCM_STUDIES)) SCM_STUDY_NAME_TO_SCM_STUDY = dict(zip(SCM_STUDIES_NAMES, SCM_STUDIES))
SCM_STUDY_CLASS_TO_ABBREVIATION = { SCM_STUDY_CLASS_TO_ABBREVIATION = {
SafranSnowfall: 'SF3', SafranSnowfall: 'SF3',
CrocusTotalSwe: 'SWE', CrocusTotalSwe: 'TSWE',
CrocusRecentSwe: 'RSWE',
CrocusDepth: 'SD', CrocusDepth: 'SD',
} }
......
...@@ -58,7 +58,7 @@ class AbstractUnivariateTest(object): ...@@ -58,7 +58,7 @@ class AbstractUnivariateTest(object):
d = OrderedDict() d = OrderedDict()
# d[cls.POSITIVE_TREND] = 'g--' # d[cls.POSITIVE_TREND] = 'g--'
# d[cls.NEGATIVE_TREND] = 'r--' # d[cls.NEGATIVE_TREND] = 'r--'
# d[cls.ALL_TREND] = 'k-' d[cls.ALL_TREND] = 'k-'
d[cls.NON_SIGNIFICATIVE_TREND] = 'b-' d[cls.NON_SIGNIFICATIVE_TREND] = 'b-'
# d[cls.SIGNIFICATIVE_ALL_TREND] = 'k-' # d[cls.SIGNIFICATIVE_ALL_TREND] = 'k-'
d[cls.SIGNIFICATIVE_POSITIVE_TREND] = 'g-' d[cls.SIGNIFICATIVE_POSITIVE_TREND] = 'g-'
...@@ -94,6 +94,8 @@ class AbstractUnivariateTest(object): ...@@ -94,6 +94,8 @@ class AbstractUnivariateTest(object):
return plt.cm.Greens return plt.cm.Greens
elif 'negative' in trend_type: elif 'negative' in trend_type:
return plt.cm.Reds return plt.cm.Reds
elif 'non' in trend_type:
return plt.cm.Blues
else: else:
return plt.cm.binary return plt.cm.binary
......
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