From c94d4dce038f4aff8543cb6f5799fcee1f68d8c6 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Fri, 26 Feb 2021 17:45:18 +0100
Subject: [PATCH] [refactor] update main_season_repartition_of_maxima.py to
 compare swe results, for safran 2019 and adamont v2, to show the limit of
 their indicator.

---
 .../adamont_data/abstract_adamont_study.py        |  4 +---
 .../adamont_data/adamont/adamont_variables.py     | 15 +++++++++++----
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/extreme_data/meteo_france_data/adamont_data/abstract_adamont_study.py b/extreme_data/meteo_france_data/adamont_data/abstract_adamont_study.py
index 85aa30be..a71f6989 100644
--- a/extreme_data/meteo_france_data/adamont_data/abstract_adamont_study.py
+++ b/extreme_data/meteo_france_data/adamont_data/abstract_adamont_study.py
@@ -98,9 +98,7 @@ class AbstractAdamontStudy(AbstractStudy):
         datasets = self.datasets_for_dates if maxima_date else self.datasets
         for dataset, real_scenario in zip(datasets, self.adamont_real_scenarios):
             annual_maxima_data = np.array(dataset.variables[self.indicator_name(maxima_date)])
-            # Add potential transformation for the maxima
-            if not maxima_date:
-                annual_maxima_data = self.variable_class.transform_annual_maxima(annual_maxima_data)
+            annual_maxima_data = self.variable_class.transform_annual_maxima(annual_maxima_data, maxima_date)
             assert annual_maxima_data.shape[1] == len(self.column_mask)
             annual_maxima_data = annual_maxima_data[:, self.column_mask]
             year_min, year_max = get_year_min_and_year_max_from_scenario(real_scenario, self.gcm_rcm_couple)
diff --git a/extreme_data/meteo_france_data/adamont_data/adamont/adamont_variables.py b/extreme_data/meteo_france_data/adamont_data/adamont/adamont_variables.py
index c9273e31..c6338dd3 100644
--- a/extreme_data/meteo_france_data/adamont_data/adamont/adamont_variables.py
+++ b/extreme_data/meteo_france_data/adamont_data/adamont/adamont_variables.py
@@ -32,8 +32,11 @@ class AbstractAdamontVariable(AbstractVariable):
         return indicator_name.replace('-', '_').capitalize()
 
     @classmethod
-    def transform_annual_maxima(cls, annual_maxima):
-        return annual_maxima
+    def transform_annual_maxima(cls, annual_maxima_data, maxima_date):
+        if maxima_date:
+            return annual_maxima_data.astype(int)
+        else:
+            return annual_maxima_data
 
 
 class SafranSnowfallSimulationVariable(AbstractAdamontVariable):
@@ -85,5 +88,9 @@ class CrocusTotalSnowLoadVariable(CrocusSweSimulationVariable):
     UNIT = TotalSnowLoadVariable.UNIT
 
     @classmethod
-    def transform_annual_maxima(cls, annual_maxima):
-        return AbstractSnowLoadVariable.transform_swe_into_snow_load(annual_maxima)
+    def transform_annual_maxima(cls, annual_maxima_data, maxima_date):
+        annual_maxima_data = super().transform_annual_maxima(annual_maxima_data, maxima_date)
+        if maxima_date:
+            return annual_maxima_data
+        else:
+            return AbstractSnowLoadVariable.transform_swe_into_snow_load(annual_maxima_data)
-- 
GitLab