NREL-erad 0.0.0a0__py3-none-any.whl → 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. erad/__init__.py +1 -0
  2. erad/constants.py +59 -11
  3. erad/default_fragility_curves/__init__.py +15 -0
  4. erad/default_fragility_curves/default_fire_boundary_dist.py +94 -0
  5. erad/default_fragility_curves/default_flood_depth.py +108 -0
  6. erad/default_fragility_curves/default_flood_velocity.py +101 -0
  7. erad/default_fragility_curves/default_fragility_curves.py +23 -0
  8. erad/default_fragility_curves/default_peak_ground_acceleration.py +163 -0
  9. erad/default_fragility_curves/default_peak_ground_velocity.py +94 -0
  10. erad/default_fragility_curves/default_wind_speed.py +94 -0
  11. erad/enums.py +40 -0
  12. erad/gdm_mapping.py +83 -0
  13. erad/models/__init__.py +1 -0
  14. erad/models/asset.py +287 -0
  15. erad/models/asset_mapping.py +20 -0
  16. erad/models/fragility_curve.py +116 -0
  17. erad/models/hazard/__init__.py +5 -0
  18. erad/models/hazard/base_models.py +12 -0
  19. erad/models/hazard/common.py +26 -0
  20. erad/models/hazard/earthquake.py +93 -0
  21. erad/models/hazard/flood.py +83 -0
  22. erad/models/hazard/wild_fire.py +121 -0
  23. erad/models/hazard/wind.py +143 -0
  24. erad/models/probability.py +73 -0
  25. erad/probability_builder.py +35 -0
  26. erad/quantities.py +25 -0
  27. erad/runner.py +122 -0
  28. erad/systems/__init__.py +2 -0
  29. erad/systems/asset_system.py +414 -0
  30. erad/systems/hazard_system.py +122 -0
  31. nrel_erad-0.1.0.dist-info/METADATA +55 -0
  32. nrel_erad-0.1.0.dist-info/RECORD +35 -0
  33. {NREL_erad-0.0.0a0.dist-info → nrel_erad-0.1.0.dist-info}/WHEEL +1 -1
  34. NREL_erad-0.0.0a0.dist-info/METADATA +0 -61
  35. NREL_erad-0.0.0a0.dist-info/RECORD +0 -42
  36. erad/cypher_queries/load_data_v1.cypher +0 -212
  37. erad/data/World_Earthquakes_1960_2016.csv +0 -23410
  38. erad/db/__init__.py +0 -0
  39. erad/db/assets/__init__.py +0 -0
  40. erad/db/assets/critical_infras.py +0 -171
  41. erad/db/assets/distribution_lines.py +0 -101
  42. erad/db/credential_model.py +0 -20
  43. erad/db/disaster_input_model.py +0 -23
  44. erad/db/inject_earthquake.py +0 -52
  45. erad/db/inject_flooding.py +0 -53
  46. erad/db/neo4j_.py +0 -162
  47. erad/db/utils.py +0 -14
  48. erad/exceptions.py +0 -68
  49. erad/metrics/__init__.py +0 -0
  50. erad/metrics/check_microgrid.py +0 -208
  51. erad/metrics/metric.py +0 -178
  52. erad/programs/__init__.py +0 -0
  53. erad/programs/backup.py +0 -62
  54. erad/programs/microgrid.py +0 -45
  55. erad/scenarios/__init__.py +0 -0
  56. erad/scenarios/abstract_scenario.py +0 -103
  57. erad/scenarios/common.py +0 -93
  58. erad/scenarios/earthquake_scenario.py +0 -161
  59. erad/scenarios/fire_scenario.py +0 -160
  60. erad/scenarios/flood_scenario.py +0 -494
  61. erad/scenarios/utilities.py +0 -76
  62. erad/scenarios/wind_scenario.py +0 -89
  63. erad/utils/__init__.py +0 -0
  64. erad/utils/ditto_utils.py +0 -252
  65. erad/utils/hifld_utils.py +0 -147
  66. erad/utils/opendss_utils.py +0 -357
  67. erad/utils/overpass.py +0 -76
  68. erad/utils/util.py +0 -178
  69. erad/visualization/__init__.py +0 -0
  70. erad/visualization/plot_graph.py +0 -218
  71. {NREL_erad-0.0.0a0.dist-info → nrel_erad-0.1.0.dist-info/licenses}/LICENSE.txt +0 -0
  72. {NREL_erad-0.0.0a0.dist-info → nrel_erad-0.1.0.dist-info}/top_level.txt +0 -0
