Skip to content

Commit f9dd097

Browse files
authored
Merge pull request #670 from IN-CORE/release-1.22.0
Release 1.22.0
2 parents 6b6d696 + be90b85 commit f9dd097

File tree

118 files changed

+5128
-1495
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+5128
-1495
lines changed

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,36 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](http://keepachangelog.com/)
66
and this project adheres to [Semantic Versioning](http://semver.org/).
77

8+
9+
## [1.22.0] - 2025-07-31
10+
11+
### Added
12+
13+
- ML Enabled Galveston CGE [#641](https://github.com/IN-CORE/pyincore/issues/641)
14+
- ML Enabled Mobile CGE [#658](https://github.com/IN-CORE/pyincore/issues/658)
15+
- ML Enabled Seaside CGE [#657](https://github.com/IN-CORE/pyincore/issues/657)
16+
- ML Enabled Lumberton CGE [#447](https://github.com/IN-CORE/incore-docs/issues/447)
17+
18+
### Changed
19+
20+
- Descriptions of the analyses to be more verbose. [#645](https://github.com/IN-CORE/pyincore/issues/645)
21+
- Descriptions of the analyses, inputs and parameters. [#649](https://github.com/IN-CORE/pyincore/issues/649)
22+
- Descriptions of the analyses, inputs and parameters. [#646](https://github.com/IN-CORE/pyincore/issues/646)
23+
- Descriptions of the analyses to be more verbose. [#647](https://github.com/IN-CORE/pyincore/issues/647)
24+
- Hazard service earthquake post method to allow user to specify soil type dataset [#654](https://github.com/IN-CORE/pyincore/issues/654)
25+
- Capital Shocks analysis to also output Sectors in building to sector mappings with no guids as unit shocks. [#671](https://github.com/IN-CORE/pyincore/issues/671)
26+
27+
### Fixed
28+
29+
- Building retrofit fails with local building dataset. [#617](https://github.com/IN-CORE/pyincore/issues/617)
30+
- Network analyses to check if a network dataset is set by the user. [#667](https://github.com/IN-CORE/pyincore/issues/667)
31+
832
## [1.21.0] - 2025-02-12
933

1034
### Changed
1135
- Enable internal network names for each service [#638](https://github.com/IN-CORE/pyincore/issues/638)
1236
- Update production URL references to tools.in-core.org and dev to dev.in-core.org [#634](https://github.com/IN-CORE/pyincore/issues/634)
37+
- Descriptions of the analyses, inputs and parameters. [#648](https://github.com/IN-CORE/pyincore/issues/648)
1338

1439
### Fixed
1540
- Documentation container tagging error by github action [#631](https://github.com/IN-CORE/pyincore/issues/631)

docs/source/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@
3333
author = ""
3434

3535
# The short X.Y version
36-
version = "1.21"
36+
version = "1.22"
3737
# The full version, including alpha/beta/rc tags
38-
release = "1.21.0"
38+
release = "1.22.0"
3939

4040
# -- General configuration ---------------------------------------------------
4141

docs/source/modules.rst

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,16 +233,35 @@ analyses/meandamage
233233
.. autoclass:: meandamage.meandamage.MeanDamage
234234
:members:
235235

236+
analyses/mlenabledcgelumberton
237+
==============================
238+
.. autoclass:: mlenabledcgelumberton.mlcgelumberton.MlEnabledCgeLumberton
239+
:members:
240+
236241
analyses/mlenabledcgeslc
237242
========================
238243
.. autoclass:: mlenabledcgeslc.mlcgeslc.MlEnabledCgeSlc
239244
:members:
240245

246+
analyses/mlenabledcgegalveston
247+
==============================
248+
.. autoclass:: mlenabledcgegalveston.mlcgegalveston.MlEnabledCgeGalveston
249+
:members:
250+
241251
analyses/mlenabledcgejoplin
242-
========================
252+
===========================
243253
.. autoclass:: mlenabledcgejoplin.mlcgejoplin.MlEnabledCgeJoplin
244254
:members:
245255

256+
analyses/mlenabledcgemobile
257+
===========================
258+
.. autoclass:: mlenabledcgemobile.mlcgemobile.MlEnabledCgeMobile
259+
260+
analyses/mlenabledcgeseaside
261+
============================
262+
.. autoclass:: mlenabledcgeseaside.mlcgeseaside.MlEnabledCgeSeaside
263+
:members:
264+
246265
analyses/montecarlofailureprobability
247266
=====================================
248267
.. deprecated:: 1.19.0

pyincore/analyses/bridgedamage/bridgedamage.py

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -328,91 +328,107 @@ def get_spec(self):
328328
"""
329329
return {
330330
"name": "bridge-damage",
331-
"description": "bridge damage analysis",
331+
"description": (
332+
"This analysis computes bridge damage based on a particular hazard. Currently "
333+
"supported hazards are: earthquake, tsunami, tornado, and hurricane.\n"
334+
"The process for computing the structural damage is similar to other parts of "
335+
"the built environment. First, a fragility is obtained based on the hazard type "
336+
"and attributes of the bridge. Based on the fragility, the hazard intensity at "
337+
"the location of the bridge is computed. Using this information, the probability "
338+
"of exceeding each limit state is computed, along with the probability of damage.\n"
339+
"For the case of an earthquake hazard, if the bridge dataset contains soil "
340+
"information, the median value of the associated fragility can be modified to "
341+
"account for liquefaction in the damage.\n"
342+
"The outputs of this analysis are a CSV file with probabilities of damage and "
343+
"a JSON file with information about hazards and fragilities."
344+
),
332345
"input_parameters": [
333346
{
334347
"id": "result_name",
335348
"required": True,
336-
"description": "result dataset name",
349+
"description": "Base name of the result output.",
337350
"type": str,
338351
},
339352
{
340353
"id": "fragility_key",
341354
"required": False,
342-
"description": "Fragility key to use in mapping dataset",
355+
"description": "Fragility key used in mapping dataset.",
343356
"type": str,
344357
},
345358
{
346359
"id": "use_liquefaction",
347360
"required": False,
348-
"description": "Use liquefaction",
361+
"description": "Use liquefaction, if applicable to the hazard. Default is False.",
349362
"type": bool,
350363
},
351364
{
352365
"id": "liquefaction_geology_dataset_id",
353366
"required": False,
354-
"description": "Geology dataset id",
367+
"description": "Liquefaction geology/susceptibility dataset id. If not provided, liquefaction will be ignored.",
355368
"type": str,
356369
},
357370
{
358371
"id": "use_hazard_uncertainty",
359372
"required": False,
360-
"description": "Use hazard uncertainty",
373+
"description": (
374+
"For model based hazard events, if the model supports uncertainty, "
375+
"then you can set this flag to indicate using the mean plus one standard deviation when computing damage. "
376+
"Default is false."
377+
),
361378
"type": bool,
362379
},
363380
{
364381
"id": "num_cpu",
365382
"required": False,
366-
"description": "If using parallel execution, the number of cpus to request",
383+
"description": "If using parallel execution, the number of cpus to request. Default is 1.",
367384
"type": int,
368385
},
369386
{
370387
"id": "hazard_id",
371388
"required": False,
372-
"description": "Hazard object id",
389+
"description": "ID of the hazard from the Hazard service.",
373390
"type": str,
374391
},
375392
{
376393
"id": "hazard_type",
377394
"required": False,
378-
"description": "Hazards type",
395+
"description": "Hazard type (earthquake, tsunami, tornado, hurricaneWindfields).",
379396
"type": str,
380397
},
381398
],
382399
"input_hazards": [
383400
{
384401
"id": "hazard",
385402
"required": False,
386-
"description": "Hazard object",
403+
"description": "Supported hazard object for using local and remote hazards.",
387404
"type": ["earthquake", "tornado", "hurricane", "flood", "tsunami"],
388405
},
389406
],
390407
"input_datasets": [
391408
{
392409
"id": "bridges",
393410
"required": True,
394-
"description": "Bridge Inventory",
411+
"description": "Set the Bridge Inventory Dataset.",
395412
"type": ["ergo:bridges", "ergo:bridgesVer2", "ergo:bridgesVer3"],
396413
},
397414
{
398415
"id": "dfr3_mapping_set",
399416
"required": True,
400-
"description": "DFR3 Mapping Set Object",
417+
"description": "Set the DFR3 Mapping Set Object.",
401418
"type": ["incore:dfr3MappingSet"],
402419
},
403420
],
404421
"output_datasets": [
405422
{
406423
"id": "result",
407424
"parent_type": "bridges",
408-
"description": "CSV file of bridge structural damage",
425+
"description": "CSV file of bridge structural damage.",
409426
"type": "ergo:bridgeDamageVer3",
410427
},
411428
{
412429
"id": "metadata",
413430
"parent_type": "bridges",
414-
"description": "additional metadata in json file about applied hazard value and "
415-
"fragility",
431+
"description": "Information about applied hazard value and fragility in JSON format.",
416432
"type": "incore:bridgeDamageSupplement",
417433
},
418434
],

pyincore/analyses/buildingclusterrecovery/buildingclusterrecovery.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,95 +32,101 @@ def __init__(self, incore_client):
3232
def get_spec(self):
3333
return {
3434
"name": "building-cluster-recovery-analysis",
35-
"description": "Building Cluster Recovery Analysis (with uncertainty)",
35+
"description": (
36+
"The Building Portfolio Recovery analysis uses damage probabilities of structural components,"
37+
"nonstructural drift-sensitive components, and nonstructural acceleration-sensitive components"
38+
"to calculate building’s initial functionality loss."
39+
),
3640
"input_parameters": [
3741
{
3842
"id": "result_name",
3943
"required": False,
40-
"description": "Result dataset name",
44+
"description": "Base name of the result output.",
4145
"type": str,
4246
},
4347
{
4448
"id": "uncertainty",
4549
"required": True,
46-
"description": "Use uncertainty",
50+
"description": "Include uncertainty in the recovery time.",
4751
"type": bool,
4852
},
4953
{
5054
"id": "sample_size",
5155
"required": False,
52-
"description": "No. of buildings to be considered from input buildings",
56+
"description": "Number of buildings to be considered from buildings dataset.",
5357
"type": int,
5458
},
5559
{
5660
"id": "random_sample_size",
5761
"required": True,
58-
"description": "Number of iterations for Monte Carlo Simulation",
62+
"description": "Number of iterations for the Monte Carlo simulation.",
5963
"type": int,
6064
},
6165
{
6266
"id": "no_of_weeks",
6367
"required": True,
64-
"description": "Number of weeks to run the recovery model",
68+
"description": "Number of weeks to run the recovery model.",
6569
"type": int,
6670
},
6771
{
6872
"id": "num_cpu",
6973
"required": False,
70-
"description": "If using parallel execution, the number of cpus to request",
74+
"description": "If using parallel execution, the number of cpus to request. Dafault is 1.",
7175
"type": int,
7276
},
7377
],
7478
"input_datasets": [
7579
{
7680
"id": "building_data",
7781
"required": True,
78-
"description": "Building Data",
82+
"description": "Set the Building inventory dataset.",
7983
"type": ["incore:portfolioBuildingInventory"],
8084
},
8185
{
8286
"id": "occupancy_mapping",
8387
"required": True,
84-
"description": "Occupancy code mapping",
88+
"description": "Occupancy code mapping, An occupancy of buildings dataset.",
8589
"type": ["incore:portfolioOccupancyMapping"],
8690
},
8791
{
8892
"id": "building_damage",
8993
"required": True,
90-
"description": "Building Damage Results",
94+
"description": "Building Damage Results. This dataset should contain the damage state of each building.",
9195
"type": ["incore:portfolioBuildingDamage"],
9296
},
9397
{
9498
"id": "dmg_ratios",
9599
"required": True,
96-
"description": "Percentage of mean repair by occupancy / building type",
100+
"description": "Percentage of mean repair by occupancy / building type.",
97101
"type": ["incore:portfolioDamageRatios"],
98102
},
99103
{
100104
"id": "utility",
101105
"required": True,
102-
"description": "Full utility availability at each utility service area - joint area of power"
103-
'and water (row), at each week (column)"',
106+
"description": (
107+
"Full utility availability at each utility service area - joint area of power"
108+
"and water (row), at each week (column)."
109+
),
104110
"type": ["incore:portfolioUtilityAvailability"],
105111
},
106112
{
107113
"id": "utility_partial",
108114
"required": True,
109-
"description": "Partial utility availability at each utility service area",
115+
"description": "Partial utility availability at each utility service area.",
110116
"type": ["incore:portfolioUtilityAvailability"],
111117
},
112118
{
113119
"id": "coefFL",
114120
"required": True,
115-
"description": "Correlation coefficient of initial functionality states",
121+
"description": "Correlation coefficient of initial functionality states.",
116122
"type": ["incore:portfolioCoefficients"],
117123
},
118124
],
119125
"output_datasets": [
120126
{
121127
"id": "result",
122128
"parent_type": "buildingClusterRecovery",
123-
"description": "Building cluster recovery result.",
129+
"description": "Building cluster recovery result in CSV format.",
124130
"type": "incore:clusterRecovery",
125131
}
126132
],

pyincore/analyses/buildingeconloss/buildingeconloss.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,26 +155,32 @@ def get_spec(self):
155155
"""
156156
return {
157157
"name": "building-economy-damage",
158-
"description": "building economy damage analysis",
158+
"description": (
159+
"This analysis calculates the building loss based on building appraisal value, mean damage, and an inflation multiplier. "
160+
"A user must supply the inflation rate (as a percentage) between building appraisal year and year of interest "
161+
"(current, date of hazard, etc.) and optional Occupancy multiplier. The analysis can be used for with building mean damage "
162+
"results for either Structural, Drift-Sensitive Nonstructural, Acceleration-Sensitive Nonstructural or Contents Damage component."
163+
"The output of this analysis is a CSV file with structural losses based on damage."
164+
),
159165
"input_parameters": [
160166
{
161167
"id": "result_name",
162168
"required": True,
163-
"description": "result dataset name",
169+
"description": "Base name of the result output.",
164170
"type": str,
165171
},
166172
{
167173
"id": "inflation_factor",
168174
"required": False,
169-
"description": "Inflation factor to adjust the appraisal values of buildings. Default 0.0",
175+
"description": "Inflation factor to adjust the appraisal values of buildings. Default 0.0.",
170176
"type": float,
171177
},
172178
],
173179
"input_datasets": [
174180
{
175181
"id": "buildings",
176182
"required": True,
177-
"description": "Building Inventory",
183+
"description": "Building Inventory dataset.",
178184
"type": [
179185
"ergo:buildingInventory",
180186
"ergo:buildingInventoryVer4",
@@ -205,7 +211,7 @@ def get_spec(self):
205211
{
206212
"id": "result",
207213
"parent_type": "buildings",
208-
"description": "CSV file of building economy damages",
214+
"description": "CSV file of building economic loss.",
209215
"type": "incore:buildingEconomicLoss",
210216
}
211217
],

0 commit comments

Comments
 (0)