Commit 145e046a authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[projections] fix main_data.py by fixing rcp_extended for adamont_v2

parent 8dbaaf17
No related merge requests found
Showing with 31 additions and 22 deletions
+31 -22
......@@ -83,23 +83,21 @@ class AbstractAdamontStudy(AbstractStudy):
def load_year_to_annual_maxima_version_2(self):
year_to_annual_maxima = OrderedDict()
for dataset in self.datasets:
for dataset, real_scenario in zip(self.datasets, self.adamont_real_scenarios):
annual_maxima = np.array(dataset.variables[self.variable_class.indicator_name_for_maxima])
assert annual_maxima.shape[1] == len(self.column_mask)
annual_maxima = annual_maxima[:, self.column_mask]
year_to_annual_maxima = OrderedDict()
year_min, year_max = get_year_min_and_year_max_from_scenario(self.scenario, self.gcm_rcm_couple)
year_min, year_max = get_year_min_and_year_max_from_scenario(real_scenario, self.gcm_rcm_couple)
years = list(range(year_min, year_max + 1))
if self.scenario in adamont_scenarios_real:
time = np.array(dataset.variables['time'])
msg = 'len_years={} while len_time={},' \
'check year_min and year_max, ' \
'check in debug mode the time field of the daatset to see the starting date'.format(years, time)
# # Some print to check which year are in the data
# start = datetime(year=2005, month=8, day=1, hour=6, minute=0, second=0)
# dates = [start + timedelta(hours=int(h)) for h in time]
# print(["{}-{}".format(date.year-1, date.year) for date in dates])
assert len(years) == len(time), msg
time = np.array(dataset.variables['time'])
msg = 'len_years={} while len_time={},' \
'check year_min and year_max, ' \
'check in debug mode the time field of the daatset to see the starting date'.format(years, time)
# # Some print to check which year are in the data
# start = datetime(year=2005, month=8, day=1, hour=6, minute=0, second=0)
# dates = [start + timedelta(hours=int(h)) for h in time]
# print(["{}-{}".format(date.year-1, date.year) for date in dates])
assert len(years) == len(time), msg
for year, maxima in zip(years, annual_maxima):
if self.year_min <= year <= self.year_max:
year_to_annual_maxima[year] = maxima
......
......@@ -25,8 +25,8 @@ class AdamontSnowfall(AbstractAdamontStudy):
if __name__ == '__main__':
study = AdamontSnowfall(altitude=1800, adamont_version=2, gcm_rcm_couple=('HadGEM2-ES', 'RACMO22E'),
scenario=AdamontScenario.rcp85)
study = AdamontSnowfall(altitude=1800, adamont_version=1, gcm_rcm_couple=('HadGEM2-ES', 'RACMO22E'),
scenario=AdamontScenario.rcp85_extended)
pass
print(study.year_to_annual_maxima)
print(study.year_to_annual_maxima)
......@@ -107,6 +107,7 @@ class AdamontStudies(object):
massif_name.replace('_', ' '),
self.study.altitude)
fontsize = 13
ax.tick_params(axis='both', which='major', labelsize=fontsize)
if legend_and_labels:
ax.set_ylabel('{} ({})'.format(plot_name, self.study.variable_unit), fontsize=fontsize)
ax.set_xlabel('years', fontsize=fontsize)
......
......@@ -6,11 +6,12 @@ mpl.use('Agg')
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
import matplotlib.pyplot as plt
from projects.projected_snowfall.evaluation.comparison_plot import individual_plot
from extreme_data.meteo_france_data.adamont_data.adamont.adamont_snowfall import AdamontSnowfall
from extreme_data.meteo_france_data.adamont_data.adamont_scenario import AdamontScenario, get_gcm_rcm_couples, \
scenario_to_real_scenarios, rcp_scenarios
scenario_to_real_scenarios, rcp_scenarios, rcm_scenarios_extended
from extreme_data.meteo_france_data.adamont_data.adamont_studies import AdamontStudies
from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day
from extreme_data.meteo_france_data.scm_models_data.utils import Season
......@@ -23,10 +24,11 @@ def main():
year_max = 2100
massif_names = ['Vanoise']
season = Season.annual
scenarios = [AdamontScenario.rcp26_extended, AdamontScenario.rcp45_extended, AdamontScenario.rcp85_extended]
scenarios = rcm_scenarios_extended
# scenarios = rcp_scenarios
altitudes = [600, 2100, 3600]
for altitude, adamont_scenario in list(zip(altitudes, scenarios))[-1:]:
for altitude, adamont_scenario in list(zip(altitudes, scenarios))[:]:
plt.figure(figsize=(20, 5))
# Loading part
scm_study = scm_study_class(altitude=altitude)
real_adamont_scenario = scenario_to_real_scenarios(adamont_scenario=adamont_scenario)[-1]
......@@ -35,10 +37,9 @@ def main():
altitude=altitude, year_min_studies=year_min, year_max_studies=year_max,
season=season, scenario=adamont_scenario)
print(altitude, adamont_scenario)
adamont_studies.plot_maxima_time_series_adamont(massif_names=massif_names, scm_study=scm_study, legend_and_labels=False)
adamont_studies.plot_maxima_time_series_adamont(massif_names=massif_names,
scm_study=scm_study, legend_and_labels=False)
if __name__ == '__main__':
fast_list = [1, 2, 4, 6][:1]
for fast in fast_list:
main()
main()
......@@ -40,6 +40,14 @@ class TestAdamontStudy(unittest.TestCase):
year_min=year_min, gcm_rcm_couple=gcm_rcm_couple)
assert set(adamont_study.study_massif_names) == set(reanalysis_study.study_massif_names)
def test_rcp_extended(self):
for version in [1, 2]:
study = AdamontSnowfall(altitude=1800, adamont_version=version, gcm_rcm_couple=('HadGEM2-ES', 'RACMO22E'),
scenario=AdamontScenario.rcp85_extended)
self.assertEqual(len(study.ordered_years), len(study.massif_name_to_annual_maxima["Vanoise"]))
self.assertTrue(True)
def test_existing_gcm_rcm_couple_and_rcp(self):
altitude = 1800
for scenario in rcp_scenarios[:]:
......@@ -55,5 +63,6 @@ class TestAdamontStudy(unittest.TestCase):
self.assertTrue(True)
if __name__ == '__main__':
unittest.main()
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