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