Working with ORBIT Modules and Projects

ORBIT is made up of many different modules representing the design and installation of offshore wind components. Each module can be ran indepenently or within a project using ProjectManager. Modules and projects are configured with a set of nested dictionaries.

Running Individual Modules

To run a module indepenently:

from ORBIT.phases.install import MonopileInstallation
config = {
    'site': {
        'depth': 20,
        'mean_windspeed': 9
    },

    'turbine': {
        'rotor_diameter': 130,
        'hub_height': 110,
    },

    # etc...
}

phase = MonopileInstallation(config)
phase.run()
print(phase.total_cost)

The inputs required for each module are stored in expected_config. For example:

from ORBIT.phases.install import MonopileInstallation
MonopileInstallation.expected_config

>>>

{
    'site': {
        'depth': 'm',
        'mean_windspeed': 'm/s'
    },

    'turbine': {
        'rotor_diameter': 'm',
        'hub_height': 'm',
    },
    # etc...
}

The returned nested dictionary can then be filled out by replacing the strings (‘m’, ‘m/s’, etc.) with the appropriate inputs for the analysis question.

Note

expected_config will return the required unit of the input where applicable.

Loading and Saving Configurations

There are utility functions within ORBIT that allow configurations to be saved and loaded from a ‘.yaml’ format. Yaml is a data format similar to json in that it can store nested data structures. Yaml has several advantages though, the primary being that it supports comments.

To load a configuration:

from ORBIT import load_config
config = load_config("filepath/to/config.yaml")

To save a configuration:

from ORBIT import save_config
save_config(config, "filepath/to/config.yaml")

Note

It isn’t required to use these utility functions. The standard yaml load and dump routines will work for converting python nested dictionaries to and from the yaml format. However, the load_config method supports scientific notation and the standard yaml routine does not.

Running Multiple Phases

To run multiple phases, see the ProjectManager documentation.