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

[SCM] fix issue of aggregation for temperatures. improve test.

parent 2989cb25
No related merge requests found
Showing with 13 additions and 7 deletions
+13 -7
...@@ -57,9 +57,8 @@ class SafranTemperatureVariable(AbstractVariable): ...@@ -57,9 +57,8 @@ class SafranTemperatureVariable(AbstractVariable):
super().__init__(dataset, altitude) super().__init__(dataset, altitude)
# Temperature are in K, I transform them as celsius # Temperature are in K, I transform them as celsius
self.hourly_temperature = np.array(dataset.variables[keyword]) - 273.15 self.hourly_temperature = np.array(dataset.variables[keyword]) - 273.15
print(self.hourly_temperature.shape)
nb_days = len(self.hourly_temperature) // 24 nb_days = len(self.hourly_temperature) // 24
self.daily_temperature = [np.mean(self.hourly_temperature[24 * i:24 * (i + 1)]) for i in range(nb_days)] self.daily_temperature = [np.mean(self.hourly_temperature[24 * i:24 * (i + 1)], axis=0) for i in range(nb_days)]
@property @property
......
...@@ -37,7 +37,8 @@ def extended_visualization(): ...@@ -37,7 +37,8 @@ def extended_visualization():
only_first_one = True only_first_one = True
for study_class in SCM_EXTENDED_STUDIES[-1:]: for study_class in SCM_EXTENDED_STUDIES[-1:]:
for study in study_iterator(study_class, only_first_one=only_first_one): for study in study_iterator(study_class, only_first_one=only_first_one):
study_visualizer = StudyVisualizer(study, save_to_file=save_to_file, only_one_graph=True, plot_block_maxima_quantiles=False) study_visualizer = StudyVisualizer(study, save_to_file=save_to_file, only_one_graph=True,
plot_block_maxima_quantiles=False)
# study_visualizer.visualize_all_mean_and_max_graphs() # study_visualizer.visualize_all_mean_and_max_graphs()
study_visualizer.visualize_all_experimental_law() study_visualizer.visualize_all_experimental_law()
# for study_class in SCM_EXTENDED_STUDIES[:]: # for study_class in SCM_EXTENDED_STUDIES[:]:
...@@ -48,11 +49,12 @@ def extended_visualization(): ...@@ -48,11 +49,12 @@ def extended_visualization():
def annual_mean_vizu_compare_durand_study(): def annual_mean_vizu_compare_durand_study():
for study_class in [SafranPrecipitation, SafranSnowfall, SafranTemperature][1:]: for study_class in [SafranPrecipitation, SafranSnowfall, SafranTemperature][2:]:
study = study_class(altitude=1800, year_min=1958, year_max=2002) study = study_class(altitude=1800, year_min=1958, year_max=2002)
study_visualizer = StudyVisualizer(study) study_visualizer = StudyVisualizer(study)
study_visualizer.visualize_annual_mean_values() study_visualizer.visualize_annual_mean_values()
def normal_visualization(): def normal_visualization():
save_to_file = False save_to_file = False
only_first_one = True only_first_one = True
......
...@@ -32,6 +32,7 @@ class TestSCMStudy(unittest.TestCase): ...@@ -32,6 +32,7 @@ class TestSCMStudy(unittest.TestCase):
for study in load_scm_studies(): for study in load_scm_studies():
time_serie = study.year_to_daily_time_serie_array[1958] time_serie = study.year_to_daily_time_serie_array[1958]
self.assertTrue(time_serie.ndim == 2, msg='for {} ndim={}'.format(study.__repr__(), time_serie.ndim)) self.assertTrue(time_serie.ndim == 2, msg='for {} ndim={}'.format(study.__repr__(), time_serie.ndim))
self.assertTrue(time_serie.shape[1] in [21, 23])
self.assertTrue(len(time_serie) in [365, 366], self.assertTrue(len(time_serie) in [365, 366],
msg="current time serie length for {} is {}".format(study.__repr__(), len(time_serie))) msg="current time serie length for {} is {}".format(study.__repr__(), len(time_serie)))
......
...@@ -13,7 +13,8 @@ from extreme_estimator.extreme_models.max_stable_model.abstract_max_stable_model ...@@ -13,7 +13,8 @@ from extreme_estimator.extreme_models.max_stable_model.abstract_max_stable_model
AbstractMaxStableModelWithCovarianceFunction, CovarianceFunction AbstractMaxStableModelWithCovarianceFunction, CovarianceFunction
from extreme_estimator.extreme_models.max_stable_model.max_stable_models import Smith, BrownResnick, Schlather, \ from extreme_estimator.extreme_models.max_stable_model.max_stable_models import Smith, BrownResnick, Schlather, \
Geometric, ExtremalT, ISchlather Geometric, ExtremalT, ISchlather
from experiment.meteo_france_SCM_study.safran.safran import SafranSnowfall, Safran from experiment.meteo_france_SCM_study.safran.safran import SafranSnowfall, Safran, SafranPrecipitation, \
SafranTemperature
from spatio_temporal_dataset.coordinates.spatial_coordinates.alps_station_3D_coordinates import \ from spatio_temporal_dataset.coordinates.spatial_coordinates.alps_station_3D_coordinates import \
AlpsStation3DCoordinatesWithAnisotropy AlpsStation3DCoordinatesWithAnisotropy
from spatio_temporal_dataset.coordinates.spatial_coordinates.generated_spatial_coordinates import \ from spatio_temporal_dataset.coordinates.spatial_coordinates.generated_spatial_coordinates import \
...@@ -96,8 +97,11 @@ def load_test_spatiotemporal_coordinates(nb_points, nb_steps, train_split_ratio= ...@@ -96,8 +97,11 @@ def load_test_spatiotemporal_coordinates(nb_points, nb_steps, train_split_ratio=
def load_safran_studies(altitudes) -> List[Safran]: def load_safran_studies(altitudes) -> List[Safran]:
nb_days_list = [1] nb_days_list = [1]
return [SafranSnowfall(altitude=safran_altitude, nb_consecutive_days=nb_days) safran_studies = [safran_class(altitude=safran_altitude, nb_consecutive_days=nb_days)
for safran_altitude in altitudes for nb_days in nb_days_list] for safran_altitude in altitudes for nb_days in nb_days_list
for safran_class in [SafranSnowfall, SafranPrecipitation]]
safran_studies += [SafranTemperature(altitude) for altitude in altitudes]
return safran_studies
def load_crocus_studies(altitudes) -> List[Crocus]: def load_crocus_studies(altitudes) -> List[Crocus]:
......
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