Pipeline restoration#
This analysis computes water pipeline restoration time after a particular hazard. The analysis itself is hazard agnostic, as it works with the output of Pipeline damage with repair rate analysis and restoration curves.
The restoration curves are obtained based on the hazard type and diameter-specific class of the pipeline. Based on the restoration curve applicable, we can obtain the time it takes to repair each of the pipelines. It considers the leak rate, break rate, pipe length and the number of available workers to calculate the repair times. One of the inputs of this analysis is the output of the Pipeline damage with repair rate analysis.
The output of this analysis is a CSV file with expected time taken to repair for each pipeline.
Input Parameters
key name |
type |
name |
description |
---|---|---|---|
|
|
Result name |
Name of the result dataset. |
|
|
Number of available workers |
Number of available workers to work on the repairs. |
|
|
Restoration Key |
Restoration key to use in mapping dataset. |
|
|
Number of CPUs |
Number of CPUs used for parallel computations. |
Input Datasets
key name |
type |
name |
description |
---|---|---|---|
|
Pipeline dataset |
A pipeline dataset. |
|
|
Pipeline damage with repair rates dataset |
A pipeline damage with repair rates dataset. |
|
|
DFR3 Mapping Set |
DFR3 Mapping Set. |
Output Datasets
key name |
type |
parent key |
name |
description |
---|---|---|---|---|
|
|
Results |
Repair time for each pipeline |
(* required)
Execution
code snippet:
# Create pipeline restoration
pipeline_restoration = PipelineRestoration(client)
# shelby county pipelines
pipeline_restoration.load_remote_input_dataset("pipeline", pipeline_dataset_id)
pipeline_restoration.load_remote_input_dataset("pipeline_damage", pipeline_dmg_dataset_id)
# Load fragility mapping
fragility_service = FragilityService(client)
mapping_set = MappingSet(fragility_service.get_mapping(pipeline_restoration_mapping_id))
pipeline_restoration.set_input_dataset('dfr3_mapping_set', mapping_set)
pipeline_restoration.set_parameter("result_name", "pipeline_restoration_times")
pipeline_restoration.set_parameter("restoration_key", "Restoration ID Code")
pipeline_restoration.set_parameter("num_available_workers", 4)
pipeline_restoration.set_parameter("num_cpu", 4)
# Run pipeline restoration analysis
pipeline_restoration.run_analysis()
full analysis: pipeline_restoration.ipynb