An error occurred while loading the file. Please try again.
-
Le Roux Erwan authoredd61ff6d9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import numpy as np
from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy
from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
from experiment.meteo_france_data.scm_models_data.abstract_variable import AbstractVariable
from experiment.meteo_france_data.scm_models_data.cumulated_study import CumulatedStudy
from experiment.meteo_france_data.scm_models_data.safran.safran_variable import SafranSnowfallVariable, \
SafranRainfallVariable, SafranTemperatureVariable, SafranTotalPrecipVariable
class Safran(AbstractStudy):
def __init__(self, variable_class: type, *args, **kwargs):
assert variable_class in [SafranSnowfallVariable, SafranRainfallVariable, SafranTemperatureVariable,
SafranTotalPrecipVariable]
super().__init__(variable_class, *args, **kwargs)
self.model_name = 'Safran'
def annual_aggregation_function(self, *args, **kwargs):
return np.sum(*args, **kwargs)
class SafranSnowfall(Safran, CumulatedStudy):
def __init__(self, *args, **kwargs):
CumulatedStudy.__init__(self, SafranSnowfallVariable, *args, **kwargs)
Safran.__init__(self, SafranSnowfallVariable, *args, **kwargs)
class ExtendedSafranSnowfall(AbstractExtendedStudy, SafranSnowfall):
pass
class SafranRainfall(CumulatedStudy, Safran):
def __init__(self, *args, **kwargs):
super().__init__(SafranRainfallVariable, *args, **kwargs)
class SafranTotalPrecip(CumulatedStudy, Safran):
def __init__(self, *args, **kwargs):
super().__init__(SafranTotalPrecipVariable, *args, **kwargs)
def load_variable_array(self, dataset):
return [np.array(dataset.variables[k]) for k in self.load_keyword()]
def instantiate_variable_object(self, variable_array) -> AbstractVariable:
variable_array_snowfall, variable_array_rainfall = variable_array
return self.variable_class(variable_array_snowfall, variable_array_rainfall, self.nb_consecutive_days)
class ExtendedSafranTotalPrecip(AbstractExtendedStudy, SafranTotalPrecip):
pass
class SafranTemperature(Safran):
def __init__(self, *args, **kwargs):
super().__init__(SafranTemperatureVariable, *args, **kwargs)
def annual_aggregation_function(self, *args, **kwargs):
return np.mean(*args, **kwargs)
if __name__ == '__main__':
study = SafranSnowfall()
# d = study.year_to_dataset_ordered_dict[1958]
# print(d.variables)
for i in range(1958, 1959):
d = study.year_to_dataset_ordered_dict[i]
variable = 'Tair'
a = np.mean(np.array(d.variables[variable]), axis=1)
d = study.year_to_dataset_ordered_dict[i+1]
b = np.mean(np.array(d.variables[variable]), axis=1)
print(a[-1] - b[0])
# print(d.variables['time'])
# print(study.all_massif_names)
# print(study.massif_name_to_altitudes)
# print(study.year_to_daily_time_serie_array[1958].shape)
# print(study.missing_massif_name)
# print(len(d.variables['time']))
# print(study.year_to_annual_total)
# print(study.df_annual_total.columns)
# for i in range(1958, 2016):
# d = study.year_to_dataset_ordered_dict[i]
# variable = 'Tair'
# a = np.mean(np.array(d.variables[variable]), axis=1)
# d = study.year_to_dataset_ordered_dict[i+1]
# b = np.mean(np.array(d.variables[variable]), axis=1)
# print(a[-1] - b[0])