simcenter-dlml 3.0__tar.gz → 3.2__tar.gz

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 (93) hide show
  1. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/PKG-INFO +42 -6
  2. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/README.md +34 -0
  3. simcenter_dlml-3.2/data_sources/seismic/transportation_network/component/California RC Bridges 2025/source/README.md +394 -0
  4. simcenter_dlml-3.2/data_sources/seismic/transportation_network/component/California RC Bridges 2025 EDP/source/README.md +333 -0
  5. simcenter_dlml-3.2/data_sources/seismic/transportation_network/portfolio/California RC Bridges 2025/README.md +15 -0
  6. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/pyproject.toml +10 -7
  7. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/__init__.py +4 -0
  8. simcenter_dlml-3.2/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/consequence_repair.json +4 -0
  9. simcenter_dlml-3.2/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/fragility.json +4 -0
  10. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 original/fragility.csv +1 -1
  11. simcenter_dlml-3.2/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 original/fragility.json +4 -0
  12. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 original/loss_repair.json +2 -2
  13. {simcenter_dlml-3.0/src/dlml/data/seismic/building/portfolio/Hazus v6.1 → simcenter_dlml-3.2/src/dlml/data/seismic/building/portfolio/Hazus v5.1}/consequence_repair.json +2 -2
  14. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/portfolio/Hazus v5.1/fragility.json +2 -2
  15. simcenter_dlml-3.2/src/dlml/data/seismic/building/portfolio/Hazus v5.1/input_schema.json +147 -0
  16. {simcenter_dlml-3.0/src/dlml/data/seismic/building/portfolio/Hazus v6.1 → simcenter_dlml-3.2/src/dlml/data/seismic/building/portfolio/Hazus v5.1}/pelicun_config.py +32 -12
  17. {simcenter_dlml-3.0/src/dlml/data/seismic/building/portfolio/Hazus v5.1 → simcenter_dlml-3.2/src/dlml/data/seismic/building/portfolio/Hazus v6.1}/consequence_repair.json +2 -2
  18. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/portfolio/Hazus v6.1/fragility.json +2 -2
  19. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/portfolio/Hazus v6.1/input_schema.json +15 -5
  20. simcenter_dlml-3.2/src/dlml/data/seismic/building/portfolio/Hazus v6.1/pelicun_config.py +236 -0
  21. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/subassembly/Hazus v5.1/consequence_repair.json +2 -2
  22. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/subassembly/Hazus v5.1/fragility.json +2 -2
  23. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/power_network/portfolio/Hazus v5.1/fragility.json +2 -2
  24. simcenter_dlml-3.2/src/dlml/data/seismic/transportation_network/component/California RC Bridges 2025/fragility.csv +802 -0
  25. simcenter_dlml-3.2/src/dlml/data/seismic/transportation_network/component/California RC Bridges 2025/fragility.json +18681 -0
  26. simcenter_dlml-3.2/src/dlml/data/seismic/transportation_network/component/California RC Bridges 2025 EDP/fragility.csv +26 -0
  27. simcenter_dlml-3.2/src/dlml/data/seismic/transportation_network/component/California RC Bridges 2025 EDP/fragility.json +697 -0
  28. simcenter_dlml-3.2/src/dlml/data/seismic/transportation_network/portfolio/California RC Bridges 2025/fragility.csv +117 -0
  29. simcenter_dlml-3.2/src/dlml/data/seismic/transportation_network/portfolio/California RC Bridges 2025/fragility.json +3692 -0
  30. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/transportation_network/portfolio/Hazus v5.1/consequence_repair.json +2 -2
  31. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/transportation_network/portfolio/Hazus v5.1/fragility.json +2 -2
  32. simcenter_dlml-3.2/src/dlml/data/seismic/water_network/portfolio/Hazus v6.1/fragility.json +92 -0
  33. simcenter_dlml-3.2/src/dlml/vocabulary.py +137 -0
  34. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_search/search_ui.py +127 -74
  35. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_search/semantic_index.py +159 -70
  36. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_visuals/figures.py +2 -1
  37. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_visuals/tree_visuals.py +126 -59
  38. simcenter_dlml-3.0/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/consequence_repair.json +0 -4
  39. simcenter_dlml-3.0/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/fragility.json +0 -4
  40. simcenter_dlml-3.0/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 original/fragility.json +0 -4
  41. simcenter_dlml-3.0/src/dlml/vocabulary.py +0 -85
  42. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/.gitignore +0 -0
  43. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/LICENSE +0 -0
  44. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/_catalog.py +0 -0
  45. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/_tabular.py +0 -0
  46. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/api.py +0 -0
  47. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/cli.py +0 -0
  48. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/flood/building/portfolio/Hazus v6.1/FloodRulesets.py +0 -0
  49. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/flood/building/portfolio/Hazus v6.1/loss_repair.csv +0 -0
  50. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/flood/building/portfolio/Hazus v6.1/pelicun_config.py +0 -0
  51. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/component/SimCenter Wind Component Library/fragility.csv +0 -0
  52. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/component/SimCenter Wind Component Library/fragility.json +0 -0
  53. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/combine_wind_flood.csv +0 -0
  54. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/consequence_repair.csv +0 -0
  55. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/fragility.csv +0 -0
  56. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/input_schema.json +0 -0
  57. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 coupled/pelicun_config.py +0 -0
  58. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 original/combine_wind_flood.csv +0 -0
  59. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/hurricane/building/portfolio/Hazus v5.1 original/loss_repair.csv +0 -0
  60. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/component/FEMA P-58 2nd Edition/consequence_repair.csv +0 -0
  61. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/component/FEMA P-58 2nd Edition/consequence_repair.json +0 -0
  62. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/component/FEMA P-58 2nd Edition/fragility.csv +0 -0
  63. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/component/FEMA P-58 2nd Edition/fragility.json +0 -0
  64. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/portfolio/Hazus v5.1/consequence_repair.csv +0 -0
  65. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/portfolio/Hazus v5.1/fragility.csv +0 -0
  66. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/portfolio/Hazus v6.1/consequence_repair.csv +0 -0
  67. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/portfolio/Hazus v6.1/fragility.csv +0 -0
  68. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/subassembly/Hazus v5.1/consequence_repair.csv +0 -0
  69. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/subassembly/Hazus v5.1/fragility.csv +0 -0
  70. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/building/subassembly/Hazus v5.1/pelicun_config.py +0 -0
  71. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/power_network/portfolio/Hazus v5.1/fragility.csv +0 -0
  72. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/power_network/portfolio/Hazus v5.1/pelicun_config.py +0 -0
  73. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/transportation_network/portfolio/Hazus v5.1/consequence_repair.csv +0 -0
  74. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/transportation_network/portfolio/Hazus v5.1/fragility.csv +0 -0
  75. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/transportation_network/portfolio/Hazus v5.1/pelicun_config.py +0 -0
  76. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/water_network/portfolio/Hazus v6.1/fragility.csv +0 -0
  77. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/data/seismic/water_network/portfolio/Hazus v6.1/pelicun_config.py +0 -0
  78. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/__init__.py +0 -0
  79. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/app.py +0 -0
  80. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/assets/degenkolb.svg +0 -0
  81. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/assets/nsf_nheri_simcenter.png +0 -0
  82. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/pages/1_Browse_and_Search.py +0 -0
  83. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_core/__init__.py +0 -0
  84. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_core/component.py +0 -0
  85. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_core/downloads.py +0 -0
  86. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_search/__init__.py +0 -0
  87. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_ui/__init__.py +0 -0
  88. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_ui/branding.py +0 -0
  89. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_ui/main_page.py +0 -0
  90. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_ui/sidebar.py +0 -0
  91. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_ui/theme.py +0 -0
  92. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_visuals/__init__.py +0 -0
  93. {simcenter_dlml-3.0 → simcenter_dlml-3.2}/src/dlml/web/st_visuals/helpers_visual.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: simcenter-dlml
