Commit f9ad9960 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[STATIONS] add distance on comparisons_visualization graphs

parent 5a5e2554
No related merge requests found
Showing with 18 additions and 4 deletions
+18 -4
...@@ -29,6 +29,6 @@ def example(): ...@@ -29,6 +29,6 @@ def example():
if __name__ == '__main__': if __name__ == '__main__':
# visualize_fast_comparison() # visualize_fast_comparison()
# visualize_all_stations() # visualize_all_stations()
visualize_non_nan_station() # visualize_non_nan_station()
# example() example()
...@@ -12,6 +12,9 @@ from experiment.meteo_france_data.stations_data.comparison_analysis import Compa ...@@ -12,6 +12,9 @@ from experiment.meteo_france_data.stations_data.comparison_analysis import Compa
REANALYSE_STR, ALTITUDE_COLUMN_NAME REANALYSE_STR, ALTITUDE_COLUMN_NAME
from extreme_estimator.extreme_models.result_from_fit import ResultFromIsmev from extreme_estimator.extreme_models.result_from_fit import ResultFromIsmev
from extreme_estimator.extreme_models.utils import r, safe_run_r_estimator, ro 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): class ComparisonsVisualization(VisualizationParameters):
...@@ -71,13 +74,24 @@ class ComparisonsVisualization(VisualizationParameters): ...@@ -71,13 +74,24 @@ class ComparisonsVisualization(VisualizationParameters):
assert sum(ind) > 0 assert sum(ind) > 0
df = df.loc[ind] # type: pd.DataFrame df = df.loc[ind] # type: pd.DataFrame
colors_station = ['r', 'tab:orange', 'tab:purple', 'm', 'k'] 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()): for color, (i, s) in zip(colors_station, df.iterrows()):
label = i label = i
label += ' ({}m)'.format(s[ALTITUDE_COLUMN_NAME]) 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_color = color if REANALYSE_STR not in label else 'g'
plot_function(ax, s_values, label, plot_color) 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}) ax.legend(prop={'size': 5})
if show: if show:
......
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