Cable Laying and Burying#
This guide will demonstrate the use of a combined cable laying and burying vessel compared to using separate cable laying and burying vessels. Here we will focus on the array cabling, but the same logic applies to the export cables.
from copy import deepcopy
import pandas as pd
from ORBIT import ProjectManager
Below, we set up a base configuration using an imagined cable and sections (25 each of 1km and 2km cable sections) designed for simplicity.
base_config = {
"site": {"distance": 20, "depth": 35},
"array_system": {
"system_cost": 50e6,
"cables": {
"ExampleCable": {
"linear_density": 40,
"cable_sections": [(2, 25), (1, 25)]
}
}
},
"install_phases": ["ArrayCableInstallation"]
}
Single Cable Laying and Burying Process#
Now we can add a cable laying vessel that will simultaneously lay and bury cables by defining the
array_cable_install_vessel. For export cables, this is the export_cable_install_vessel. We will
create and run the project for later results comparison.
config_combined = deepcopy(base_config)
config_combined["array_cable_install_vessel"] = "example_cable_lay_vessel"
project_combined = ProjectManager(config_combined)
project_combined.run()
ORBIT library intialized at '/opt/hostedtoolcache/Python/3.13.13/x64/lib/python3.13/site-packages/library'
Separate Cable Laying and Burying Processes#
Using the same base configuration, we can now signal to the simulation to use a separate cable
laying and burying process by defining both the array_cable_install_vessel and
array_cable_bury_vessel. Note that the laying and combined vessel configuration keys are the same,
so that a separate input is only required when the cable burying vessel is utilized. Similar to the
above example, the export cable burying vessel is export_cable_bury_vessel.
Even though the vessel is the same, by defining both vessel keys, we indicate that the processes should be separated.
config_separate = deepcopy(base_config)
config_separate["array_cable_install_vessel"] = "example_cable_lay_vessel"
config_separate["array_cable_bury_vessel"] = "example_cable_lay_vessel"
project_separate = ProjectManager(config_separate)
project_separate.run()
Including a Trenching Vessel#
A third option is to also define a cable trenching vessel that digs out the trench for the cable
to lie in prior to the cable laying. This is often required for rocky soil types. Similar to the
separate process, we simply define the trenching vessel to activate the separated process using
the array_cable_trench_vessel key or export_cable_trench_vessel for export cables.
config_separate_with_trench = deepcopy(base_config)
config_separate_with_trench["array_cable_install_vessel"] = "example_cable_lay_vessel"
config_separate_with_trench["array_cable_bury_vessel"] = "example_cable_lay_vessel"
config_separate_with_trench["array_cable_trench_vessel"] = "example_cable_lay_vessel"
# Run
project_separate_with_trench = ProjectManager(config_separate_with_trench)
project_separate_with_trench.run()
Viewing the results#
Below we show the combined process for laying and burying the first cable. Note the "action" column contains the "Lay/Bury" action to indicate the combined process.
df_combined = pd.DataFrame(project_combined.actions)
df_combined.iloc[3:12]
| cost_multiplier | agent | action | duration | cost | level | time | phase | phase_name | max_waveheight | max_windspeed | transit_speed | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3 | NaN | Array Cable Installation Vessel | Position Onsite | 2.0 | 20097.583333 | ACTION | 9.73913 | ArrayCableInstallation | NaN | NaN | NaN | NaN |
| 4 | NaN | Array Cable Installation Vessel | Prepare Cable | 1.0 | 10048.791667 | ACTION | 10.73913 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 5 | NaN | Array Cable Installation Vessel | Pull In Cable | 5.5 | 55268.354167 | ACTION | 16.23913 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 6 | NaN | Array Cable Installation Vessel | Terminate Cable | 5.5 | 55268.354167 | ACTION | 21.73913 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 7 | NaN | Array Cable Installation Vessel | Lower Cable | 1.0 | 10048.791667 | ACTION | 22.73913 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 8 | NaN | Array Cable Installation Vessel | Lay/Bury Cable | 32.0 | 321561.333333 | ACTION | 54.73913 | ArrayCableInstallation | ArrayCableInstallation | 2.0 | 25.0 | 11.5 |
| 9 | NaN | Array Cable Installation Vessel | Prepare Cable | 1.0 | 10048.791667 | ACTION | 55.73913 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 10 | NaN | Array Cable Installation Vessel | Pull In Cable | 5.5 | 55268.354167 | ACTION | 61.23913 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 11 | NaN | Array Cable Installation Vessel | Terminate Cable | 5.5 | 55268.354167 | ACTION | 66.73913 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
Now, we demonstrate the separate process by combining the separate laying and burying steps taken for the first cable. Note that we have to concatenate two separate sections of the actions log to highlight this process. For each process the vessel has to "Position Onsite", then go on with the separate logic. For the burying process, this is much simpler than the initial laying and cable connection.
df_separate = pd.DataFrame(project_separate.actions)
pd.concat((df_separate.iloc[4:13], df_separate.iloc[455:457]))
| cost_multiplier | agent | action | duration | cost | level | time | phase | phase_name | max_waveheight | max_windspeed | transit_speed | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | NaN | Array Cable Installation Vessel | Position Onsite | 2.000 | 20097.583333 | ACTION | 9.739130 | ArrayCableInstallation | NaN | NaN | NaN | NaN |
| 5 | NaN | Array Cable Installation Vessel | Prepare Cable | 1.000 | 10048.791667 | ACTION | 10.739130 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 6 | NaN | Array Cable Installation Vessel | Pull In Cable | 5.500 | 55268.354167 | ACTION | 16.239130 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 7 | NaN | Array Cable Installation Vessel | Terminate Cable | 5.500 | 55268.354167 | ACTION | 21.739130 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 8 | NaN | Array Cable Installation Vessel | Lower Cable | 1.000 | 10048.791667 | ACTION | 22.739130 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 9 | NaN | Array Cable Installation Vessel | Lay Cable | 5.000 | 50243.958333 | ACTION | 27.739130 | ArrayCableInstallation | ArrayCableInstallation | 2.0 | 25.0 | 11.5 |
| 10 | NaN | Array Cable Installation Vessel | Prepare Cable | 1.000 | 10048.791667 | ACTION | 28.739130 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 11 | NaN | Array Cable Installation Vessel | Pull In Cable | 5.500 | 55268.354167 | ACTION | 34.239130 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 12 | NaN | Array Cable Installation Vessel | Terminate Cable | 5.500 | 55268.354167 | ACTION | 39.739130 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 455 | NaN | Array Cable Burial Vessel | Position Onsite | 2.000 | 20097.583333 | ACTION | 1548.978261 | ArrayCableInstallation | NaN | NaN | NaN | NaN |
| 456 | NaN | Array Cable Burial Vessel | Bury Cable | 4.825 | 48485.419792 | ACTION | 1553.803261 | ArrayCableInstallation | ArrayCableInstallation | 2.0 | 25.0 | 11.5 |
Similar to the above, when we add trenching as a separate step, we have three discrete stages to combine to demonstrate the trenching, laying, and burying for the first cable.
df_separate_with_trench = pd.DataFrame(project_separate_with_trench.actions)
pd.concat((
df_separate_with_trench.iloc[4:6],
df_separate_with_trench.iloc[107:116],
df_separate_with_trench.iloc[558:560],
))
| cost_multiplier | agent | action | duration | cost | level | time | phase | phase_name | max_waveheight | max_windspeed | transit_speed | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | NaN | Array Cable Trench Vessel | Position Onsite | 2.000 | 20097.583333 | ACTION | 3.739130 | ArrayCableInstallation | NaN | NaN | NaN | NaN |
| 5 | NaN | Array Cable Trench Vessel | Dig Trench | 19.300 | 193941.679167 | ACTION | 23.039130 | ArrayCableInstallation | ArrayCableInstallation | 2.0 | 25.0 | 11.5 |
| 107 | NaN | Array Cable Installation Vessel | Position Onsite | 2.000 | 20097.583333 | ACTION | 828.217391 | ArrayCableInstallation | NaN | NaN | NaN | NaN |
| 108 | NaN | Array Cable Installation Vessel | Prepare Cable | 1.000 | 10048.791667 | ACTION | 829.217391 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 109 | NaN | Array Cable Installation Vessel | Pull In Cable | 5.500 | 55268.354167 | ACTION | 834.717391 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 110 | NaN | Array Cable Installation Vessel | Terminate Cable | 5.500 | 55268.354167 | ACTION | 840.217391 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 111 | NaN | Array Cable Installation Vessel | Lower Cable | 1.000 | 10048.791667 | ACTION | 841.217391 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 112 | NaN | Array Cable Installation Vessel | Lay Cable | 5.000 | 50243.958333 | ACTION | 846.217391 | ArrayCableInstallation | ArrayCableInstallation | 2.0 | 25.0 | 11.5 |
| 113 | NaN | Array Cable Installation Vessel | Prepare Cable | 1.000 | 10048.791667 | ACTION | 847.217391 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 114 | NaN | Array Cable Installation Vessel | Pull In Cable | 5.500 | 55268.354167 | ACTION | 852.717391 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 115 | NaN | Array Cable Installation Vessel | Terminate Cable | 5.500 | 55268.354167 | ACTION | 858.217391 | ArrayCableInstallation | ArrayCableInstallation | NaN | NaN | NaN |
| 558 | NaN | Array Cable Burial Vessel | Position Onsite | 2.000 | 20097.583333 | ACTION | 2367.456522 | ArrayCableInstallation | NaN | NaN | NaN | NaN |
| 559 | NaN | Array Cable Burial Vessel | Bury Cable | 4.825 | 48485.419792 | ACTION | 2372.281522 | ArrayCableInstallation | ArrayCableInstallation | 2.0 | 25.0 | 11.5 |