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

[contrasting] add crocus snow density for some study for thierry

parent 71c514f8
No related merge requests found
Showing with 33 additions and 1 deletion
+33 -1
from collections import OrderedDict
from cached_property import cached_property
from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import Crocus, CrocusSweTotal
from extreme_data.meteo_france_data.scm_models_data.crocus.crocus_variables import CrocusDensityVariable
class CrocusSnowDensity(Crocus):
def __init__(self, *args, **kwargs):
super().__init__(CrocusDensityVariable, *args, **kwargs)
study_swe = CrocusSweTotal(*args, **kwargs)
self._year_to_annual_maxima = OrderedDict()
for year in study_swe.ordered_years:
daily_time_series_swe = study_swe.year_to_daily_time_serie_array[year]
daily_time_series_snow_depth = self.year_to_daily_time_serie_array[year]
daily_time_series_density = daily_time_series_swe / daily_time_series_snow_depth
ind_to_exclude = daily_time_series_snow_depth < 0.1
daily_time_series_density[ind_to_exclude] = 0
self._year_to_annual_maxima[year] = daily_time_series_density.max(axis=0)
@cached_property
def year_to_annual_maxima(self) -> OrderedDict:
return self._year_to_annual_maxima
if __name__ == '__main__':
study = CrocusSnowDensity()
print(study.year_to_annual_maxima[1959])
......@@ -8,6 +8,7 @@ from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusD
ExtendedCrocusDepth, \
ExtendedCrocusSweTotal, CrocusDaysWithSnowOnGround, CrocusSwe3Days, CrocusSnowLoad3Days, CrocusSnowLoadTotal, \
CrocusSnowLoadEurocode, CrocusSnowLoad5Days, CrocusSnowLoad7Days
from extreme_data.meteo_france_data.scm_models_data.crocus.crocus_snow_density import CrocusSnowDensity
from extreme_data.meteo_france_data.scm_models_data.crocus.crocus_variables import CrocusDensityVariable
from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall, ExtendedSafranSnowfall, \
SafranRainfall, \
......@@ -55,7 +56,8 @@ SCM_STUDY_CLASS_TO_ABBREVIATION = {
CrocusDifferenceSnowLoad: ('max GSL - GSL from max HS \n with {}'.format(eurocode_snow_density)),
CrocusSnowDepthDifference: 'max HS - HS at max of GSL',
CrocusSnowDepthAtMaxofSwe: 'HS at max of GSL',
SafranSnowfallSimulationRCP85: 'SF1 RCP85 projections'
CrocusSnowDensity: 'Density',
SafranSnowfallSimulationRCP85: 'SF1 RCP85 projections',
}
altitude_massif_name_and_study_class_for_poster = [
......
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