3
- Version: 3.0
3
+ Version: 3.2
4
4
  Summary: Damage and Loss Model Library
5
5
  Project-URL: Homepage, https://github.com/NHERI-SimCenter/DamageAndLossModelLibrary
6
6
  Project-URL: Documentation, https://nheri-simcenter.github.io/DamageAndLossModelLibrary/
@@ -28,7 +28,7 @@ Requires-Dist: codespell; extra == 'dev'
28
28
  Requires-Dist: colorlover; extra == 'dev'
29
29
  Requires-Dist: mypy; extra == 'dev'
30
30
  Requires-Dist: numpydoc; extra == 'dev'
31
- Requires-Dist: pelicun<3.10,>=3.9; extra == 'dev'
31
+ Requires-Dist: pelicun<4,>=3.10; extra == 'dev'
32
32
  Requires-Dist: plotly; extra == 'dev'
33
33
  Requires-Dist: pytest-cov; extra == 'dev'
34
34
  Requires-Dist: pytest>=7; extra == 'dev'
@@ -39,7 +39,8 @@ Requires-Dist: sphinx; extra == 'dev'
39
39
  Requires-Dist: sphinx-design; extra == 'dev'
40
40
  Requires-Dist: sphinx-rtd-theme; extra == 'dev'
41
41
  Requires-Dist: sphinxcontrib-bibtex; extra == 'dev'
42
- Requires-Dist: streamlit>=1.48.0; extra == 'dev'
42
+ Requires-Dist: streamlit>=1.48.0; (python_version < '3.10') and extra == 'dev'
43
+ Requires-Dist: streamlit>=1.58.0; (python_version >= '3.10') and extra == 'dev'
43
44
  Requires-Dist: tqdm; extra == 'dev'
44
45
  Provides-Extra: doc
45
46
  Requires-Dist: colorlover; extra == 'doc'
@@ -56,13 +57,14 @@ Requires-Dist: colorlover; extra == 'explorer'
56
57
  Requires-Dist: plotly; extra == 'explorer'
57
58
  Requires-Dist: qdrant-client[fastembed]>=1.14.0; extra == 'explorer'
58
59
  Requires-Dist: scipy; extra == 'explorer'
59
- Requires-Dist: streamlit>=1.48.0; extra == 'explorer'
60
+ Requires-Dist: streamlit>=1.48.0; (python_version < '3.10') and extra == 'explorer'
61
+ Requires-Dist: streamlit>=1.58.0; (python_version >= '3.10') and extra == 'explorer'
60
62
  Provides-Extra: lint
61
63
  Requires-Dist: codespell; extra == 'lint'
62
64
  Requires-Dist: mypy; extra == 'lint'
63
65
  Requires-Dist: ruff==0.7.0; extra == 'lint'
64
66
  Provides-Extra: test
