Module probabilistic

Analyses probabilistes et statistiques selon EurOtop (2018)

Distributions, incertitudes, fiabilité et bandes de confiance

openeurotop.probabilistic.weibull_distribution_overtopping(Hm0, Tm_10, h, Rc, alpha_deg, gamma_f=1.0, gamma_beta=1.0, gamma_b=1.0, N_waves=1000, g=9.81)[source]

Distribution de Weibull pour les volumes de franchissement par vagues individuelles

EurOtop 2018 - Section 5.5.2

La distribution de Weibull à 2 paramètres : P(V > v) = exp(-(v/a)^b)

Parameters:
  • Hm0 (float) – Hauteur significative spectrale (m)

  • Tm_10 (float) – Période spectrale (s)

  • h (float) – Profondeur d’eau (m)

  • Rc (float) – Revanche (m)

  • alpha_deg (float) – Angle de pente (degrés)

  • gamma_f (float, optional) – Facteurs de réduction

  • gamma_beta (float, optional) – Facteurs de réduction

  • gamma_b (float, optional) – Facteurs de réduction

  • N_waves (int, optional) – Nombre de vagues

  • g (float, optional) – Accélération de la pesanteur (m/s²)

Returns:

Paramètres de Weibull et statistiques

Return type:

dict

References

EurOtop (2018) - Équation 5.21

openeurotop.probabilistic.volume_exceedance_weibull(v, a, b)[source]

Probabilité de dépassement d’un volume selon Weibull

P(V > v) = exp(-(v/a)^b)

Parameters:
  • v (float or array_like) – Volume à évaluer (m³/m)

  • a (float) – Paramètre d’échelle de Weibull

  • b (float) – Paramètre de forme de Weibull

Returns:

Probabilité de dépassement

Return type:

float or array_like

openeurotop.probabilistic.uncertainty_overtopping(Hm0, Tm_10, h, Rc, alpha_deg, structure_type='smooth_slope', gamma_f=1.0, gamma_beta=1.0, gamma_b=1.0)[source]

Estimation des incertitudes sur le franchissement

EurOtop 2018 - Section 5.8

L’incertitude est exprimée par l’écart-type du logarithme : - Digues lisses : σ_ln(q) ≈ 0.13 - Digues rugueuses : σ_ln(q) ≈ 0.15 - Murs verticaux : σ_ln(q) ≈ 0.14

Parameters:
  • Hm0 (float) – Paramètres de la structure

  • Tm_10 (float) – Paramètres de la structure

  • h (float) – Paramètres de la structure

  • Rc (float) – Paramètres de la structure

  • alpha_deg (float) – Paramètres de la structure

  • structure_type (str) – Type de structure (“smooth_slope”, “rough_slope”, “vertical_wall”)

  • gamma_f (float) – Facteurs de réduction

  • gamma_beta (float) – Facteurs de réduction

  • gamma_b (float) – Facteurs de réduction

Returns:

Statistiques avec bandes de confiance

Return type:

dict

References

EurOtop (2018) - Section 5.8

openeurotop.probabilistic.reliability_freeboard(q_limit, Hm0, Tm_10, h, alpha_deg, gamma_f=1.0, gamma_beta=1.0, gamma_b=1.0, sigma_ln_q=0.15)[source]

Calcul de la revanche nécessaire pour un débit limite avec un niveau de fiabilité

Parameters:
  • q_limit (float) – Débit limite tolérable (m³/s/m)

  • Hm0 (float) – Hauteur significative spectrale (m)

  • Tm_10 (float) – Période spectrale (s)

  • h (float) – Profondeur d’eau (m)

  • alpha_deg (float) – Angle de pente (degrés)

  • gamma_f (float) – Facteurs de réduction

  • gamma_beta (float) – Facteurs de réduction

  • gamma_b (float) – Facteurs de réduction

  • sigma_ln_q (float, optional) – Écart-type du logarithme de q (incertitude)

Returns:

Revanches pour différents niveaux de confiance

Return type:

dict

Examples

>>> # Revanche nécessaire pour q < 1 l/s/m avec 95% de confiance
>>> result = reliability_freeboard(0.001, Hm0=2.5, Tm_10=6.0, h=10.0, alpha_deg=35.0)
>>> print(f"Rc (95% confiance) = {result['Rc_95']:.2f} m")
openeurotop.probabilistic.monte_carlo_overtopping(Hm0_mean, Hm0_std, Tm_10_mean, Tm_10_std, h, Rc, alpha_deg, gamma_f=1.0, n_simulations=10000)[source]

