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

[refactor] update main_season_repartition_of_maxima.py to compare swe results,...

[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.
parent bc920bf6
No related merge requests found
Showing with 12 additions and 7 deletions
+12 -7
...@@ -98,9 +98,7 @@ class AbstractAdamontStudy(AbstractStudy): ...@@ -98,9 +98,7 @@ class AbstractAdamontStudy(AbstractStudy):
datasets = self.datasets_for_dates if maxima_date else self.datasets datasets = self.datasets_for_dates if maxima_date else self.datasets
for dataset, real_scenario in zip(datasets, self.adamont_real_scenarios): for dataset, real_scenario in zip(datasets, self.adamont_real_scenarios):
annual_maxima_data = np.array(dataset.variables[self.indicator_name(maxima_date)]) annual_maxima_data = np.array(dataset.variables[self.indicator_name(maxima_date)])
# Add potential transformation for the maxima annual_maxima_data = self.variable_class.transform_annual_maxima(annual_maxima_data, maxima_date)
if not maxima_date:
annual_maxima_data = self.variable_class.transform_annual_maxima(annual_maxima_data)
assert annual_maxima_data.shape[1] == len(self.column_mask) assert annual_maxima_data.shape[1] == len(self.column_mask)
annual_maxima_data = annual_maxima_data[:, 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) year_min, year_max = get_year_min_and_year_max_from_scenario(real_scenario, self.gcm_rcm_couple)
......
...@@ -32,8 +32,11 @@ class AbstractAdamontVariable(AbstractVariable): ...@@ -32,8 +32,11 @@ class AbstractAdamontVariable(AbstractVariable):
return indicator_name.replace('-', '_').capitalize() return indicator_name.replace('-', '_').capitalize()
@classmethod @classmethod
def transform_annual_maxima(cls, annual_maxima): def transform_annual_maxima(cls, annual_maxima_data, maxima_date):
return annual_maxima if maxima_date:
return annual_maxima_data.astype(int)
else:
return annual_maxima_data
class SafranSnowfallSimulationVariable(AbstractAdamontVariable): class SafranSnowfallSimulationVariable(AbstractAdamontVariable):
...@@ -85,5 +88,9 @@ class CrocusTotalSnowLoadVariable(CrocusSweSimulationVariable): ...@@ -85,5 +88,9 @@ class CrocusTotalSnowLoadVariable(CrocusSweSimulationVariable):
UNIT = TotalSnowLoadVariable.UNIT UNIT = TotalSnowLoadVariable.UNIT
@classmethod @classmethod
def transform_annual_maxima(cls, annual_maxima): def transform_annual_maxima(cls, annual_maxima_data, maxima_date):
return AbstractSnowLoadVariable.transform_swe_into_snow_load(annual_maxima) 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)
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