From f9ad9960c910f79501fa6e4bd580462cc0624731 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Wed, 5 Jun 2019 10:32:25 +0200
Subject: [PATCH] [STATIONS] add distance on comparisons_visualization graphs

---
 .../stations_data/main_station_comparison.py   |  4 ++--
 .../comparisons_visualization.py               | 18 ++++++++++++++++--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/experiment/meteo_france_data/stations_data/main_station_comparison.py b/experiment/meteo_france_data/stations_data/main_station_comparison.py
index 27a7a13a..0a060b0c 100644
--- a/experiment/meteo_france_data/stations_data/main_station_comparison.py
+++ b/experiment/meteo_france_data/stations_data/main_station_comparison.py
@@ -29,6 +29,6 @@ def example():
 if __name__ == '__main__':
     # visualize_fast_comparison()
     # visualize_all_stations()
-    visualize_non_nan_station()
-    # example()
+    # visualize_non_nan_station()
+    example()
 
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
index d07e610a..454382ec 100644
--- 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
@@ -12,6 +12,9 @@ from experiment.meteo_france_data.stations_data.comparison_analysis import Compa
     REANALYSE_STR, ALTITUDE_COLUMN_NAME
 from extreme_estimator.extreme_models.result_from_fit import ResultFromIsmev
 from extreme_estimator.extreme_models.utils import r, safe_run_r_estimator, ro
+from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
+
+DISTANCE_COLUMN_NAME = 'distance'
 
 
 class ComparisonsVisualization(VisualizationParameters):
@@ -71,13 +74,24 @@ class ComparisonsVisualization(VisualizationParameters):
         assert sum(ind) > 0
         df = df.loc[ind]  # type: pd.DataFrame
         colors_station = ['r', 'tab:orange', 'tab:purple', 'm', 'k']
+        # Compute a distance column
+        ind_location = df.index.str.contains(REANALYSE_STR)
+        df[DISTANCE_COLUMN_NAME] = 0
+        for coordinate_name in [AbstractCoordinates.COORDINATE_X, AbstractCoordinates.COORDINATE_Y]:
+            print(df[DISTANCE_COLUMN_NAME])
+            center = df.loc[ind_location, coordinate_name].values[0]
+            print(center)
+            df[DISTANCE_COLUMN_NAME] += (center - df[coordinate_name]).pow(2)
+        df[DISTANCE_COLUMN_NAME] = df[DISTANCE_COLUMN_NAME].pow(0.5)
+        df[DISTANCE_COLUMN_NAME] = (df[DISTANCE_COLUMN_NAME] / 1000).round(1)
         for color, (i, s) in zip(colors_station, df.iterrows()):
             label = i
             label += ' ({}m)'.format(s[ALTITUDE_COLUMN_NAME])
-            s_values = s.iloc[3:].to_dict()
+            label += ' ({}km)'.format(s[DISTANCE_COLUMN_NAME])
+            s_values = s.iloc[3:-1].to_dict()
             plot_color = color if REANALYSE_STR not in label else 'g'
             plot_function(ax, s_values, label, plot_color)
-            ax.set_title('{} at {}'.format(massif, comparison.altitude))
+            ax.set_title('{} at {}m'.format(massif, comparison.altitude))
             ax.legend(prop={'size': 5})
 
         if show:
-- 
GitLab