erad/__init__.py CHANGED
@@ -0,0 +1 @@
1
+ __version__ = "0.0.1"
erad/constants.py CHANGED
@@ -1,20 +1,68 @@
1
- """ Module for managing constants in ERAD package.
1
+ """Module for managing constants in ERAD package.
2
2
 
3
3
  _Do not change this constants in your code._
4
4
  """
5
5
 
6
- import os
6
+ from datetime import datetime
7
+ from pathlib import Path
7
8
 
8
- ROOT_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
9
+ import erad.models.fragility_curve as frag
10
+ import erad.models.probability as prob
11
+ import erad.models.hazard as hazard
12
+ import erad.models.asset as asset
13
+
14
+ # Get list of continuous distributions
15
+
16
+
17
+ ROOT_PATH = Path(__file__).parent.parent.parent
18
+ TEST_PATH = Path(__file__).parent.parent.parent / "tests"
9
19
  DATA_FOLDER_NAME = "data"
10
- DATA_FOLDER = os.path.join(ROOT_PATH, DATA_FOLDER_NAME)
20
+ DATA_FOLDER = TEST_PATH / DATA_FOLDER_NAME
21
+
22
+ DEFAULT_TIME_STAMP = datetime(1970, 1, 1, 0, 0, 0)
23
+
24
+ ASSET_TYPES = (
25
+ asset.AssetState,
26
+ asset.Asset,
27
+ prob.AccelerationProbability,
28
+ prob.TemperatureProbability,
29
+ prob.DistanceProbability,
30
+ prob.SpeedProbability,
31
+ )
11
32
 
12
- FIRE_HISTORIC_GEODATAFRAME_PATH = "US_Wildfires_1878_2019.gdb"
13
- EARTHQUAKE_HISTORIC_CSV_PATH = "World_Earthquakes_1960_2016.csv"
14
- FLOOD_HISTORIC_SHP_PATH = "FEMA_100_Year_Flood_Zones_in_the_US\\FEMA_100_Year_Flood_Zones_in_the_US.shp"
15
- #FLOOD_HISTORIC_SHP_PATH = "NFHL_06_20230323.gdb"
16
- ELEVATION_RASTER_FILE = "TrueMarble.250m.21600x21600.B2.tif"
33
+ HAZARD_TYPES = (
34
+ hazard.EarthQuakeModel,
35
+ hazard.FloodModel,
36
+ hazard.FireModel,
37
+ hazard.WindModel,
38
+ )
17
39
 
18
- SMARTDS_VALID_YEARS = [2016, 2017, 2018]
19
- SMARTDS_VALID_AREAS = ['SFO', 'GSO', 'AUS']
40
+ HAZARD_MODELS = (
41
+ hazard.EarthQuakeModel,
42
+ hazard.FloodModelArea,
43
+ hazard.FireModelArea,
44
+ hazard.FloodModel,
45
+ hazard.FireModel,
46
+ hazard.WindModel,
47
+ frag.ProbabilityFunction,
48
+ frag.FragilityCurve,
49
+ frag.HazardFragilityCurves,
50
+ )
20
51
 
52
+ SUPPORTED_MODELS = [
53
+ hazard.EarthQuakeModel,
54
+ hazard.FloodModelArea,
55
+ hazard.FireModelArea,
56
+ hazard.FloodModel,
57
+ hazard.FireModel,
58
+ hazard.WindModel,
59
+ prob.AccelerationProbability,
60
+ prob.TemperatureProbability,
61
+ prob.DistanceProbability,
62
+ prob.SpeedProbability,
63
+ frag.ProbabilityFunction,
64
+ frag.FragilityCurve,
65
+ frag.HazardFragilityCurves,
66
+ asset.AssetState,
67
+ asset.Asset,
68
+ ]
@@ -0,0 +1,15 @@
1
+ from erad.default_fragility_curves.default_peak_ground_acceleration import (
2
+ DEFAULT_PEAK_GROUND_ACCELERATION_FRAGILITY_CURVES,
3
+ )
4
+ from erad.default_fragility_curves.default_peak_ground_velocity import (
5
+ DEFAULT_PEAK_GROUND_VELOCITY_FRAGILITY_CURVES,
6
+ )
7
+ from erad.default_fragility_curves.default_fire_boundary_dist import (
8
+ DEFAULT_FIRE_BOUNDARY_FRAGILITY_CURVES,
9
+ )
10
+ from erad.default_fragility_curves.default_flood_velocity import (
11
+ DEFAULT_FLOOD_VELOCITY_FRAGILITY_CURVES,
12
+ )
13
+ from erad.default_fragility_curves.default_flood_depth import DEFAULT_FLOOD_DEPTH_FRAGILITY_CURVES
14
+ from erad.default_fragility_curves.default_wind_speed import DEFAULT_WIND_SPEED_FRAGILITY_CURVES
15
+ from erad.default_fragility_curves.default_fragility_curves import DEFAULT_FRAGILTY_CURVES
@@ -0,0 +1,94 @@
1
+ from gdm.quantities import Distance
2
+
3
+ import erad.models.fragility_curve as frag
4
+ from erad.enums import AssetTypes
5
+
6
+ DEFAULT_FIRE_BOUNDARY_FRAGILITY_CURVES = frag.HazardFragilityCurves(
7
+ asset_state_param="fire_boundary_dist",
8
+ curves=[
9
+ frag.FragilityCurve(
10
+ asset_type=AssetTypes.switch,
11
+ prob_function=frag.ProbabilityFunction(
12
+ distribution="expon", parameters=[Distance(0.65, "km"), 0.95]
13
+ ),
14
+ ),
15
+ frag.FragilityCurve(
16
+ asset_type=AssetTypes.battery_storage,
17
+ prob_function=frag.ProbabilityFunction(
18
+ distribution="expon", parameters=[Distance(0.65, "km"), 0.95]
19
+ ),
20
+ ),
21
+ frag.FragilityCurve(
22
+ asset_type=AssetTypes.distribution_junction_box,
23
+ prob_function=frag.ProbabilityFunction(
24
+ distribution="expon", parameters=[Distance(0.5, "km"), 0.95]
25
+ ),
26
+ ),
27
+ frag.FragilityCurve(
28
+ asset_type=AssetTypes.distribution_overhead_lines,
29
+ prob_function=frag.ProbabilityFunction(
30
+ distribution="expon", parameters=[Distance(0.5, "km"), 0.95]
31
+ ),
32
+ ),
33
+ frag.FragilityCurve(
34
+ asset_type=AssetTypes.distribution_poles,
35
+ prob_function=frag.ProbabilityFunction(
36
+ distribution="expon", parameters=[Distance(1.0, "km"), 0.95]
37
+ ),
38
+ ),
39
+ frag.FragilityCurve(
40
+ asset_type=AssetTypes.distribution_underground_cables,
41
+ prob_function=frag.ProbabilityFunction(
42
+ distribution="expon", parameters=[Distance(0.1, "km"), 0.95]
43
+ ),
44
+ ),
45
+ frag.FragilityCurve(
46
+ asset_type=AssetTypes.solar_panels,
47
+ prob_function=frag.ProbabilityFunction(
48
+ distribution="expon", parameters=[Distance(0.55, "km"), 0.95]
49
+ ),
50
+ ),
51
+ frag.FragilityCurve(
52
+ asset_type=AssetTypes.substation,
53
+ prob_function=frag.ProbabilityFunction(
54
+ distribution="expon", parameters=[Distance(0.7, "km"), 0.95]
55
+ ),
56
+ ),
57
+ frag.FragilityCurve(
58
+ asset_type=AssetTypes.transformer_mad_mount,
59
+ prob_function=frag.ProbabilityFunction(
60
+ distribution="expon", parameters=[Distance(0.9, "km"), 0.95]
61
+ ),
62
+ ),
63
+ frag.FragilityCurve(
64
+ asset_type=AssetTypes.transformer_pole_mount,
65
+ prob_function=frag.ProbabilityFunction(
66
+ distribution="expon", parameters=[Distance(1.0, "km"), 0.95]
67
+ ),
68
+ ),
69
+ frag.FragilityCurve(
70
+ asset_type=AssetTypes.transmission_junction_box,
71
+ prob_function=frag.ProbabilityFunction(
72
+ distribution="expon", parameters=[Distance(0.55, "km"), 0.95]
73
+ ),
74
+ ),
75
+ frag.FragilityCurve(
76
+ asset_type=AssetTypes.transmission_overhead_lines,
77
+ prob_function=frag.ProbabilityFunction(
78
+ distribution="expon", parameters=[Distance(1.1, "km"), 0.95]
79
+ ),
80
+ ),
81
+ frag.FragilityCurve(
82
+ asset_type=AssetTypes.transmission_tower,
83
+ prob_function=frag.ProbabilityFunction(
84
+ distribution="expon", parameters=[Distance(0.7, "km"), 0.95]
85
+ ),
86
+ ),
87
+ frag.FragilityCurve(
88
+ asset_type=AssetTypes.transmission_underground_cables,
89
+ prob_function=frag.ProbabilityFunction(
90
+ distribution="expon", parameters=[Distance(0.15, "km"), 0.95]
91
+ ),
92
+ ),
93
+ ],
94
+ )
@@ -0,0 +1,108 @@
1
+ from gdm.quantities import Distance
2
+
3
+ import erad.models.fragility_curve as frag
4
+ from erad.enums import AssetTypes
5
+
6
+ DEFAULT_FLOOD_DEPTH_FRAGILITY_CURVES = frag.HazardFragilityCurves(
7
+ asset_state_param="flood_depth",
8
+ curves=[
9
+ frag.FragilityCurve(
10
+ asset_type=AssetTypes.switch,
11
+ prob_function=frag.ProbabilityFunction(
12
+ distribution="lognorm",
13
+ parameters=[Distance(0.35, "m"), Distance(0.50, "m"), 1 / 0.35],
14
+ ),
15
+ ),
16
+ frag.FragilityCurve(
17
+ asset_type=AssetTypes.battery_storage,
18
+ prob_function=frag.ProbabilityFunction(
19
+ distribution="lognorm",
20
+ parameters=[Distance(0.35, "m"), Distance(0.50, "m"), 1 / 0.35],
21
+ ),
22
+ ),
23
+ frag.FragilityCurve(
24
+ asset_type=AssetTypes.distribution_junction_box,
25
+ prob_function=frag.ProbabilityFunction(
26
+ distribution="lognorm",
27
+ parameters=[Distance(0.40, "m"), Distance(1.0, "m"), 1 / 0.40],
28
+ ),
29
+ ),
30
+ frag.FragilityCurve(
31
+ asset_type=AssetTypes.distribution_overhead_lines,
32
+ prob_function=frag.ProbabilityFunction(
33
+ distribution="lognorm",
34
+ parameters=[Distance(0.35, "m"), Distance(1.0, "m"), 1 / 0.35],
35
+ ),
36
+ ),
37
+ frag.FragilityCurve(
38
+ asset_type=AssetTypes.distribution_poles,
39
+ prob_function=frag.ProbabilityFunction(
40
+ distribution="lognorm",
41
+ parameters=[Distance(0.35, "m"), Distance(1.0, "m"), 1 / 0.35],
42
+ ),
43
+ ),
44
+ frag.FragilityCurve(
45
+ asset_type=AssetTypes.distribution_underground_cables,
46
+ prob_function=frag.ProbabilityFunction(
47
+ distribution="lognorm",
48
+ parameters=[Distance(0.8, "m"), Distance(1.0, "m"), 1 / 0.8],
49
+ ),
50
+ ),
51
+ frag.FragilityCurve(
52
+ asset_type=AssetTypes.solar_panels,
53
+ prob_function=frag.ProbabilityFunction(
54
+ distribution="lognorm",
55
+ parameters=[Distance(0.35, "m"), Distance(0.6, "m"), 1 / 0.35],
56
+ ),
57
+ ),
58
+ frag.FragilityCurve(
59
+ asset_type=AssetTypes.substation,
60
+ prob_function=frag.ProbabilityFunction(
61
+ distribution="lognorm",
62
+ parameters=[Distance(0.40, "m"), Distance(1.0, "m"), 1 / 0.4],
63
+ ),
64
+ ),
65
+ frag.FragilityCurve(
66
+ asset_type=AssetTypes.transformer_mad_mount,
67
+ prob_function=frag.ProbabilityFunction(
68
+ distribution="lognorm",
69
+ parameters=[Distance(0.35, "m"), Distance(0.6, "m"), 1 / 0.35],
70
+ ),
71
+ ),
72
+ frag.FragilityCurve(
73
+ asset_type=AssetTypes.transformer_pole_mount,
74
+ prob_function=frag.ProbabilityFunction(
75
+ distribution="lognorm",
76
+ parameters=[Distance(0.30, "m"), Distance(0.8, "m"), 1 / 0.3],
77
+ ),
78
+ ),
79
+ frag.FragilityCurve(
80
+ asset_type=AssetTypes.transmission_junction_box,
81
+ prob_function=frag.ProbabilityFunction(
82
+ distribution="lognorm",
83
+ parameters=[Distance(0.40, "m"), Distance(1.0, "m"), 1 / 0.40],
84
+ ),
85
+ ),
86
+ frag.FragilityCurve(
87
+ asset_type=AssetTypes.transmission_overhead_lines,
88
+ prob_function=frag.ProbabilityFunction(
89
+ distribution="lognorm",
90
+ parameters=[Distance(0.30, "m"), Distance(1.8, "m"), 1 / 0.3],
91
+ ),
92
+ ),
93
+ frag.FragilityCurve(
94
+ asset_type=AssetTypes.transmission_tower,
95
+ prob_function=frag.ProbabilityFunction(
96
+ distribution="lognorm",
97
+ parameters=[Distance(0.40, "m"), Distance(2.2, "m"), 1 / 0.40],
98
+ ),
99
+ ),
100
+ frag.FragilityCurve(
101
+ asset_type=AssetTypes.transmission_underground_cables,
102
+ prob_function=frag.ProbabilityFunction(
103
+ distribution="lognorm",
104
+ parameters=[Distance(0.25, "m"), Distance(0.8, "m"), 1 / 0.25],
105
+ ),
106
+ ),
107
+ ],
108
+ )
@@ -0,0 +1,101 @@
1
+ import erad.models.fragility_curve as frag
2
+ from erad.quantities import Speed
3
+ from erad.enums import AssetTypes
4
+
5
+ DEFAULT_FLOOD_VELOCITY_FRAGILITY_CURVES = frag.HazardFragilityCurves(
6
+ asset_state_param="flood_velocity",
7
+ curves=[
8
+ frag.FragilityCurve(
9
+ asset_type=AssetTypes.switch,
10
+ prob_function=frag.ProbabilityFunction(
11
+ distribution="lognorm",
12
+ parameters=[Speed(0.35, "m/s"), Speed(1.5, "m/s"), 1 / 0.35],
13
+ ),
14
+ ),
15
+ frag.FragilityCurve(
16
+ asset_type=AssetTypes.battery_storage,
17
+ prob_function=frag.ProbabilityFunction(
18
+ distribution="lognorm",
19
+ parameters=[Speed(0.35, "m/s"), Speed(1.5, "m/s"), 1 / 0.35],
20
+ ),
21
+ ),
22
+ frag.FragilityCurve(
23
+ asset_type=AssetTypes.distribution_junction_box,
24
+ prob_function=frag.ProbabilityFunction(
25
+ distribution="lognorm", parameters=[Speed(0.4, "m/s"), Speed(2.0, "m/s"), 1 / 0.40]
26
+ ),
27
+ ),
28
+ frag.FragilityCurve(
29
+ asset_type=AssetTypes.distribution_overhead_lines,
30
+ prob_function=frag.ProbabilityFunction(
31
+ distribution="lognorm",
32
+ parameters=[Speed(0.35, "m/s"), Speed(3.5, "m/s"), 1 / 0.35],
33
+ ),
34
+ ),
35
+ frag.FragilityCurve(
36
+ asset_type=AssetTypes.distribution_poles,
37
+ prob_function=frag.ProbabilityFunction(
38
+ distribution="lognorm",
39
+ parameters=[Speed(0.35, "m/s"), Speed(3.0, "m/s"), 1 / 0.35],
40
+ ),
41
+ ),
42
+ frag.FragilityCurve(
43
+ asset_type=AssetTypes.distribution_underground_cables,
44
+ prob_function=frag.ProbabilityFunction(
45
+ distribution="lognorm", parameters=[Speed(0.4, "m/s"), Speed(2.0, "m/s"), 1 / 0.4]
46
+ ),
47
+ ),
48
+ frag.FragilityCurve(
49
+ asset_type=AssetTypes.solar_panels,
50
+ prob_function=frag.ProbabilityFunction(
51
+ distribution="lognorm",
52
+ parameters=[Speed(0.35, "m/s"), Speed(2.0, "m/s"), 1 / 0.35],
53
+ ),
54
+ ),
55
+ frag.FragilityCurve(
56
+ asset_type=AssetTypes.substation,
57
+ prob_function=frag.ProbabilityFunction(
58
+ distribution="lognorm", parameters=[Speed(0.4, "m/s"), Speed(2.0, "m/s"), 1 / 0.4]
59
+ ),
60
+ ),
61
+ frag.FragilityCurve(
62
+ asset_type=AssetTypes.transformer_mad_mount,
63
+ prob_function=frag.ProbabilityFunction(
64
+ distribution="lognorm",
65
+ parameters=[Speed(0.35, "m/s"), Speed(1.5, "m/s"), 1 / 0.35],
66
+ ),
67
+ ),
68
+ frag.FragilityCurve(
69
+ asset_type=AssetTypes.transformer_pole_mount,
70
+ prob_function=frag.ProbabilityFunction(
71
+ distribution="lognorm", parameters=[Speed(0.3, "m/s"), Speed(2.5, "m/s"), 1 / 0.30]
72
+ ),
73
+ ),
74
+ frag.FragilityCurve(
75
+ asset_type=AssetTypes.transmission_junction_box,
76
+ prob_function=frag.ProbabilityFunction(
77
+ distribution="lognorm", parameters=[Speed(0.4, "m/s"), Speed(1.5, "m/s"), 1 / 0.4]
78
+ ),
79
+ ),
80
+ frag.FragilityCurve(
81
+ asset_type=AssetTypes.transmission_overhead_lines,
82
+ prob_function=frag.ProbabilityFunction(
83
+ distribution="lognorm",
84
+ parameters=[Speed(0.35, "m/s"), Speed(3.5, "m/s"), 1 / 0.35],
85
+ ),
86
+ ),
87
+ frag.FragilityCurve(
88
+ asset_type=AssetTypes.transmission_tower,
89
+ prob_function=frag.ProbabilityFunction(
90
+ distribution="lognorm",
91
+ parameters=[Speed(0.40, "m/s"), Speed(3.0, "m/s"), 1 / 0.40],
92
+ ),
93
+ ),
94
+ frag.FragilityCurve(
95
+ asset_type=AssetTypes.transmission_underground_cables,
96
+ prob_function=frag.ProbabilityFunction(
97
+ distribution="lognorm", parameters=[Speed(0.40, "m/s"), Speed(2.0, "m/s"), 1 / 0.4]
98
+ ),
99
+ ),
100
+ ],
101
+ )
@@ -0,0 +1,23 @@
1
+ from erad.default_fragility_curves.default_peak_ground_acceleration import (
2
+ DEFAULT_PEAK_GROUND_ACCELERATION_FRAGILITY_CURVES,
3
+ )
4
+ from erad.default_fragility_curves.default_peak_ground_velocity import (
5
+ DEFAULT_PEAK_GROUND_VELOCITY_FRAGILITY_CURVES,
6
+ )
7
+ from erad.default_fragility_curves.default_fire_boundary_dist import (
8
+ DEFAULT_FIRE_BOUNDARY_FRAGILITY_CURVES,
9
+ )
10
+ from erad.default_fragility_curves.default_flood_velocity import (
11
+ DEFAULT_FLOOD_VELOCITY_FRAGILITY_CURVES,
12
+ )
13
+ from erad.default_fragility_curves.default_flood_depth import DEFAULT_FLOOD_DEPTH_FRAGILITY_CURVES
14
+ from erad.default_fragility_curves.default_wind_speed import DEFAULT_WIND_SPEED_FRAGILITY_CURVES
15
+
16
+ DEFAULT_FRAGILTY_CURVES = [
17
+ DEFAULT_PEAK_GROUND_ACCELERATION_FRAGILITY_CURVES,
18
+ DEFAULT_PEAK_GROUND_VELOCITY_FRAGILITY_CURVES,
19
+ DEFAULT_FIRE_BOUNDARY_FRAGILITY_CURVES,
20
+ DEFAULT_FLOOD_VELOCITY_FRAGILITY_CURVES,
21
+ DEFAULT_FLOOD_DEPTH_FRAGILITY_CURVES,
22
+ DEFAULT_WIND_SPEED_FRAGILITY_CURVES,
23
+ ]
@@ -0,0 +1,163 @@
1
+ import erad.models.fragility_curve as frag
2
+ from erad.quantities import Acceleration
3
+ from erad.enums import AssetTypes
4
+
5
+ DEFAULT_PEAK_GROUND_ACCELERATION_FRAGILITY_CURVES = frag.HazardFragilityCurves(
6
+ asset_state_param="peak_ground_acceleration",
7
+ curves=[
8
+ frag.FragilityCurve(
9
+ asset_type=AssetTypes.switch,
10
+ prob_function=frag.ProbabilityFunction(
11
+ distribution="lognorm",
12
+ parameters=[
13
+ Acceleration(0.8, "m/s**2"),
14
+ Acceleration(0.40 * 9.81, "m/s**2"),
15
+ 1 / 0.80,
16
+ ],
17
+ ),
18
+ ),
19
+ frag.FragilityCurve(
20
+ asset_type=AssetTypes.battery_storage,
21
+ prob_function=frag.ProbabilityFunction(
22
+ distribution="lognorm",
23
+ parameters=[
24
+ Acceleration(0.8, "m/s**2"),
25
+ Acceleration(0.40 * 9.81, "m/s**2"),
26
+ 1 / 0.80,
27
+ ],
28
+ ),
29
+ ),
30
+ frag.FragilityCurve(
31
+ asset_type=AssetTypes.distribution_junction_box,
32
+ prob_function=frag.ProbabilityFunction(
33
+ distribution="lognorm",
34
+ parameters=[
35
+ Acceleration(0.5, "m/s**2"),
36
+ Acceleration(0.45 * 9.81, "m/s**2"),
37
+ 1 / 0.50,
38
+ ],
39
+ ),
40
+ ),
41
+ frag.FragilityCurve(
42
+ asset_type=AssetTypes.distribution_overhead_lines,
43
+ prob_function=frag.ProbabilityFunction(
44
+ distribution="lognorm",
45
+ parameters=[
46
+ Acceleration(0.55, "m/s**2"),
47
+ Acceleration(0.50 * 9.81, "m/s**2"),
48
+ 1 / 0.55,
49
+ ],
50
+ ),
51
+ ),
52
+ frag.FragilityCurve(
53
+ asset_type=AssetTypes.distribution_poles,
54
+ prob_function=frag.ProbabilityFunction(
55
+ distribution="lognorm",
56
+ parameters=[
57
+ Acceleration(0.6, "m/s**2"),
58
+ Acceleration(0.40 * 9.81, "m/s**2"),
59
+ 1 / 0.6,
60
+ ],
61
+ ),
62
+ ),
63
+ frag.FragilityCurve(
64
+ asset_type=AssetTypes.distribution_underground_cables,
65
+ prob_function=frag.ProbabilityFunction(
66
+ distribution="lognorm",
67
+ parameters=[
68
+ Acceleration(0.8, "m/s**2"),
69
+ Acceleration(1.0 * 9.81, "m/s**2"),
70
+ 1 / 0.8,
71
+ ],
72
+ ),
73
+ ),
74
+ frag.FragilityCurve(
75
+ asset_type=AssetTypes.solar_panels,
76
+ prob_function=frag.ProbabilityFunction(
77
+ distribution="lognorm",
78
+ parameters=[
79
+ Acceleration(0.45, "m/s**2"),
80
+ Acceleration(0.45 * 9.81, "m/s**2"),
81
+ 1 / 0.45,
82
+ ],
83
+ ),
84
+ ),
85
+ frag.FragilityCurve(
86
+ asset_type=AssetTypes.substation,
87
+ prob_function=frag.ProbabilityFunction(
88
+ distribution="lognorm",
89
+ parameters=[
90
+ Acceleration(0.5, "m/s**2"),
91
+ Acceleration(0.40 * 9.81, "m/s**2"),
92
+ 1 / 0.5,
93
+ ],
94
+ ),
95
+ ),
96
+ frag.FragilityCurve(
97
+ asset_type=AssetTypes.transformer_mad_mount,
98
+ prob_function=frag.ProbabilityFunction(
99
+ distribution="lognorm",
100
+ parameters=[
101
+ Acceleration(0.6, "m/s**2"),
102
+ Acceleration(0.40 * 9.81, "m/s**2"),
103
+ 1 / 0.6,
104
+ ],
105
+ ),
106
+ ),
107
+ frag.FragilityCurve(
108
+ asset_type=AssetTypes.transformer_pole_mount,
109
+ prob_function=frag.ProbabilityFunction(
110
+ distribution="lognorm",
111
+ parameters=[
112
+ Acceleration(0.8, "m/s**2"),
113
+ Acceleration(0.50 * 9.81, "m/s**2"),
114
+ 1 / 0.70,
115
+ ],
116
+ ),
117
+ ),
118
+ frag.FragilityCurve(
119
+ asset_type=AssetTypes.transmission_junction_box,
120
+ prob_function=frag.ProbabilityFunction(
121
+ distribution="lognorm",
122
+ parameters=[
123
+ Acceleration(0.5, "m/s**2"),
124
+ Acceleration(0.50 * 9.81, "m/s**2"),
125
+ 1 / 0.50,
126
+ ],
127
+ ),
128
+ ),
129
+ frag.FragilityCurve(
130
+ asset_type=AssetTypes.transmission_overhead_lines,
131
+ prob_function=frag.ProbabilityFunction(
132
+ distribution="lognorm",
133
+ parameters=[
134
+ Acceleration(0.6, "m/s**2"),
135
+ Acceleration(0.60 * 9.81, "m/s**2"),
136
+ 1 / 0.60,
137
+ ],
138
+ ),
139
+ ),
140
+ frag.FragilityCurve(
141
+ asset_type=AssetTypes.transmission_tower,
142
+ prob_function=frag.ProbabilityFunction(
143
+ distribution="lognorm",
144
+ parameters=[
145
+ Acceleration(0.4, "m/s**2"),
146
+ Acceleration(0.35 * 9.81, "m/s**2"),
147
+ 1 / 0.40,
148
+ ],
149
+ ),
150
+ ),
151
+ frag.FragilityCurve(
152
+ asset_type=AssetTypes.transmission_underground_cables,
153
+ prob_function=frag.ProbabilityFunction(
154
+ distribution="lognorm",
155
+ parameters=[
156
+ Acceleration(0.55, "m/s**2"),
157
+ Acceleration(0.80 * 9.81, "m/s**2"),
158
+ 1 / 0.55,
159
+ ],
160
+ ),
161
+ ),
162
+ ],
163
+ )
@@ -0,0 +1,94 @@
1
+ import erad.models.fragility_curve as frag
2
+ from erad.enums import AssetTypes
3
+ from erad.quantities import Speed
4
+
5
+ DEFAULT_PEAK_GROUND_VELOCITY_FRAGILITY_CURVES = frag.HazardFragilityCurves(
6
+ asset_state_param="peak_ground_velocity",
7
+ curves=[
8
+ frag.FragilityCurve(
9
+ asset_type=AssetTypes.switch,
10
+ prob_function=frag.ProbabilityFunction(
11
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(35, "cm/s"), 2]
12
+ ),
13
+ ),
14
+ frag.FragilityCurve(
15
+ asset_type=AssetTypes.battery_storage,
16
+ prob_function=frag.ProbabilityFunction(
17
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(35, "cm/s"), 2]
18
+ ),
19
+ ),
20
+ frag.FragilityCurve(
21
+ asset_type=AssetTypes.distribution_junction_box,
22
+ prob_function=frag.ProbabilityFunction(
23
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(35, "cm/s"), 2]
24
+ ),
25
+ ),
26
+ frag.FragilityCurve(
27
+ asset_type=AssetTypes.distribution_overhead_lines,
28
+ prob_function=frag.ProbabilityFunction(
29
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(40, "cm/s"), 2]
30
+ ),
31
+ ),
32
+ frag.FragilityCurve(
33
+ asset_type=AssetTypes.distribution_poles,
34
+ prob_function=frag.ProbabilityFunction(
35
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(40, "cm/s"), 2]
36
+ ),
37
+ ),
38
+ frag.FragilityCurve(
39
+ asset_type=AssetTypes.distribution_underground_cables,
40
+ prob_function=frag.ProbabilityFunction(
41
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(60, "cm/s"), 2]
42
+ ),
43
+ ),
44
+ frag.FragilityCurve(
45
+ asset_type=AssetTypes.solar_panels,
46
+ prob_function=frag.ProbabilityFunction(
47
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(35, "cm/s"), 2]
48
+ ),
49
+ ),
50
+ frag.FragilityCurve(
51
+ asset_type=AssetTypes.substation,
52
+ prob_function=frag.ProbabilityFunction(
53
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(50, "cm/s"), 2]
54
+ ),
55
+ ),
56
+ frag.FragilityCurve(
57
+ asset_type=AssetTypes.transformer_mad_mount,
58
+ prob_function=frag.ProbabilityFunction(
59
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(35, "cm/s"), 2]
60
+ ),
61
+ ),
62
+ frag.FragilityCurve(
63
+ asset_type=AssetTypes.transformer_pole_mount,
64
+ prob_function=frag.ProbabilityFunction(
65
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(40, "cm/s"), 2]
66
+ ),
67
+ ),
68
+ frag.FragilityCurve(
69
+ asset_type=AssetTypes.transmission_junction_box,
70
+ prob_function=frag.ProbabilityFunction(
71
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(50, "cm/s"), 2]
72
+ ),
73
+ ),
74
+ frag.FragilityCurve(
75
+ asset_type=AssetTypes.transmission_overhead_lines,
76
+ prob_function=frag.ProbabilityFunction(
77
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(45, "cm/s"), 2]
78
+ ),
79
+ ),
80
+ frag.FragilityCurve(
81
+ asset_type=AssetTypes.transmission_tower,
82
+ prob_function=frag.ProbabilityFunction(
83
+ distribution="lognorm", parameters=[Speed(0.5, "cm/s"), Speed(35, "cm/s"), 2]
84
+ ),
85
+ ),
86
+ frag.FragilityCurve(
87
+ asset_type=AssetTypes.transmission_underground_cables,
88
+ prob_function=frag.ProbabilityFunction(
89
+ distribution="lognorm",
90
+ parameters=[Speed(0.55, "cm/s"), Speed(65, "cm/s"), 1 / 0.55],
91
+ ),
92
+ ),
93
+ ],
94
+ )