Simulation Monte Carlo pour évaluer la variabilité du franchissement

Prend en compte la variabilité de Hm0 et Tm-1,0

Parameters:
  • Hm0_mean (float) – Moyenne et écart-type de Hm0 (m)

  • Hm0_std (float) – Moyenne et écart-type de Hm0 (m)

  • Tm_10_mean (float) – Moyenne et écart-type de Tm-1,0 (s)

  • Tm_10_std (float) – Moyenne et écart-type de Tm-1,0 (s)

  • h (float) – Profondeur d’eau (m)

  • Rc (float) – Revanche (m)

  • alpha_deg (float) – Angle de pente (degrés)

  • gamma_f (float, optional) – Facteur de rugosité

  • n_simulations (int, optional) – Nombre de simulations Monte Carlo

Returns:

Statistiques des résultats Monte Carlo

Return type:

dict

Examples

>>> # Variabilité climatique : Hm0 = 2.5 ± 0.5 m
>>> result = monte_carlo_overtopping(2.5, 0.5, 6.0, 0.8, 10.0, 3.0, 35.0)
>>> print(f"q moyen = {result['q_mean']:.6f} m³/s/m")
>>> print(f"q 95% = {result['q_95']:.6f} m³/s/m")
openeurotop.probabilistic.confidence_bands_overtopping(Hm0, Tm_10, h, Rc_range, alpha_deg, gamma_f=1.0, structure_type='rough_slope')[source]

Calcule les bandes de confiance pour différentes revanches

Parameters:
  • Hm0 (float) – Paramètres de vague et profondeur

  • Tm_10 (float) – Paramètres de vague et profondeur

  • h (float) – Paramètres de vague et profondeur

  • Rc_range (array_like) – Gamme de revanches à évaluer (m)

  • alpha_deg (float) – Angle de pente (degrés)

  • gamma_f (float) – Facteur de rugosité

  • structure_type (str) – Type de structure pour l’incertitude

Returns:

Arrays avec q_mean, q_lower, q_upper pour chaque Rc

Return type:

dict

Examples

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> Rc_range = np.linspace(1, 5, 20)
>>> result = confidence_bands_overtopping(2.5, 6.0, 10.0, Rc_range, 35.0)
>>> plt.fill_between(Rc_range, result['q_lower']*1000, result['q_upper']*1000, alpha=0.3)
>>> plt.plot(Rc_range, result['q_mean']*1000)
>>> plt.xlabel('Rc (m)')
>>> plt.ylabel('q (l/s/m)')
>>> plt.show()
openeurotop.probabilistic.failure_probability_overtopping(q_critical, Hm0, Tm_10, h, Rc, alpha_deg, gamma_f=1.0, sigma_ln_q=0.15)[source]

Calcule la probabilité de défaillance (q > q_critical)

En supposant une distribution log-normale de q

Parameters:
  • q_critical (float) – Débit critique au-delà duquel il y a défaillance (m³/s/m)

  • Hm0 (float) – Paramètres de la structure

  • Tm_10 (float) – Paramètres de la structure

  • h (float) – Paramètres de la structure

  • Rc (float) – Paramètres de la structure

  • alpha_deg (float) – Paramètres de la structure

  • gamma_f (float) – Facteur de rugosité

  • sigma_ln_q (float) – Écart-type du logarithme de q

Returns:

Probabilité de défaillance Pf

Return type:

float

Examples

>>> # Probabilité que q dépasse 10 l/s/m
>>> Pf = failure_probability_overtopping(0.01, 2.5, 6.0, 10.0, 3.0, 35.0)
>>> print(f"Probabilité de défaillance : {Pf*100:.2f}%")
openeurotop.probabilistic.design_overtopping_rate(return_period_years, acceptable_rate_per_year=0.1)[source]

Calcule le débit de franchissement de conception basé sur une période de retour

Parameters:
  • return_period_years (float) – Période de retour (années)

  • acceptable_rate_per_year (float) – Taux de franchissement acceptable par an (défaut: 0.1 = 10%)

Returns:

Informations sur le niveau de conception

Return type:

dict

Examples

