diff --git a/experiment/meteo_france_data/scm_models_data/abstract_study.py b/experiment/meteo_france_data/scm_models_data/abstract_study.py index 7badd0f55784a0ad7d0dccd96ff44b01d73aa809..96c348f2c10c40d765f908e907df8ffb4a3b279c 100644 --- a/experiment/meteo_france_data/scm_models_data/abstract_study.py +++ b/experiment/meteo_france_data/scm_models_data/abstract_study.py @@ -18,7 +18,7 @@ from netCDF4 import Dataset from experiment.meteo_france_data.scm_models_data.abstract_variable import AbstractVariable from experiment.meteo_france_data.scm_models_data.scm_constants import ALTITUDES, ZS_INT_23, ZS_INT_MASK, LONGITUDES, \ LATITUDES -from experiment.meteo_france_data.visualization.utils import get_km_formatter +from experiment.meteo_france_data.scm_models_data.visualization.utils import get_km_formatter from extreme_estimator.extreme_models.margin_model.margin_function.abstract_margin_function import \ AbstractMarginFunction from extreme_estimator.margin_fits.plot.create_shifted_cmap import get_color_rbga_shifted, create_colorbase_axis diff --git a/experiment/meteo_france_data/visualization/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/__init__.py similarity index 100% rename from experiment/meteo_france_data/visualization/__init__.py rename to experiment/meteo_france_data/scm_models_data/visualization/__init__.py diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/__init__.py similarity index 100% rename from experiment/meteo_france_data/visualization/hypercube_visualization/__init__.py rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/__init__.py diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py similarity index 97% rename from experiment/meteo_france_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py index d8eadaaed3570b701396d3ae29b3d3ebbf179ef5..72d51cc79c621c3102524a8a0a2531e2b5791756 100644 --- a/experiment/meteo_france_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py @@ -5,7 +5,7 @@ from typing import Dict, Tuple import matplotlib.pyplot as plt import pandas as pd -from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer +from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer from utils import cached_property, VERSION_TIME, get_display_name_from_object_type diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py similarity index 97% rename from experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py index 2e9beb56dc713df88e58b74875aeac9890c840e7..c45e49121b597dbb184119fe8498971840b7001d 100644 --- a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py @@ -1,14 +1,11 @@ -from typing import List - import matplotlib.pyplot as plt import numpy as np import pandas as pd -from experiment.meteo_france_data.visualization.hypercube_visualization.abstract_hypercube_visualizer import \ +from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.abstract_hypercube_visualizer import \ AbstractHypercubeVisualizer -from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer +from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer from experiment.trend_analysis.univariate_test.abstract_univariate_test import AbstractUnivariateTest -from utils import get_display_name_from_object_type ALTITUDES_XLABEL = 'altitudes' diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py similarity index 91% rename from experiment/meteo_france_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py index 3009fd26cd76c9c1cebeeb6f0c858279f61bc03f..e7c000b8dab37b45aa1c2ffffa277d8fdff00592 100644 --- a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py @@ -1,6 +1,6 @@ import numpy as np -from experiment.meteo_france_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \ +from experiment.meteo_france_data.scm_models_data.visualization import \ AltitudeHypercubeVisualizer diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py similarity index 91% rename from experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py index cc84a572b4a91c00a7dedb94a14fc71157cf9234..4021a1015aea172caa70373075f0b9e5ecef60eb 100644 --- a/experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py @@ -1,16 +1,16 @@ import time -from itertools import product from collections import OrderedDict +from itertools import product -from experiment.meteo_france_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \ +from experiment.meteo_france_data.scm_models_data.visualization import \ AltitudeHypercubeVisualizer -from experiment.meteo_france_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \ +from experiment.meteo_france_data.scm_models_data.visualization import \ Altitude_Hypercube_Year_Visualizer -from experiment.meteo_france_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \ +from experiment.meteo_france_data.scm_models_data.visualization import \ QuantityAltitudeHypercubeVisualizer -from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import ALL_ALTITUDES, \ +from experiment.meteo_france_data.scm_models_data.visualization import ALL_ALTITUDES, \ SCM_STUDIES, study_iterator, study_iterator_global -from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer +from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest, \ GevScaleChangePointTest, GevShapeChangePointTest from utils import get_display_name_from_object_type @@ -102,7 +102,8 @@ def full_altitude_year_hypercube(): for study_class in SCM_STUDIES[:1]: for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, GevShapeChangePointTest][:1]: - for last_starting_year in [1967, 1977, 1987, 1997, 2007, None][-1:]: + years = [1967, 1977, 1987, 1997, 2007, None][:-1][::-1] + for last_starting_year in years: visualizers = [ StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) for study in study_iterator(study_class=study_class, only_first_one=only_first_one, @@ -110,7 +111,8 @@ def full_altitude_year_hypercube(): altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) visualizer = Altitude_Hypercube_Year_Visualizer(altitude_to_visualizer, save_to_file=save_to_file, - trend_test_class=trend_test_class, nb_data_reduced_for_speed=nb_data_reduced_for_speed, + trend_test_class=trend_test_class, + nb_data_reduced_for_speed=nb_data_reduced_for_speed, last_starting_year=last_starting_year) visualizer.visualize_year_trend_test() visualizer.visualize_massif_trend_test() diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py similarity index 93% rename from experiment/meteo_france_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py index 12f31e37821221de39c6edeca004a4c6927caaf5..399a075c247bae2afe95a8a49d68ed2b25508b6b 100644 --- a/experiment/meteo_france_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/quantity_altitude_visualizer.py @@ -1,6 +1,6 @@ import pandas as pd -from experiment.meteo_france_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \ +from experiment.meteo_france_data.scm_models_data.visualization import \ AltitudeHypercubeVisualizer diff --git a/experiment/meteo_france_data/visualization/studies_visualization/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/__init__.py similarity index 100% rename from experiment/meteo_france_data/visualization/studies_visualization/__init__.py rename to experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/__init__.py diff --git a/experiment/meteo_france_data/visualization/studies_visualization/main_studies_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/main_studies_visualizer.py similarity index 87% rename from experiment/meteo_france_data/visualization/studies_visualization/main_studies_visualizer.py rename to experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/main_studies_visualizer.py index 9cd3132191b1d911a0b39753d2ffff4984307f6f..4b47fcbe6efd2564ec9e3b112bf2d6a76b9d40bd 100644 --- a/experiment/meteo_france_data/visualization/studies_visualization/main_studies_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/main_studies_visualizer.py @@ -4,13 +4,13 @@ from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test im GevScaleChangePointTest, GevShapeChangePointTest from experiment.trend_analysis.univariate_test.abstract_univariate_test import MannKendallTrendTest from experiment.meteo_france_data.scm_models_data.safran.safran import ExtendedSafranTotalPrecip -from experiment.meteo_france_data.visualization.studies_visualization.studies import Studies -from experiment.meteo_france_data.visualization.studies_visualization.studies_visualizer import StudiesVisualizer, \ +from experiment.meteo_france_data.scm_models_data.visualization import Studies +from experiment.meteo_france_data.scm_models_data.visualization import StudiesVisualizer, \ AltitudeVisualizer -from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import ALL_ALTITUDES, \ +from experiment.meteo_france_data.scm_models_data.visualization import ALL_ALTITUDES, \ study_iterator_global, SCM_STUDIES -from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer +from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer from collections import OrderedDict diff --git a/experiment/meteo_france_data/visualization/studies_visualization/studies.py b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies.py similarity index 100% rename from experiment/meteo_france_data/visualization/studies_visualization/studies.py rename to experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies.py diff --git a/experiment/meteo_france_data/visualization/studies_visualization/studies_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies_visualizer.py similarity index 97% rename from experiment/meteo_france_data/visualization/studies_visualization/studies_visualizer.py rename to experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies_visualizer.py index bdb536e2a085fc1e35f548b3079ff0c91c74b556..c9c979c4dcf83d3b7c9f8bc72205737bebb0d017 100644 --- a/experiment/meteo_france_data/visualization/studies_visualization/studies_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/studies_visualization/studies_visualizer.py @@ -11,10 +11,10 @@ from matplotlib.lines import Line2D from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy from experiment.trend_analysis.univariate_test.abstract_univariate_test import AbstractUnivariateTest -from experiment.meteo_france_data.visualization.studies_visualization.studies import \ +from experiment.meteo_france_data.scm_models_data.visualization import \ Studies -from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer -from experiment.meteo_france_data.visualization.utils import plot_df +from experiment.meteo_france_data.scm_models_data.visualization import StudyVisualizer +from experiment.meteo_france_data.scm_models_data.visualization.utils import plot_df from utils import cached_property, get_display_name_from_object_type, VERSION_TIME diff --git a/experiment/meteo_france_data/visualization/study_visualization/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/__init__.py similarity index 100% rename from experiment/meteo_france_data/visualization/study_visualization/__init__.py rename to experiment/meteo_france_data/scm_models_data/visualization/study_visualization/__init__.py diff --git a/experiment/meteo_france_data/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py similarity index 98% rename from experiment/meteo_france_data/visualization/study_visualization/main_study_visualizer.py rename to experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py index 6bed93e8dd8a8816f9251ed596cd3ea4bfcc14f0..e626ad6fcfbbc88f25e3274285f583bcd268c740 100644 --- a/experiment/meteo_france_data/visualization/study_visualization/main_study_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py @@ -1,6 +1,8 @@ import time from typing import List +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \ + StudyVisualizer 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.crocus.crocus import CrocusDepth, CrocusSwe, ExtendedCrocusDepth, \ @@ -8,7 +10,6 @@ from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDep from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall, ExtendedSafranSnowfall, SafranRainfall, \ SafranTemperature, SafranTotalPrecip -from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer from collections import OrderedDict from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest diff --git a/experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py similarity index 99% rename from experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py rename to experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py index aa6d260a1d51f88c6220feeb4a560324074a0129..ad99f02945112a21467e7052786e7a98654880ed 100644 --- a/experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py @@ -15,7 +15,7 @@ from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test im from experiment.trend_analysis.univariate_test.abstract_univariate_test import AbstractUnivariateTest from experiment.trend_analysis.non_stationary_trends import \ ConditionalIndedendenceLocationTrendTest, MaxStableLocationTrendTest, IndependenceLocationTrendTest -from experiment.meteo_france_data.visualization.utils import create_adjusted_axes +from experiment.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes from experiment.utils import average_smoothing_with_sliding_window from extreme_estimator.estimator.full_estimator.abstract_full_estimator import \ FullEstimatorInASingleStepWithSmoothMargin diff --git a/experiment/meteo_france_data/visualization/utils.py b/experiment/meteo_france_data/scm_models_data/visualization/utils.py similarity index 100% rename from experiment/meteo_france_data/visualization/utils.py rename to experiment/meteo_france_data/scm_models_data/visualization/utils.py diff --git a/experiment/meteo_france_data/stations_data/__init__.py b/experiment/meteo_france_data/stations_data/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiment/meteo_france_data/stations_data/comparison_analysis.py b/experiment/meteo_france_data/stations_data/comparison_analysis.py index 76c7d3da9035cf72961aa104b17a26631cd1881e..daf5e81938bbc58c188ef92114bd3977e0b4f4f6 100644 --- a/experiment/meteo_france_data/stations_data/comparison_analysis.py +++ b/experiment/meteo_france_data/stations_data/comparison_analysis.py @@ -5,11 +5,10 @@ from typing import List from cached_property import cached_property from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall -from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import \ +from experiment.meteo_france_data.scm_models_data.visualization import \ ALL_ALTITUDES from extreme_estimator.estimator.full_estimator.abstract_full_estimator import \ FullEstimatorInASingleStepWithSmoothMargin -from extreme_estimator.extreme_models.margin_model.linear_margin_model import LinearAllParametersAllDimsMarginModel from extreme_estimator.extreme_models.max_stable_model.abstract_max_stable_model import CovarianceFunction from extreme_estimator.extreme_models.max_stable_model.max_stable_models import ExtremalT, BrownResnick from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates @@ -237,67 +236,3 @@ class ComparisonAnalysis(object): different_sign = [k for k, v in coefs[0].items() if np.sign(coefs[1][k]) != np.sign(v) ] print('All linear coefficient have the same sign: {}, different_signs for: {}'.format(len(different_sign) == 0, different_sign)) -def choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan(): - for margin in [50, 100, 150, 200, 250, 300][2:3]: - for altitude in [900, 1200, 1800][:1]: - for nb in range(1, 4): - s = ComparisonAnalysis(altitude=altitude, nb_border_data_to_remove=nb, margin=margin) - print(margin, altitude, nb, 'nb massifs', len(s.intersection_massif_names), 'nb stations', - len(s.stations_observations), 'nb observations', s.stations_observations.nb_obs, - s.study_observations.nb_obs, - s.stations_coordinates.index) - - -def run_comparison_for_optimal_parameters_for_altitude_900(): - for nb in [0, 1, 2][:]: - for transformation_class in [None, BetweenZeroAndOneNormalization][1:]: - comparison = ComparisonAnalysis(altitude=900, nb_border_data_to_remove=nb, margin=150, - exclude_some_massifs_from_the_intersection=nb == 2, - transformation_class=transformation_class, - normalize_observations=True) - print('\n-----------\nnb:', nb, comparison.intersection_massif_names) - # margin_model_classes = [LinearShapeAllDimsMarginModel, LinearLocationAllDimsMarginModel, - # LinearAllParametersAllDimsMarginModel] - for margin_model_class in [LinearAllParametersAllDimsMarginModel]: - print(get_display_name_from_object_type(margin_model_class)) - comparison.spatial_comparison(margin_model_class) - - -""" -Comparaison données de re-analysis et données de stations - -J'ai utilisé le fichier "PrecipitationsAvalanches_MaxPrecipit_ParPoste_ParHiver_traites.xls" - -Après des analyses avec la fonction 'choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan' -j'ai choisis de lancer mes analyses avec: - -une altitude de 900m - -une margin de 150m (donc je selectionne toutes les stations entre 750m et 1050m). -Je ne choisis que des stations qui ont des observations complètes sur toute la periode d'observation. -et je m'asssure de n'avoir une seule station par massif (qui appartient à l intersection des massifs entre les study et les stations) - -Souvent les observations manquantes se situaient dans les premières ou dans les dernières années -j'ai donc ajouté un parametre nb_to_remove_border qui enlever ces observations (à la fois pour les study et les stations). -Ce parametre entrainent donc des datasets avec moins d observations, mais avec plus de masssifs/stations - -Par contre, dans le cas nb_to_remove=2, il y avait de grosses différences si j'incluais ou non le massif Mercantour -donc en tout attendant de mieux comprendre, j'ai prefere exclure ce massif dans ce cas - -Dans tous les cas, nb_to_remove de 0 à 2 -pour n'importe quel modele de marges -et pour un max stable BrownResnick ou ExtremalT -alors le signe des coefficient de marges selon les coordonées Lambert sont toujours les mêmes que l'on utilise les données -de reanalysis ou les données de stations -""" - - -""" -A way to improve the analysis would be to have another altitude of reference with a lot of data -But for the other altitude, we have data issues because there is a Nan in the middle of the data -Instead of removing on the side, I should remove the years that concerns as much station from the same altitude level -I should find the "optimal" years to remove -Then I should find a way to remove the same years in the study -""" - -if __name__ == '__main__': - run_comparison_for_optimal_parameters_for_altitude_900() - # choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan() diff --git a/experiment/meteo_france_data/stations_data/main_spatial_comparison.py b/experiment/meteo_france_data/stations_data/main_spatial_comparison.py new file mode 100644 index 0000000000000000000000000000000000000000..c3b50c4c8c5b727ee1ef4c67ca841b043961794f --- /dev/null +++ b/experiment/meteo_france_data/stations_data/main_spatial_comparison.py @@ -0,0 +1,71 @@ +from experiment.meteo_france_data.stations_data.comparison_analysis import ComparisonAnalysis +from extreme_estimator.extreme_models.margin_model.linear_margin_model import LinearAllParametersAllDimsMarginModel +from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.uniform_normalization import \ + BetweenZeroAndOneNormalization +from utils import get_display_name_from_object_type + + +def choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan(): + for margin in [50, 100, 150, 200, 250, 300][2:3]: + for altitude in [900, 1200, 1800][:1]: + for nb in range(1, 4): + s = ComparisonAnalysis(altitude=altitude, nb_border_data_to_remove=nb, margin=margin) + print(margin, altitude, nb, 'nb massifs', len(s.intersection_massif_names), 'nb stations', + len(s.stations_observations), 'nb observations', s.stations_observations.nb_obs, + s.study_observations.nb_obs, + s.stations_coordinates.index) + + +def run_comparison_for_optimal_parameters_for_altitude_900(): + for nb in [0, 1, 2][:]: + for transformation_class in [None, BetweenZeroAndOneNormalization][1:]: + comparison = ComparisonAnalysis(altitude=900, nb_border_data_to_remove=nb, margin=150, + exclude_some_massifs_from_the_intersection=nb == 2, + transformation_class=transformation_class, + normalize_observations=True) + print('\n-----------\nnb:', nb, comparison.intersection_massif_names) + # margin_model_classes = [LinearShapeAllDimsMarginModel, LinearLocationAllDimsMarginModel, + # LinearAllParametersAllDimsMarginModel] + for margin_model_class in [LinearAllParametersAllDimsMarginModel]: + print(get_display_name_from_object_type(margin_model_class)) + comparison.spatial_comparison(margin_model_class) + + +""" +Comparaison données de re-analysis et données de stations + +J'ai utilisé le fichier "PrecipitationsAvalanches_MaxPrecipit_ParPoste_ParHiver_traites.xls" + +Après des analyses avec la fonction 'choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan' +j'ai choisis de lancer mes analyses avec: + -une altitude de 900m + -une margin de 150m (donc je selectionne toutes les stations entre 750m et 1050m). +Je ne choisis que des stations qui ont des observations complètes sur toute la periode d'observation. +et je m'asssure de n'avoir une seule station par massif (qui appartient à l intersection des massifs entre les study et les stations) + +Souvent les observations manquantes se situaient dans les premières ou dans les dernières années +j'ai donc ajouté un parametre nb_to_remove_border qui enlever ces observations (à la fois pour les study et les stations). +Ce parametre entrainent donc des datasets avec moins d observations, mais avec plus de masssifs/stations + +Par contre, dans le cas nb_to_remove=2, il y avait de grosses différences si j'incluais ou non le massif Mercantour +donc en tout attendant de mieux comprendre, j'ai prefere exclure ce massif dans ce cas + +Dans tous les cas, nb_to_remove de 0 à 2 +pour n'importe quel modele de marges +et pour un max stable BrownResnick ou ExtremalT +alors le signe des coefficient de marges selon les coordonées Lambert sont toujours les mêmes que l'on utilise les données +de reanalysis ou les données de stations +""" + + +""" +A way to improve the analysis would be to have another altitude of reference with a lot of data +But for the other altitude, we have data issues because there is a Nan in the middle of the data +Instead of removing on the side, I should remove the years that concerns as much station from the same altitude level +I should find the "optimal" years to remove +Then I should find a way to remove the same years in the study +""" + +if __name__ == '__main__': + run_comparison_for_optimal_parameters_for_altitude_900() + # choice_of_altitude_and_nb_border_data_to_remove_to_get_data_without_nan() diff --git a/experiment/meteo_france_data/stations_data/main_station_comparison.py b/experiment/meteo_france_data/stations_data/main_station_comparison.py new file mode 100644 index 0000000000000000000000000000000000000000..bbfcfd17c077418f3ae4d3a253794e7195e27a64 --- /dev/null +++ b/experiment/meteo_france_data/stations_data/main_station_comparison.py @@ -0,0 +1,7 @@ +from experiment.meteo_france_data.stations_data.comparison_analysis import ComparisonAnalysis + +if __name__ == '__main__': + comparison = ComparisonAnalysis(altitude=900, nb_border_data_to_remove=nb, margin=150, + exclude_some_massifs_from_the_intersection=nb == 2, + transformation_class=transformation_class, + normalize_observations=True) \ No newline at end of file diff --git a/experiment/meteo_france_data/stations_data/visualization/__init__.py b/experiment/meteo_france_data/stations_data/visualization/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/__init__.py b/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/comparisons_visualization.py b/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/comparisons_visualization.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/main_comparison_visualization.py b/experiment/meteo_france_data/stations_data/visualization/comparisons_visualization/main_comparison_visualization.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/extreme_estimator/extreme_models/margin_model/margin_function/abstract_margin_function.py b/extreme_estimator/extreme_models/margin_model/margin_function/abstract_margin_function.py index 7d9c2a7af6d1cd7ed4c0c2992664cae008054bdb..571507699fc16695f9bbc00f87566ac34acdab93 100644 --- a/extreme_estimator/extreme_models/margin_model/margin_function/abstract_margin_function.py +++ b/extreme_estimator/extreme_models/margin_model/margin_function/abstract_margin_function.py @@ -1,11 +1,10 @@ from typing import Dict, List -import matplotlib.cm as cm import matplotlib.pyplot as plt import numpy as np import pandas as pd -from experiment.meteo_france_data.visualization.utils import create_adjusted_axes +from experiment.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes from extreme_estimator.margin_fits.gev.gev_params import GevParams from extreme_estimator.margin_fits.plot.create_shifted_cmap import imshow_shifted from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates diff --git a/test/test_experiment/test_SCM_study.py b/test/test_experiment/test_SCM_study.py index eeed25f937ffeca2b6f885fc7855b5c3ea44bb2c..05c0e83d9dfe22d94bae87ac11a5c729ea7690cb 100644 --- a/test/test_experiment/test_SCM_study.py +++ b/test/test_experiment/test_SCM_study.py @@ -8,9 +8,10 @@ from experiment.meteo_france_data.scm_models_data.cumulated_study import NB_DAYS from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall, ExtendedSafranSnowfall, \ SafranTemperature, \ SafranTotalPrecip -from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import study_iterator, \ - study_iterator_global, SCM_STUDIES, ALL_ALTITUDES -from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \ + study_iterator, study_iterator_global, SCM_STUDIES, ALL_ALTITUDES +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \ + StudyVisualizer from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest from utils import get_display_name_from_object_type diff --git a/test/test_experiment/test_coordinate_sensitivity.py b/test/test_experiment/test_coordinate_sensitivity.py index da06bb49cdc1cd8358c3afbe9e2d8f966f019310..75f4525b7914dd42694e22d9ca85cadbfc16ca25 100644 --- a/test/test_experiment/test_coordinate_sensitivity.py +++ b/test/test_experiment/test_coordinate_sensitivity.py @@ -1,11 +1,12 @@ import unittest from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSwe -from experiment.meteo_france_data.visualization.study_visualization.main_study_visualizer import \ +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \ study_iterator_global +from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \ + StudyVisualizer from experiment.trend_analysis.non_stationary_trends import \ ConditionalIndedendenceLocationTrendTest -from experiment.meteo_france_data.visualization.study_visualization.study_visualizer import StudyVisualizer from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.uniform_normalization import \ BetweenZeroAndOneNormalization, BetweenZeroAndOneNormalizationMinEpsilon, BetweenZeroAndOneNormalizationMaxEpsilon from utils import get_display_name_from_object_type