Vessels and Cable Definitions
Most installation modules require individual vessels, cables or turbines to be defined to complete the required configuration. These definitions are composed of several nested dictionaries (representing vessel subcomponents) that can be cumbersome to define within the project level configuration. As such, there are helper libraries included with ORBIT that allow vessels/cables to be defined elsewhere and referenced with their name. By default, these libraries are located at:
/path/to/orbit/library/cables/
/path/to/orbit/library/vessels/
/path/to/orbit/library/turbines/
External Libraries
It is possible to have ORBIT look in external folders for library items. To
configure an external library, use the initialize_library
function. It is
recommended that any proprietary vessel or cable files be located outside
of the main repository.
from ORBIT.core.library import initialize_library
initialize_library("path/to/external/library/")
Note
If an external library is defined, ORBIT will search for a configured library item there first and then search the library defined within ORBIT if the item is not found. This is so that generic library items do not need to be copied to the external library but can still be used within a project definition.
File Format
Both vessels and cables are stored as .yaml
files to preserve their
dictionary format. They can be referenced in project configurations using the
filename preceding .yaml
. For a filename of example_wtiv.yaml
, see the
example below:
config = {
'wtiv': 'example_wtiv',
'design_phases': ['MonopileDesign', 'ArraySystemDesign'],
'install_phases': [
'MonopileInstallation',
'TurbineInstallation'
]
}
For help on working with .yaml
files, please see this
tutorial.
Vessel Configurations
Throughout installation modules in ORBIT, there are several processes that
require the operating vessel to have a specific subcomponent. For example, all
offshore lifts require the vessel to have a crane onboard, otherwise the vessel
isn’t able to perform the operation. These contraints translate into how
vessels are defined. Within a vessel definition (either a dict
or a
.yaml
file), subcomponents are defined with another dictionary:
vessel = {
'crane_specs': { # <-- Vessel will be able to perform crane operations
'max_lift': 500,
'max_windspeed': 15,
...
},
...
}
In the example above, a vessel without 'crane_specs'
would not be able to
perform any crane operations. If a vessel is configured that can’t complete an
operation in a phase, a MissingComponent
error will be raised. The
following subcomponents and their use cases are available to be configured:
'vessel_specs'
- General vessel parameters including day rate.'transport_specs'
- Transit related parameters and constraints.'storage_specs'
- Storage related parameters. Required to transport items on deck.'jacksys_specs'
- Jacking system related parameters. Currently required for all fixed substructure and turbine installations.'crane_specs'
- Crane related parameters and constraints. Required for any offshore lifts.