Commit 0f030611 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[refactor] remove unnecessary argument for gev_params.py

parent a8ac12bb
No related merge requests found
Showing with 1 addition and 96 deletions
+1 -96
...@@ -20,10 +20,8 @@ class GevParams(AbstractExtremeParams): ...@@ -20,10 +20,8 @@ class GevParams(AbstractExtremeParams):
SUMMARY_NAMES = PARAM_NAMES + AbstractParams.QUANTILE_NAMES SUMMARY_NAMES = PARAM_NAMES + AbstractParams.QUANTILE_NAMES
NB_SUMMARY_NAMES = len(SUMMARY_NAMES) NB_SUMMARY_NAMES = len(SUMMARY_NAMES)
def __init__(self, loc: float, scale: float, shape: float, block_size: int = None): def __init__(self, loc: float, scale: float, shape: float):
super().__init__(loc, scale, shape) super().__init__(loc, scale, shape)
self.block_size = block_size
self.param_name_to_confidence_interval = None
@nan_if_undefined_wrapper @nan_if_undefined_wrapper
def sample(self, n) -> np.ndarray: def sample(self, n) -> np.ndarray:
...@@ -159,8 +157,6 @@ class GevParams(AbstractExtremeParams): ...@@ -159,8 +157,6 @@ class GevParams(AbstractExtremeParams):
x += self.location x += self.location
return x return x
@property @property
def bound(self): def bound(self):
return self.location - (self.scale / self.shape) return self.location - (self.scale / self.shape)
......
...@@ -41,16 +41,6 @@ def _fitted_stationary_gev(fit_method, model_class, starting_year, x_gev): ...@@ -41,16 +41,6 @@ def _fitted_stationary_gev(fit_method, model_class, starting_year, x_gev):
estimator = fitted_linear_margin_estimator(model_class, coordinates, dataset, starting_year, fit_method) estimator = fitted_linear_margin_estimator(model_class, coordinates, dataset, starting_year, fit_method)
first_coordinate = coordinates.coordinates_values()[0] first_coordinate = coordinates.coordinates_values()[0]
gev_param = estimator.function_from_fit.get_params(first_coordinate) gev_param = estimator.function_from_fit.get_params(first_coordinate)
# Build confidence interval
fit_method_with_confidence_interval_implemented = [MarginFitMethod.is_mev_gev_fit]
if fit_method in fit_method_with_confidence_interval_implemented:
param_name_to_confidence_interval = {}
for i, (param_name, param_value) in enumerate(gev_param.to_dict().items()):
confidence_interval_half_size = estimator.result_from_model_fit.confidence_interval_half_sizes[i]
confidence_interval = (
param_value - confidence_interval_half_size, param_value + confidence_interval_half_size)
param_name_to_confidence_interval[param_name] = confidence_interval
gev_param.param_name_to_confidence_interval = param_name_to_confidence_interval
# Warning # Warning
if not -0.5 < gev_param.shape < 0.5: if not -0.5 < gev_param.shape < 0.5:
pass pass
......
...@@ -20,10 +20,6 @@ class AbstractResultFromModelFit(object): ...@@ -20,10 +20,6 @@ class AbstractResultFromModelFit(object):
""" See Coles 2001 page 41, for an example""" """ See Coles 2001 page 41, for an example"""
return np.sqrt(np.diagonal(self.variance_covariance_matrix)) return np.sqrt(np.diagonal(self.variance_covariance_matrix))
@property
def confidence_interval_half_sizes(self):
return [1.96 * s for s in self.standard_errors_for_mle]
@staticmethod @staticmethod
def get_python_dictionary(r_dictionary): def get_python_dictionary(r_dictionary):
return {name: r_dictionary.rx2(name) for name in r_dictionary.names} return {name: r_dictionary.rx2(name) for name in r_dictionary.names}
......
...@@ -182,7 +182,6 @@ class PointwiseGevStudyVisualizer(AltitudesStudies): ...@@ -182,7 +182,6 @@ class PointwiseGevStudyVisualizer(AltitudesStudies):
assert isinstance(param_name, int) assert isinstance(param_name, int)
param = gev_params.return_level(return_period=param_name) param = gev_params.return_level(return_period=param_name)
params.append(param) params.append(param)
# confidence_intervals.append(gev_params.param_name_to_confidence_interval[param_name])
massif_id = self.study.all_massif_names().index(massif_name) massif_id = self.study.all_massif_names().index(massif_name)
plot_against_altitude(altitudes, ax, massif_id, massif_name, params, fill=False, plot_against_altitude(altitudes, ax, massif_id, massif_name, params, fill=False,
elevation_as_xaxis=elevation_as_xaxis, elevation_as_xaxis=elevation_as_xaxis,
......
from extreme_data.meteo_france_data.adamont_data.deprecated.ensemble_simulation import EnsembleSimulation
from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoad3Days, \
CrocusSweTotal
from extreme_data.meteo_france_data.scm_models_data.visualization.study_visualizer import \
StudyVisualizer
import matplotlib.pyplot as plt
def run_plot():
study = CrocusSnowLoad3Days(altitude=1200)
study_visualizer = StudyVisualizer(study)
study_visualizer.visualize_max_graphs_poster('Queyras', altitude='noope', snow_abbreviation="ok", color='red')
plt.show()
def density_wrt_altitude():
save_to_file = True
study_class = CrocusSweTotal
altitudes = [600, 900, 1200, 1500, 1800, 2100, 2400, 2700][::-1]
ensemble = EnsembleSimulation(first_winter_required_for_histo=1958)
# None means relative change, true means reanalysis values, false means simulations values
# mode = False
for mode in [None, True, False]:
for altitude in altitudes:
ax = plt.gca()
study = study_class(altitude=altitude)
# study = study_class(altitude=altitude, nb_consecutive_days=3)
massif_name_to_value = {}
df = study.observations_annual_maxima.df_maxima_gev.iloc[:2004]
for massif_name in study.study_massif_names:
s_reanalysis = df.loc[massif_name].mean()
if (massif_name, altitude) in ensemble.massif_name_and_altitude_to_mean_average_annual_maxima:
s_simulation = ensemble.massif_name_and_altitude_to_mean_average_annual_maxima[(massif_name, altitude)]
relative_change_value = 100 * (s_simulation - s_reanalysis) / s_reanalysis
if mode == None:
value = relative_change_value
else:
value = s_reanalysis if mode else s_simulation
massif_name_to_value[massif_name] = value
print(massif_name_to_value)
# Plot
# massif_name_to_value = {m: i for i, m in enumerate(study.study_massif_names)}
max_values = max([abs(e) for e in massif_name_to_value.values()]) + 5
print(max_values)
variable_name = study.variable_name
label_relative_change = 'Relative changes in mean annual maxima\n' \
'of {}\n between reanalysis and historical simulation\n' \
'for 1958-2004 at {}m (%)\n' \
''.format(variable_name, study.altitude)
if mode is None:
label = label_relative_change
else:
label = 'Mean max SWE for ' + ('reanalysis' if mode else 'simulation')
vmin = -max_values if mode is None else 0.1
study.visualize_study(ax=ax, massif_name_to_value=massif_name_to_value,
vmin=vmin, vmax=max_values,
add_colorbar=True,
replace_blue_by_white=False,
show=False,
label=label
)
study_visualizer = StudyVisualizer(study, save_to_file=save_to_file)
study_visualizer.plot_name = 'relative_changes_in_maxima' if mode is None else label
study_visualizer.show_or_save_to_file()
ax.clear()
plt.close()
if __name__ == '__main__':
density_wrt_altitude()
# test()
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