65
- Requires-Dist: pelicun<3.10,>=3.9; extra == 'test'
67
+ Requires-Dist: pelicun<4,>=3.10; extra == 'test'
66
68
  Requires-Dist: pytest-cov; extra == 'test'
67
69
  Requires-Dist: pytest>=7; extra == 'test'
68
70
  Description-Content-Type: text/markdown
@@ -180,6 +182,10 @@ The library is the data backbone for
180
182
  damage-and-loss engine, and is available automatically through the **PBE** and
181
183
  **R2D** desktop applications that run Pelicun under the hood.
182
184
 
185
+ Pelicun 3.10 and later install this library from PyPI and need no further setup.
186
+ Pelicun 3.9 and earlier read the model data from this repository instead; see
187
+ [Release policy](#release-policy) if you are still on one of those versions.
188
+
183
189
  ### Work with the raw data
184
190
 
185
191
  You can also read the CSV/JSON files directly from a clone of this repository:
@@ -192,6 +198,36 @@ git clone https://github.com/NHERI-SimCenter/DamageAndLossModelLibrary.git
192
198
  > with auto-generated model pages also remains available; it will be revised over
193
199
  > time to complement the DLML Explorer.
194
200
 
201
+ ## Release policy
202
+
203
+ Releases are published to PyPI as [`simcenter-dlml`](https://pypi.org/project/simcenter-dlml/)
204
+ and tagged here, with matching entries in [`CHANGELOG.md`](CHANGELOG.md). Version
205
+ numbers use two segments (`3.0`, `3.1`, ...), and every model in a release is a
206
+ fixed snapshot, so an analysis can cite the exact data it used.
207
+
208
+ ### Migrating from Pelicun 3.9 and earlier
209
+
210
+ Pelicun 3.9 and earlier downloaded the model data from this repository's latest
211
+ GitHub release when you imported them. Since v3.0 the data lives under
212
+ `src/dlml/data/`, a layout those versions cannot read, so they now fail with a
213
+ download error.
214
+
215
+ We recommend upgrading. Pelicun 3.10 and later depend on `simcenter-dlml` directly
216
+ and download nothing:
217
+
218
+ ```bash
219
+ pip install --upgrade pelicun
220
+ ```
221
+
222
+ If you need to stay on Pelicun 3.9 or earlier, pin the model data to the last
223
+ release those versions can read:
224
+
225
+ ```bash
226
+ pelicun dlml update v2.1.0
227
+ ```
228
+
229
+ The `v2.1.0` release stays available for this purpose.
230
+
195
231
  ## Contributing
196
232
 
197
233
  We welcome new and improved models from researchers and practitioners. A formal
@@ -111,6 +111,10 @@ The library is the data backbone for
111
111
  damage-and-loss engine, and is available automatically through the **PBE** and
112
112
  **R2D** desktop applications that run Pelicun under the hood.
113
113
 
114
+ Pelicun 3.10 and later install this library from PyPI and need no further setup.
115
+ Pelicun 3.9 and earlier read the model data from this repository instead; see
116
+ [Release policy](#release-policy) if you are still on one of those versions.
117
+
114
118
  ### Work with the raw data
115
119
 
116
120
  You can also read the CSV/JSON files directly from a clone of this repository:
@@ -123,6 +127,36 @@ git clone https://github.com/NHERI-SimCenter/DamageAndLossModelLibrary.git
123
127
  > with auto-generated model pages also remains available; it will be revised over
124
128
  > time to complement the DLML Explorer.
125
129
 
130
+ ## Release policy
131
+
132
+ Releases are published to PyPI as [`simcenter-dlml`](https://pypi.org/project/simcenter-dlml/)
133
+ and tagged here, with matching entries in [`CHANGELOG.md`](CHANGELOG.md). Version
134
+ numbers use two segments (`3.0`, `3.1`, ...), and every model in a release is a
135
+ fixed snapshot, so an analysis can cite the exact data it used.
136
+
137
+ ### Migrating from Pelicun 3.9 and earlier
138
+
139
+ Pelicun 3.9 and earlier downloaded the model data from this repository's latest
140
+ GitHub release when you imported them. Since v3.0 the data lives under
141
+ `src/dlml/data/`, a layout those versions cannot read, so they now fail with a
142
+ download error.
143
+
144
+ We recommend upgrading. Pelicun 3.10 and later depend on `simcenter-dlml` directly
145
+ and download nothing:
146
+
147
+ ```bash
148
+ pip install --upgrade pelicun
149
+ ```
150
+
151
+ If you need to stay on Pelicun 3.9 or earlier, pin the model data to the last
152
+ release those versions can read:
153
+
154
+ ```bash
155
+ pelicun dlml update v2.1.0
156
+ ```
157
+
158
+ The `v2.1.0` release stays available for this purpose.
159
+
126
160
  ## Contributing
127
161
 
128
162
  We welcome new and improved models from researchers and practitioners. A formal
@@ -0,0 +1,394 @@
1
+ # Source data
2
+
3
+ `Sa_1_Fragility Database.csv` is a copy of the file of the same name in
4
+ DesignSafe project PRJ-5910, version 1 (published 2025-04-29,
5
+ doi:10.17603/ds2-c73m-nj37, Open Data Commons Attribution License):
6
+
7
+ Chen, S., Y. Xie, C. Wu, H. V. Burton, J. E. Padgett, and Á. Zsarnóczay. 2025.
8
+ Second-Generation Component and System-Level Seismic Fragility Models for
9
+ Reinforced Concrete Bridges in California. DesignSafe-CI, PRJ-5910.
10
+
11
+ The data paper describing it is Chen et al. (2025), Earthquake Spectra 41(4):
12
+ 3234–3253, doi:10.1177/87552930251343634.
13
+
14
+ The same project version also publishes `EDP_Fragility Database.csv`, which
15
+ lists the median capacities of each component for its damage states, in terms of
16
+ the engineering demand parameter (EDP) of the component. That file is kept in
17
+ `../../California RC Bridges 2025 EDP/source/`. The generator in
18
+ `../../California RC Bridges 2025 EDP/` builds the EDP-based dataset
19
+ `seismic/transportation_network/component/California RC Bridges 2025 EDP` from
20
+ it. The generator of this folder, `../generate_library_files.py`, reads it only
21
+ to confirm the capacities quoted in the damage-state descriptions (see
22
+ [Damage-state descriptions](#damage-state-descriptions)); it changes no
23
+ fragility parameter here.
24
+
25
+ This file is the record of every change the generator makes to the published
26
+ labels and values and of every published row it omits. The same changes are
27
+ recorded in the `correction` column of `../id_crosswalk.csv` and in the Comments
28
+ of each affected model.
29
+
30
+ ## File format
31
+
32
+ `Sa_1_Fragility Database.csv`:
33
+
34
+ - UTF-8 with a byte-order mark, 1,018 data rows; CRLF line endings in the
35
+ DesignSafe file, stored here with LF endings.
36
+ - Columns: `Bridge group`, `Fragility notation`, the lognormal median (`_λ`, in
37
+ g) and dispersion (`_ζ`) of Sa(1.0 s) for the `Slight`, `Moderate`,
38
+ `Extensive`, and `Complete` damage states, `Notes`, and `Reference`.
39
+ - `N/A` marks a damage state with negligible probability of damage from ground
40
+ shaking; an empty cell marks a state the source does not define.
41
+
42
+ Row numbers used in the generator, the crosswalk, the model metadata, and this
43
+ file are 0-based data rows of `Sa_1_Fragility Database.csv`; the spreadsheet row
44
+ is the data row plus 2.
45
+
46
+ Keep the file unchanged. Corrections are applied by
47
+ `../generate_library_files.py`.
48
+
49
+ ## Number formatting
50
+
51
+ The source values have at most two decimals and no trailing zeros (3,968 cells
52
+ with two decimals, 489 with one, and 47 with none); the generator stops if a
53
+ cell has more. Every value read from the source is written to `fragility.csv`
54
+ exactly as published, with only the float noise of the conversion removed. The
55
+ recomputed values of data rows 0 to 7 (see [Recomputed single-span
56
+ diaphragm-abutment curves](#recomputed-single-span-diaphragm-abutment-curves))
57
+ are rounded to four decimals, and trailing zeros are dropped, so 32.5740 is
58
+ written 32.574. The Comments of those models quote each published value as
59
+ printed and each recomputed value as stored.
60
+
61
+ ## Changes to the published labels and values
62
+
63
+ ### Column-shape labels
64
+
65
+ Three rows carry the wrong column shape in their `Notes`. The values are
66
+ unchanged; only the label, and with it the shape token of the model ID, is
67
+ corrected.
68
+
69
+ | Row | Published shape | Stored shape |
70
+ |---|---|---|
71
+ | 298 | circular | oblong |
72
+ | 299 | oblong | circular |
73
+ | 741 | circular | rectangular |
74
+
75
+ The corrected models are `CRCB.E2.S3P.C1.D.AbPass.BoxGirder.Obl.M17` (row 298),
76
+ `CRCB.E2.S3P.C1.D.AbPass.BoxGirder.Span5.MF.Circ.MCP18` (row 299), and
77
+ `CRCB.E1.S3P.C1.S.System.BoxGirder.Rect.M17` (row 741).
78
+
79
+ Evidence:
80
+
81
+ - Row 298: the published values match the oblong-column class S-E2-S34-O-D of
82
+ the Mangalathu (2017) thesis.
83
+ - Row 299: Mangalathu et al. (2018) model circular columns only (Fig. 2c, Fig.
84
+ 3, and Table 1 of the study). The source exchanges the shape labels of rows
85
+ 298 and 299; the values are in the correct rows.
86
+ - Row 741: the published values match the rectangular-column class S-E1-S34-R-S
87
+ of the thesis and the omitted rectangular-column Soleimani (2017) entry of the
88
+ same group (data row 744).
89
+
90
+ ### Abutment directions of the single-span seat-abutment curves
91
+
92
+ The four Cavalcante et al. (2022) active and passive abutment curves of group
93
+ E123-S1-C0-S carry the values that Cavalcante et al. (2022, Table 9) give for
94
+ the other direction. The notation is exchanged; the values are unchanged.
95
+
96
+ | Data row | Deck | Published notation | Stored notation | Model ID |
97
+ |---|---|---|---|---|
98
+ | 26 | slab | AbAct | AbPass | `CRCB.E123.S1.C0.S.AbPass.Slab.CPR22` |
99
+ | 27 | T-beam | AbAct | AbPass | `CRCB.E123.S1.C0.S.AbPass.TBeam.CPR22` |
100
+ | 28 | slab | AbPass | AbAct | `CRCB.E123.S1.C0.S.AbAct.Slab.CPR22` |
101
+ | 29 | T-beam | AbPass | AbAct | `CRCB.E123.S1.C0.S.AbAct.TBeam.CPR22` |
102
+
103
+ The published values of these rows, as median in g and dispersion for the slight
104
+ and the moderate state:
105
+
106
+ | Row | Slight λ | Slight ζ | Moderate λ | Moderate ζ |
107
+ |---|---|---|---|---|
108
+ | 26 | 24.8 | 0.95 | 104 | 0.95 |
109
+ | 27 | 27.7 | 0.78 | 117 | 0.78 |
110
+ | 28 | 10.9 | 0.95 | 35.6 | 0.95 |
111
+ | 29 | 12.9 | 0.77 | 43 | 0.77 |
112
+
113
+ In the tables of this file, λ is the median in g and ζ the dispersion, as in the
114
+ column names of the source file.
115
+
116
+ ### Recomputed single-span diaphragm-abutment curves
117
+
118
+ In the literature they surveyed, Chen et al. (2025) found no viable set of
119
+ fragility models for single-span bridges with diaphragm abutments. They derived
120
+ the active and passive abutment curves of group E123-S1-C0-D (data rows 0 to 7)
121
+ from the seat-abutment curves of E123-S1-C0-S with modification factors. A
122
+ modification factor is the ratio of a diaphragm-abutment to the corresponding
123
+ seat-abutment fragility parameter in the two-span, single-column groups of one
124
+ era: Era 1, or Eras 2 and 3, as the `Notes` of each row state. The published
125
+ values show the factors applied to the medians and the dispersions; the paper
126
+ describes the adjustment of the medians only. The database does not list the
127
+ factors.
128
+
129
+ The factors were applied by the labels of the seat rows. The slight-median
130
+ factors of Eras 2 and 3 can be computed from the source file. The Era 2 and Era
131
+ 3 two-span, single-column groups publish identical AbAct and AbPass curves, so
132
+ the Era 2 rows serve for both: E2-S2-C1-D (diaphragm abutments) and E2-S2-C1-S
133
+ (seat abutments), each with a circular-column and an oblong-column curve. F is
134
+ the mean of the two diaphragm-to-seat ratios:
135
+
136
+ AbAct: F = mean(0.50 / 0.73, 0.42 / 0.66) = 0.6606 (data rows 114, 115 over
137
+ 536, 537) AbPass: F = mean(1.05 / 1.31, 0.94 / 1.24) = 0.7798 (data rows 116,
138
+ 117 over 538, 539)
139
+
140
+ Applied to the seat rows as labeled, these factors reproduce the published
141
+ slight medians of rows 1 and 5: 0.6606 × 24.8 = 16.38 g (seat row 26, labeled
142
+ AbAct) and 0.7798 × 10.9 = 8.50 g (seat row 28, labeled AbPass). Applied to the
143
+ seat rows that hold the direction of each row, they give 0.6606 × 10.9 = 7.20 g
144
+ and 0.7798 × 24.8 = 19.34 g. The AbAct diaphragm curves were therefore built on
145
+ the seat rows labeled AbAct (26 and 27), which hold the passive-direction
146
+ values, and the AbPass curves on rows 28 and 29, which hold the active-direction
147
+ values, so the swap corrected above propagates into rows 0 to 7.
148
+
149
+ Each published value is F × s_labeled, where F is the factor for the direction
150
+ and parameter of the row and s_labeled is the value of the seat row with the
151
+ same deck and the same published label. Keeping F and using the seat row that
152
+ holds the direction of the row, s_correct, gives
153
+
154
+ recomputed = F × s_correct = published × s_correct / s_labeled
155
+
156
+ so the factor itself need not be known. Every populated value is recomputed this
157
+ way and rounded to four decimals. The ratios s_correct / s_labeled are listed
158
+ below; the seat rows are given as the labeled row, then the correct row:
159
+
160
+ | Rows | Curve | Seat rows | Slight λ | Slight ζ | Moderate λ | Moderate ζ |
161
+ |---|---|---|---|---|---|---|
162
+ | 0, 1 | active, slab | 26, 28 | 0.4395 | 1.0000 | 0.3423 | 1.0000 |
163
+ | 2, 3 | active, T-beam | 27, 29 | 0.4657 | 0.9872 | 0.3675 | 0.9872 |
164
+ | 4, 5 | passive, slab | 28, 26 | 2.2752 | 1.0000 | 2.9213 | 1.0000 |
165
+ | 6, 7 | passive, T-beam | 29, 27 | 2.1473 | 1.0130 | 2.7209 | 1.0130 |
166
+
167
+ The ratios are shown to four decimals; the generator uses them unrounded. The
168
+ eight recomputed models are:
169
+
170
+ | Row | Model ID |
171
+ |---|---|
172
+ | 0 | `CRCB.E123.S1.C0.D.AbAct.Slab.Mod1.CPR22` |
173
+ | 1 | `CRCB.E123.S1.C0.D.AbAct.Slab.Mod23.CPR22` |
174
+ | 2 | `CRCB.E123.S1.C0.D.AbAct.TBeam.Mod1.CPR22` |
175
+ | 3 | `CRCB.E123.S1.C0.D.AbAct.TBeam.Mod23.CPR22` |
176
+ | 4 | `CRCB.E123.S1.C0.D.AbPass.Slab.Mod1.CPR22` |
177
+ | 5 | `CRCB.E123.S1.C0.D.AbPass.Slab.Mod23.CPR22` |
178
+ | 6 | `CRCB.E123.S1.C0.D.AbPass.TBeam.Mod1.CPR22` |
179
+ | 7 | `CRCB.E123.S1.C0.D.AbPass.TBeam.Mod23.CPR22` |
180
+
181
+ Their published and stored values (each cell gives the published value, then the
182
+ stored value):
183
+
184
+ | Row | Slight λ | Slight ζ | Moderate λ | Moderate ζ |
185
+ |---|---|---|---|---|
186
+ | 0 | 17.56 → 7.7179 | 0.95 → 0.95 | 78.73 → 26.9499 | 0.95 → 0.95 |
187
+ | 1 | 16.38 → 7.1993 | 1.17 → 1.17 | 95.16 → 32.574 | 1.17 → 1.17 |
188
+ | 2 | 19.62 → 9.1371 | 0.78 → 0.77 | 88.57 → 32.5514 | 0.78 → 0.77 |
189
+ | 3 | 18.3 → 8.5224 | 0.96 → 0.9477 | 107.06 → 39.3468 | 0.96 → 0.9477 |
190
+ | 4 | 7.75 → 17.633 | 1 → 1 | 26.3 → 76.8315 | 1 → 1 |
191
+ | 5 | 8.5 → 19.3394 | 1.19 → 1.19 | 37.22 → 108.7326 | 1.19 → 1.19 |
192
+ | 6 | 9.17 → 19.6906 | 0.81 → 0.8205 | 31.77 → 86.444 | 0.81 → 0.8205 |
193
+ | 7 | 10.06 → 21.6017 | 0.96 → 0.9725 | 44.96 → 122.333 | 0.96 → 0.9725 |
194
+
195
+ The extensive and complete states of these rows are not defined. The generator
196
+ repeats the calculation of F above from the source rows and stops unless F ×
197
+ s_labeled equals the published slight median of rows 1 and 5, and F × s_correct
198
+ equals the recomputed one, each within 0.01 g.
199
+
200
+ ### Moderate dispersion of the Shao et al. (2022) 10 ft slope-offset curves
201
+
202
+ Ten rows repeat one Shao et al. (2022) configuration, an abutment on piles with
203
+ a 10 ft approach slab and damage through slope offset, in different groups. The
204
+ source prints a large dispersion of 1.99, as does Shao et al. (2022, Table 6);
205
+ the dataset stores 0.99. Shao et al. (2022, Sec. 4.4) defines the dispersion of
206
+ the integrated model as the square root of the sum of squares of the dispersions
207
+ of its three methods, and for this configuration their Tables 3 to 5 give 0.41,
208
+ 0.62, and 0.65, which combine to 0.987. The moderate median, 0.92 g, and the
209
+ slight state are unchanged.
210
+
211
+ | Data row | Group | Model ID |
212
+ |---|---|---|
213
+ | 17 | E123-S1-C0-D | `CRCB.E123.S1.C0.D.Approach.Pile.Slope10.SXR22` |
214
+ | 41 | E123-S1-C0-S | `CRCB.E123.S1.C0.S.Approach.Pile.Slope10.SXR22` |
215
+ | 63 | E1-S2-C1-D | `CRCB.E1.S2.C1.D.Approach.Pile.Slope10.SXR22` |
216
+ | 103 | E1-S2-C2P-D | `CRCB.E1.S2.C2P.D.Approach.Pile.Slope10.SXR22` |
217
+ | 247 | E1-S3P-C1-D | `CRCB.E1.S3P.C1.D.Approach.Pile.Slope10.SXR22` |
218
+ | 286 | E1-S3P-C2P-D | `CRCB.E1.S3P.C2P.D.Approach.Pile.Slope10.SXR22` |
219
+ | 466 | E1-S2-C1-S | `CRCB.E1.S2.C1.S.Approach.Pile.Slope10.SXR22` |
220
+ | 522 | E1-S2-C2P-S | `CRCB.E1.S2.C2P.S.Approach.Pile.Slope10.SXR22` |
221
+ | 739 | E1-S3P-C1-S | `CRCB.E1.S3P.C1.S.Approach.Pile.Slope10.SXR22` |
222
+ | 795 | E1-S3P-C2P-S | `CRCB.E1.S3P.C2P.S.Approach.Pile.Slope10.SXR22` |
223
+
224
+ ### Filled lower states of nine Unseating curves
225
+
226
+ Nine Unseating rows define the extensive and complete states only: the source
227
+ studies define unseating capacity for those two states, and the slight and
228
+ moderate cells are empty. The generator sets the slight and moderate median and
229
+ dispersion equal to the extensive ones. The extensive and complete curves are
230
+ unchanged and keep the numbers DS3 and DS4. Note that with this setup, the
231
+ slight and moderate states cannot occur which is in line with the intent of
232
+ model developers. The LS1 and LS2 descriptions of these models say that the
233
+ state is not defined by the source.
234
+
235
+ The nine models are:
236
+
237
+ | Row | Model ID |
238
+ |---|---|
239
+ | 24 | `CRCB.E123.S1.C0.S.Unseating.Slab.CPR22` |
240
+ | 25 | `CRCB.E123.S1.C0.S.Unseating.TBeam.CPR22` |
241
+ | 249 | `CRCB.E1.S3P.C1.D.Unseating.BoxGirder.Span5.MF.Disc.Circ.MCP18` |
242
+ | 316 | `CRCB.E2.S3P.C1.D.Unseating.BoxGirder.Span5.MF.Disc.Circ.MCP18` |
243
+ | 400 | `CRCB.E3.S3P.C1.D.Unseating.BoxGirder.Span5.MF.Disc.Circ.MCP18` |
244
+ | 851 | `CRCB.E2.S3P.C2P.S.Unseating.BoxGirder.TCB.Span3.Obl.JML19` |
245
+ | 852 | `CRCB.E2.S3P.C2P.S.Unseating.BoxGirder.TCB.Span3.Flr1.JML19` |
246
+ | 853 | `CRCB.E2.S3P.C2P.S.Unseating.BoxGirder.TCB.Span3.Flr1T.JML19` |
247
+ | 854 | `CRCB.E2.S3P.C2P.S.Unseating.BoxGirder.TCB.Span3.Flr2.JML19` |
248
+
249
+ The extensive median and dispersion copied to the slight and moderate states:
250
+
251
+ | Row | Extensive λ | Extensive ζ |
252
+ |---|---|---|
253
+ | 24 | 0.94 | 0.73 |
254
+ | 25 | 0.8 | 0.64 |
255
+ | 249 | 3.87 | 1.12 |
256
+ | 316 | 9.8 | 0.99 |
257
+ | 400 | 11.72 | 1.04 |
258
+ | 851 | 7.79 | 0.9 |
259
+ | 852 | 7.66 | 0.9 |
260
+ | 853 | 7.18 | 0.87 |
261
+ | 854 | 7.28 | 0.85 |
262
+
263
+ ## Omitted rows
264
+
265
+ The generator omits 101 of the 1,018 rows; the crosswalk lists them with
266
+ `omitted` in its `dataset` column.
267
+
268
+ ### Soleimani (2017) entries that repeat Mangalathu (2017) curves
269
+
270
+ In three single-column, multi-span seat-abutment groups the source lists six
271
+ Mangalathu (2017) System curves a second time, attributed to Soleimani (2017),
272
+ with the same column shape. All eight parameters of each repeated row equal
273
+ those of its Mangalathu (2017) partner, which the generator checks. The repeated
274
+ rows are omitted, and the Mangalathu (2017) models are kept.
275
+
276
+ | Omitted | Partner | Shape | Kept model ID |
277
+ |---|---|---|---|
278
+ | 742 | 740 | circular | `CRCB.E1.S3P.C1.S.System.BoxGirder.Circ.M17` |
279
+ | 744 | 741 | rectangular | `CRCB.E1.S3P.C1.S.System.BoxGirder.Rect.M17` |
280
+ | 835 | 833 | circular | `CRCB.E2.S3P.C1.S.System.BoxGirder.Circ.M17` |
281
+ | 837 | 834 | oblong | `CRCB.E2.S3P.C1.S.System.BoxGirder.Obl.M17` |
282
+ | 957 | 955 | circular | `CRCB.E3.S3P.C1.S.System.BoxGirder.Circ.M17` |
283
+ | 959 | 956 | oblong | `CRCB.E3.S3P.C1.S.System.BoxGirder.Obl.M17` |
284
+
285
+ The shape of row 741 is its corrected label; the source labels it circular.
286
+
287
+ ### Rows without parameters
288
+
289
+ Ninety-five component rows are N/A in the slight and moderate median and
290
+ dispersion, the only states the source defines for these components (the
291
+ extensive and complete cells are empty). The database uses N/A to mark a
292
+ negligible probability of damage from ground shaking. They hold no curve and are
293
+ omitted; no System row is among them. They are 71 column foundation rotation
294
+ (FndRot) rows, in every group where the component occurs except for one row of
295
+ E1-S2-C2P-S (data row 504, kept as
296
+ `CRCB.E1.S2.C2P.S.FndRot.BoxGirder.MCB.Rect.M17`), and 24 shear key (Key) rows,
297
+ in the Era 2 and Era 3 multi-span seat-abutment groups.
298
+
299
+ | Component | Group | Rows | Data rows |
300
+ |---|---|---|---|
301
+ | FndRot | E1-S2-C1-D | 2 | 48, 49 |
302
+ | FndRot | E1-S2-C1-S | 2 | 453, 454 |
303
+ | FndRot | E1-S2-C2P-D | 4 | 90, 91, 92, 93 |
304
+ | FndRot | E1-S2-C2P-S | 3 | 501, 502, 503 |
305
+ | FndRot | E1-S3P-C1-D | 2 | 238, 239 |
306
+ | FndRot | E1-S3P-C1-S | 2 | 726, 727 |
307
+ | FndRot | E1-S3P-C2P-D | 4 | 273, 274, 275, 276 |
308
+ | FndRot | E1-S3P-C2P-S | 4 | 774, 775, 776, 777 |
309
+ | FndRot | E2-S2-C1-D | 2 | 122, 123 |
310
+ | FndRot | E2-S2-C1-S | 2 | 546, 547 |
311
+ | FndRot | E2-S2-C2P-D | 4 | 153, 154, 155, 156 |
312
+ | FndRot | E2-S2-C2P-S | 4 | 593, 594, 595, 596 |
313
+ | FndRot | E2-S3P-C1-D | 2 | 305, 306 |
314
+ | FndRot | E2-S3P-C1-S | 2 | 816, 817 |
315
+ | FndRot | E2-S3P-C2P-D | 4 | 356, 357, 358, 359 |
316
+ | FndRot | E2-S3P-C2P-S | 4 | 891, 892, 893, 894 |
317
+ | FndRot | E3-S2-C1-D | 2 | 181, 182 |
318
+ | FndRot | E3-S2-C1-S | 2 | 636, 637 |
319
+ | FndRot | E3-S2-C2P-D | 4 | 209, 210, 211, 212 |
320
+ | FndRot | E3-S2-C2P-S | 4 | 683, 684, 685, 686 |
321
+ | FndRot | E3-S3P-C1-D | 2 | 392, 393 |
322
+ | FndRot | E3-S3P-C1-S | 2 | 938, 939 |
323
+ | FndRot | E3-S3P-C2P-D | 4 | 424, 425, 426, 427 |
324
+ | FndRot | E3-S3P-C2P-S | 4 | 989, 990, 991, 992 |
325
+ | Key | E2-S2-C1-S | 2 | 550, 551 |
326
+ | Key | E2-S2-C2P-S | 4 | 601, 602, 603, 604 |
327
+ | Key | E2-S3P-C1-S | 2 | 820, 821 |
328
+ | Key | E2-S3P-C2P-S | 4 | 899, 900, 901, 902 |
329
+ | Key | E3-S2-C1-S | 2 | 640, 641 |
330
+ | Key | E3-S2-C2P-S | 4 | 691, 692, 693, 694 |
331
+ | Key | E3-S3P-C1-S | 2 | 942, 943 |
332
+ | Key | E3-S3P-C2P-S | 4 | 997, 998, 999, 1000 |
333
+
334
+ ## Soleimani (2017) models
335
+
336
+ Six Soleimani (2017) System curves remain after the repeated entries are
337
+ omitted. Each is the regular base model of the unbalanced-frame study of that
338
+ thesis (Tables 7.10 and I.5).
339
+
340
+ | Data row | Model ID |
341
+ |---|---|
342
+ | 743 | `CRCB.E1.S3P.C1.S.System.BoxGirder.Circ.S17` |
343
+ | 745 | `CRCB.E1.S3P.C1.S.System.BoxGirder.Rect.S17` |
344
+ | 836 | `CRCB.E2.S3P.C1.S.System.BoxGirder.Circ.S17` |
345
+ | 838 | `CRCB.E2.S3P.C1.S.System.BoxGirder.Obl.S17` |
346
+ | 958 | `CRCB.E3.S3P.C1.S.System.BoxGirder.Circ.S17` |
347
+ | 960 | `CRCB.E3.S3P.C1.S.System.BoxGirder.Obl.S17` |
348
+
349
+ The author states in the Acknowledgements of the thesis that its curves "are
350
+ illustrative and should not be used for deployment in ShakeCast, or other risk
351
+ analysis software". Chen et al. (2025) included the curves in the database. This
352
+ library distributes models and is not a risk-analysis application, but its
353
+ models are meant for damage and loss assessments such as pelicun's, which is the
354
+ kind of use the author cautions against. Users must judge for themselves whether
355
+ these curves suit their use before deploying them. The Comments of each of the
356
+ six models carry the same caution.
357
+
358
+ ## Damage-state descriptions
359
+
360
+ The LimitStates descriptions of the models are written for this library from the
361
+ wording in `../metadata_text.json` (`limit_states`). Their sources are:
362
+
363
+ - System: the Hazus verbal definitions of the four bridge damage states.
364
+ - Column, Unseating, and the secondary components (abutments, bearings, deck
365
+ displacement, column foundations, shear keys, and joint seals): Mangalathu
366
+ (2017) Sec. 6.1 and Table 6.13, Ramanathan (2012) Chapter 5, and Chen et al.
367
+ (2025) Sec. 3. The two-state unseating capacities of 6 and 9 in. come from the
368
+ EDP-file row for groups E1-S2-C2P-S, E1-S3P-C2P-S, E123-S1-C0-D, and
369
+ E123-S1-C0-S, which cites Mangalathu, Soleimani, and Jeon (2017) and
370
+ Cavalcante et al. (2022).
371
+ - Approach: Shao et al. (2022) Table 2.
372
+ - Cavalcante et al. (2022) bearings: Cavalcante et al. (2022) Table 8.
373
+
374
+ The median capacities that the descriptions quote come from `EDP_Fragility
375
+ Database.csv` in `../../California RC Bridges 2025 EDP/source/`, where they are
376
+ expressed in the EDP of each component (curvature ductility, column drift in
377
+ percent, displacement or settlement in inches, or rotation in radians). The
378
+ generator keeps them in its `CAPACITIES` table and stops unless every quoted
379
+ value equals the value of the matching row of the EDP file; its function
380
+ `edp_row_key` documents how rows are matched by component, EDP, and the era or
381
+ group in `Notes`. Some values of the EDP file are deliberately not quoted:
382
+
383
+ - The moderate joint seal description quotes no capacity. The EDP file gives 5
384
+ in., which the published seal curves do not reproduce (see the seal sentence
385
+ in the model Comments).
386
+ - The Era 3 row of unseating capacities is not quoted for the Era 3 Mangalathu
387
+ (2017) curves. Their descriptions quote the Era 2 set, because those curves
388
+ equal the Era 2 curves of the thesis (Appendix C).
389
+ - The two-state unseating models (the filled rows above) quote only the
390
+ extensive and complete capacities of their row.
391
+ - No description quotes the `Dispersion` column.
392
+
393
+ The capacities are text only; no fragility parameter is derived from or changed
394
+ by the EDP file.