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.