Infrastructure¶
Functions to load a network from file¶
- infrastructure.load_infrastructure_data(base_dir, ext_interdependency_dir=None, magnitude=6, sim_number=1, cost_scale=1.0, data_format='shelby_extended', extra_commodity=None)¶
This function reads the infrastructure network from file
- Parameters
base_dir (str) – The address of the folder where the basic network information (topology, parameters, etc.) are stored
ext_interdependency_dir (str) – (only for old format of input data) The address of the file where the interdependency data are stored. The default in None.
magnitude (int) – (only for old format of input data) Magnitude of the initial damage scenario. The default is 6.
sim_number (int) – (only for old format of input data) The simulation number. The default is 1.
cost_scale (float) – The factor by which all cost values has to multiplied. The default is 1.0.
data_format (str) – The format of input data, which is either “shelby_old” (consistent with the output format of Xpress optimizing software employed by Andres Gonzalez) or “shelby_extended” (which is devised by Hesam Talebiyan). The default is “shelby_extended”.
extra_commodity – (only for extended format of input data) List of extra-commodities in the analysis. The default is None, which only considers a main commodity.
- Returns
G – The networkx graph object that stores node, arc, and interdependency information
- Return type
networkx.DiGraph
- infrastructure.load_infrastructure_array_format_extended(base_dir, cost_scale=1.0, extra_commodity=None)¶
This function reads the infrastructure network from file in the extended format
- Parameters
base_dir (str) – The address of the folder where the basic network information (topology, parameters, etc.) are stored
cost_scale (float) – The factor by which all cost values has to multiplied. The default is 1.0.
extra_commodity – (only for extended format of input data) List of extra-commodities in the analysis. The default is None, which only considers a main commodity.
- Returns
G – The networkx graph object that stores node, arc, and interdependency information
- Return type
networkx.DiGraph
- infrastructure.load_synthetic_network(base_dir, topology='Random', config=6, sample=0, cost_scale=1.0)¶
This function reads a synthetic network from file
- Parameters
base_dir (str) – The address of the folder where the basic network information (topology, parameters, etc.) are stored
topology (str) – Topology of the layers of the synthetic network. The default in ‘Random’.
config (int) – Configuration number of the initial damage scenario. The default is 6.
sample (int) – Sample number of the initial damage scenario. The default is 0.
cost_scale (float) – The factor by which all cost values has to multiplied. The default is 1.0.
- Returns
G (networkx.DiGraph) – The networkx graph object that stores node, arc, and interdependency information
no_resource (int) – Number of resources available for restoration
list – List of layers of the synthetic network
- infrastructure.load_infrastructure_array_format(base_dir, ext_interdependency_dir=None, magnitude=6, sim_number=1, cost_scale=1.0)¶
This function reads the infrastructure network from file in the old format
- Parameters
base_dir (str) – The address of the folder where the basic network information (topology, parameters, etc.) are stored
ext_interdependency_dir (str) – The address of the file where the interdependency data are stored. The default in None.
magnitude (int) – Magnitude of the initial damage scenario. The default is 6.
sim_number (int) – The simulation number. The default is 1.
cost_scale (float) – The factor by which all cost values has to multiplied. The default is 1.0.
- Returns
G – The networkx graph object that stores node, arc, and interdependency information
- Return type
networkx.DiGraph
- infrastructure.load_interdependencies(net_number, src_net_number, base_dir='../data/INDP_4-12-2016')¶
(only for old format of input data) This function reads interdependency data from file.
- Parameters
net_number (int) – ID of the depender layer.
src_net_number (int) – ID of the dependee layer.
base_dir (src) – The address of the folder where the basic network information (topology, parameters, etc.) are stored
- Returns
arcs – List of interdependencies as in arc format
- Return type
list
Functions to load initial damage data from file¶
- infrastructure.add_wu_failure_scenario(G, dam_dir, no_set=0, no_sce=0)¶
This function reads initial damage data from file in the WU format, and apply it to the infrastructure network. The damage data for this dataset comes in a format similar to the hazard maps from Jason Wu [Wu17], which consist of N sets (= samples) of M damage scenarios (= magnitudes). For shelby county, for example, N=50 and M=96.
- Parameters
G (networkx.DiGraph) – The networkx graph object that stores node, arc, and interdependency information
dam_dir (str) – The address of the folder where the initial damage data are stored
no_set (int) – The number of the set of the initial damage scenario. The default is 0.
no_sce (int) – The number of the scenario of the initial damage scenario The default is 0.
- Returns
- Return type
None.
- infrastructure.add_from_csv_failure_scenario(G, sample, dam_dir='')¶
This function reads initial damage data from file in the from_csv format, and apply it to the infrastructure network. This format only consider one magnitude value (0), and there can be as many as samples form that magnitude.
- Parameters
G (networkx.DiGraph) – The networkx graph object that stores node, arc, and interdependency information
sample (int) – Sample number of the initial damage scenario,
dam_dir (str) – The address of the folder where the initial damage data are stored
- Returns
- Return type
None.
- infrastructure.add_synthetic_failure_scenario(G, dam_dir, topology='Random', config=0, sample=0)¶
This function reads initial damage data from file for a synthetic network.
- Parameters
G (networkx.DiGraph) – The networkx graph object that stores node, arc, and interdependency information.
dam_dir (str) – The address of the folder where the initial damage data are stored.
topology (str) – Topology of the layers of the synthetic network. The default in ‘Random’.
config (int) – Configuration number of the initial damage scenario. The default is 6.
sample (int) – Sample number of the initial damage scenario. The default is 0.
- Returns
- Return type
None.
- infrastructure.add_failure_scenario(G, dam_dir, magnitude=6, v=3, sim_number=1)¶
This function reads initial damage data from file in the ANDRES format, and apply it to the infrastructure network
- Parameters
G (networkx.DiGraph) – The networkx graph object that stores node, arc, and interdependency information
dam_dir (str) – The address of the folder where the initial damage data are stored
magnitude (int) – Magnitude of the initial damage scenario. The default is 6.
v (int) – Number of the resources in the analysis. The default is 3.
sim_number (int) – The simulation number. The default is 1.
- Returns
- Return type
None.
Classes to define a network and its elements¶
- class infrastructure.InfrastructureNetwork(id)¶
Stores information of the infrastructure network
- G¶
The networkx graph object that stores node, arc, and interdependency information
- Type
networkx.DiGraph
- S¶
List of geographical spaces on which the network lays
- Type
list
- id¶
Id of the network
- Type
int
- class infrastructure.InfrastructureNode(id, net_id, local_id='')¶
This class models a node in an infrastructure network
- id¶
Node id
- Type
int
- net_id¶
The id of the layer of the network to which the node belong
- Type
int
- local_id¶
Local node id
- Type
int
- failure_probability¶
Failure probability of the node
- Type
float
- functionality¶
Functionality state of the node
- Type
bool
- repaired¶
If the node is repaired or not
- Type
bool
- reconstruction_cost¶
Reconstruction cost of the node
- Type
float
- oversupply_penalty¶
Penalty per supply unit of the main commodity that is not used for the the node
- Type
float
- undersupply_penalty¶
Penalty per demand unit of the main commodity that is not satisfied for the the node
- Type
float
- demand¶
Demand or supply value of the main commodity assigned to the node
- Type
float
- space¶
The id of the geographical space where the node is
- Type
int
- resource_usage¶
The dictionary that shows how many resource (of each resource type) is employed to repair the node
- Type
dict
- extra_com¶
The dictionary that shows demand, oversupply_penalty, and undersupply_penalty corresponding to commodities other than the main commodity
- Type
dict
- class infrastructure.InfrastructureArc(source, dest, layer, is_interdep=False)¶
This class models an arc in an infrastructure network
- source¶
Start (or head) node id
- Type
int
- dest¶
End (or tail) node id
- Type
int
- layer¶
The id of the layer of the network to which the arc belong
- Type
int
- failure_probability¶
Failure probability of the arc
- Type
float
- functionality¶
Functionality state of the node
- Type
bool
- repaired¶
If the arc is repaired or not
- Type
bool
- flow_cost¶
Unit cost of sending the main commodity through the arc
- Type
float
- reconstruction_cost¶
Reconstruction cost of the arc
- Type
float
- capacity¶
Maximum volume of the commodities that the arc can carry
- Type
float
- space¶
The id of the geographical space where the arc is
- Type
int
- resource_usage¶
The dictionary that shows how many resource (of each resource type) is employed to repair the arc
- Type
dict
- extra_com¶
The dictionary that shows flow_cost corresponding to commodities other than the main commodity
- Type
dict
- is_interdep¶
If arc represent a normal arc (that carry commodity within a single layer) or physical interdependency between nodes from different layers
- Type
bool
- class infrastructure.InfrastructureInterdepArc(source, dest, source_layer, dest_layer, gamma)¶
This class models a physical interdependency between nodes from two different layers. This class inherits from
InfrastructureArc, where source attributes corresponds to the dependee node, and dest corresponds to the depender node. The depender node is non-functional if the corresponding dependee node is non-functional.- source_layer¶
The id of the layer where the dependee node is
- Type
int
- dest_layer¶
The id of the layer where the depender node is
- Type
int
- gamma¶
The strength of the dependency, which is a number between 0 and 1.
- Type
float
- class infrastructure.InfrastructureSpace(id, cost)¶
This class models a geographical space.
- id¶
The id of the space
- Type
int
- cost¶
The cost of preparing the space for a repair action
- Type
float