Commit 336c9095 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[STATION DATA] comparison for visualization difference

parent 9676fc5f
No related merge requests found
Showing with 49 additions and 8 deletions
+49 -8
...@@ -57,9 +57,9 @@ def quick_metric_analysis(): ...@@ -57,9 +57,9 @@ def quick_metric_analysis():
if __name__ == '__main__': if __name__ == '__main__':
# wrong_example3() # wrong_example3()
# visualize_fast_comparison() # visualize_fast_comparison()
# visualize_all_stations() visualize_all_stations()
# quick_metric_analysis() # quick_metric_analysis()
# wrong_example2() # wrong_example2()
visualize_non_nan_station() # visualize_non_nan_station()
# example() # example()
from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
ALL_ALTITUDES_WITH_20_STATIONS_AT_LEAST, ALL_ALTITUDES
from experiment.meteo_france_data.stations_data.visualization.comparisons_visualization.comparisons_visualization import \
ComparisonsVisualization, path_backup_csv_file
from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest, \
GevScaleChangePointTest, GevShapeChangePointTest
# Create the map with the average error per massif
def visualize_all_stations_all_altitudes():
vizu = ComparisonsVisualization(altitudes=ALL_ALTITUDES, margin=150, keep_only_station_without_nan_values=True)
vizu.visualize_maximum(visualize_metric_only=False)
# Zoom on each massif
def example():
vizu = ComparisonsVisualization(altitudes=[600], normalize_observations=False, keep_only_station_without_nan_values=False)
vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Mercantour', show=True, direct=True)
# vizu = ComparisonsVisualization(altitudes=[300], normalize_observations=False, keep_only_station_without_nan_values=False)
# vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Haut_Var-Haut_Verdon', show=True, direct=True)
# vizu = ComparisonsVisualization(altitudes=[1800], normalize_observations=False, keep_only_station_without_nan_values=False)
# vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Grandes-Rousses', show=True, direct=True)
def example_good():
# vizu = ComparisonsVisualization(altitudes=[900], normalize_observations=False, keep_only_station_without_nan_values=False)
# vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Beaufortain', show=True, direct=True)
vizu = ComparisonsVisualization(altitudes=[900], normalize_observations=False, keep_only_station_without_nan_values=False)
vizu._visualize_ax_main(vizu.plot_maxima, vizu.comparisons[0], 'Oisans', show=True, direct=True)
if __name__ == '__main__':
# visualize_all_stations_all_altitudes()
# example()
example_good()
...@@ -137,17 +137,22 @@ class ComparisonsVisualization(VisualizationParameters): ...@@ -137,17 +137,22 @@ class ComparisonsVisualization(VisualizationParameters):
cmap=plt.cm.Greens, cmap=plt.cm.Greens,
vmin=0, vmin=0,
vmax=100, vmax=100,
label='agreement on trend type classification (%)' ) label='agreement on trend type classification (%)')
# print(df.sort_values([MAE_COLUMN_NAME]))
# Display the mae score # Display the mae score
serie_mae = df.groupby([MASSIF_COLUMN_NAME]).mean()[MAE_COLUMN_NAME] serie_mae = df.groupby([MASSIF_COLUMN_NAME]).mean()[MAE_COLUMN_NAME]
# Display the sorted mae serie
AbstractStudy.visualize_study(massif_name_to_value=serie_mae.to_dict(), AbstractStudy.visualize_study(massif_name_to_value=serie_mae.to_dict(),
default_color_for_missing_massif='b', default_color_for_missing_massif='w',
cmap=plt.cm.Reds, cmap=plt.cm.Reds,
vmin=0, vmin=0,
vmax=65, vmax=65,
label='average absolute difference between annual maxima snowfall (mm)') label='average absolute difference between annual maxima snowfall (mm)',
scaled=False)
def _visualize_ax_main(self, plot_function, comparison: ComparisonAnalysis, massif, ax=None, show=False): def _visualize_ax_main(self, plot_function, comparison: ComparisonAnalysis, massif, ax=None, show=False, direct=False):
if ax is None: if ax is None:
_, ax = plt.subplots(1, 1, figsize=self.figsize) _, ax = plt.subplots(1, 1, figsize=self.figsize)
ax2 = ax.twinx() ax2 = ax.twinx()
...@@ -199,7 +204,8 @@ class ComparisonsVisualization(VisualizationParameters): ...@@ -199,7 +204,8 @@ class ComparisonsVisualization(VisualizationParameters):
ordered_value_dict.update(plot_ordered_value_dict) ordered_value_dict.update(plot_ordered_value_dict)
ax.set_title('{} at {}m'.format(massif, comparison.altitude)) ax.set_title('{} at {}m'.format(massif, comparison.altitude))
ax.legend(prop={'size': 5}) size = 5 if not direct else 20
ax.legend(prop={'size': size})
# Store only results for the stations # Store only results for the stations
if REANALYSE_STR not in i: if REANALYSE_STR not in i:
...@@ -251,7 +257,6 @@ class ComparisonsVisualization(VisualizationParameters): ...@@ -251,7 +257,6 @@ class ComparisonsVisualization(VisualizationParameters):
ax2.plot(starting_years[::step], [t[4] for t in trend_test_res][::step], color=plot_color, marker='x') ax2.plot(starting_years[::step], [t[4] for t in trend_test_res][::step], color=plot_color, marker='x')
# Plot maxima # Plot maxima
ax.grid() ax.grid()
# print("here")
ax.plot(years, maxima, label=label, color=plot_color) ax.plot(years, maxima, label=label, color=plot_color)
return ordered_dict return ordered_dict
......
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