>>> # Conception pour tempête centennale
>>> design = design_overtopping_rate(100)

Analyses d’incertitudes

uncertainty_overtopping

openeurotop.probabilistic.uncertainty_overtopping(Hm0, Tm_10, h, Rc, alpha_deg, structure_type='smooth_slope', gamma_f=1.0, gamma_beta=1.0, gamma_b=1.0)[source]

Estimation des incertitudes sur le franchissement

EurOtop 2018 - Section 5.8

L’incertitude est exprimée par l’écart-type du logarithme : - Digues lisses : σ_ln(q) ≈ 0.13 - Digues rugueuses : σ_ln(q) ≈ 0.15 - Murs verticaux : σ_ln(q) ≈ 0.14

Parameters:
  • Hm0 (float) – Paramètres de la structure

  • Tm_10 (float) – Paramètres de la structure

  • h (float) – Paramètres de la structure

  • Rc (float) – Paramètres de la structure

  • alpha_deg (float) – Paramètres de la structure

  • structure_type (str) – Type de structure (“smooth_slope”, “rough_slope”, “vertical_wall”)

  • gamma_f (float) – Facteurs de réduction

  • gamma_beta (float) – Facteurs de réduction

  • gamma_b (float) – Facteurs de réduction

Returns:

Statistiques avec bandes de confiance

Return type:

dict

References

EurOtop (2018) - Section 5.8

confidence_bands_overtopping

openeurotop.probabilistic.confidence_bands_overtopping(Hm0, Tm_10, h, Rc_range, alpha_deg, gamma_f=1.0, structure_type='rough_slope')[source]

Calcule les bandes de confiance pour différentes revanches

Parameters:
  • Hm0 (float) – Paramètres de vague et profondeur

  • Tm_10 (float) – Paramètres de vague et profondeur

  • h (float) – Paramètres de vague et profondeur

  • Rc_range (array_like) – Gamme de revanches à évaluer (m)

  • alpha_deg (float) – Angle de pente (degrés)

  • gamma_f (float) – Facteur de rugosité

  • structure_type (str) – Type de structure pour l’incertitude

Returns:

Arrays avec q_mean, q_lower, q_upper pour chaque Rc

Return type:

dict

Examples

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> Rc_range = np.linspace(1, 5, 20)
>>> result = confidence_bands_overtopping(2.5, 6.0, 10.0, Rc_range, 35.0)
>>> plt.fill_between(Rc_range, result['q_lower']*1000, result['q_upper']*1000, alpha=0.3)
>>> plt.plot(Rc_range, result['q_mean']*1000)
>>> plt.xlabel('Rc (m)')
>>> plt.ylabel('q (l/s/m)')
>>> plt.show()

Distribution de Weibull

weibull_parameters

individual_overtopping_volume

distribution_individual_volumes

Monte Carlo

monte_carlo_overtopping

openeurotop.probabilistic.monte_carlo_overtopping(Hm0_mean, Hm0_std, Tm_10_mean, Tm_10_std, h, Rc, alpha_deg, gamma_f=1.0, n_simulations=10000)[source]

Simulation Monte Carlo pour évaluer la variabilité du franchissement

Prend en compte la variabilité de Hm0 et Tm-1,0

Parameters:
  • Hm0_mean (float) – Moyenne et écart-type de Hm0 (m)

  • Hm0_std (float) – Moyenne et écart-type de Hm0 (m)

  • Tm_10_mean (float) – Moyenne et écart-type de Tm-1,0 (s)

  • Tm_10_std (float) – Moyenne et écart-type de Tm-1,0 (s)

  • h (float) – Profondeur d’eau (m)

  • Rc (float) – Revanche (m)

  • alpha_deg (float) – Angle de pente (degrés)

  • gamma_f (float, optional) – Facteur de rugosité

  • n_simulations (int, optional) – Nombre de simulations Monte Carlo

Returns:

Statistiques des résultats Monte Carlo

Return type:

dict

Examples

>>> # Variabilité climatique : Hm0 = 2.5 ± 0.5 m
>>> result = monte_carlo_overtopping(2.5, 0.5, 6.0, 0.8, 10.0, 3.0, 35.0)
>>> print(f"q moyen = {result['q_mean']:.6f} m³/s/m")
>>> print(f"q 95% = {result['q_95']:.6f} m³/s/m")

Fiabilité

probability_of_failure

reliability_analysis